Este documento mostra como usar chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar e controlar dados em repouso em um serviço de nuvem por meio do Cloud Key Management Service . O CMEK é integrado à personalização de código do Gemini Code Assist.
O Gemini Code Assist não oferece suporte ao uso de chaves do Cloud EKM .
Se você não usar uma CMEK, o Google gerenciará automaticamente as chaves que criptografam os dados por padrão. Esse comportamento é conhecido como criptografia padrão do Google . Com esse comportamento padrão, você não tem controle sobre as chaves de criptografia.
Neste documento, você faz o seguinte:
- Aprenda a criar um CMEK.
- Conceda permissões para a conta de serviço Gemini Code Assist.
- Crie um índice de repositório de código com uma CMEK.
- Remover acesso a um repositório CMEK.
Por padrão, Gemini para Google Cloud criptografa o conteúdo do cliente em repouso . O Gemini cuida da criptografia para você, sem nenhuma ação adicional de sua parte. Esta opção é chamada de criptografia padrão do Google .
Se você deseja controlar suas chaves de criptografia, pode usar chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados ao CMEK, incluindo o Gemini. O uso das chaves do Cloud KMS permite que você controle o nível de proteção, a localização, o cronograma de rotação, as permissões de uso e acesso e os limites criptográficos. O Cloud KMS também permite visualizar logs de auditoria e controlar os ciclos de vida das chaves. Em vez de o Google possuir e gerenciar as chaves de criptografia de chave simétrica (KEKs) que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Após configurar seus recursos com CMEKs, a experiência de acesso aos seus recursos Gemini será semelhante à de usar a criptografia padrão do Google. Para obter mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK) .
Antes de começar
-
In the Google Cloud console, activate Cloud Shell.
No seu ambiente de shell, execute o comando
gcloud components update
para garantir que você tenha atualizado todos os componentes instalados da CLI do gcloud para a versão mais recente. Para esta etapa, você pode instalar e inicializar a CLI do gcloud ou usar o Cloud Shell .gcloud components update
Crie um CMEK e conceda permissões
Para criar uma CMEK e conceder permissões de conta de serviço do Gemini Code Assist na chave, execute as seguintes tarefas:
No Google Cloud projeto onde você deseja gerenciar suas chaves, faça o seguinte:
Crie um chaveiro e uma chave usando uma das seguintes opções:
- Crie o chaveiro e a chave diretamente no Cloud KMS.
- Use uma chave gerenciada externamente. Crie a chave externa e, em seguida, crie uma chave do Cloud EKM para disponibilizá-la por meio do Cloud KMS.
Conceda a função IAM Criptografador/Descriptografador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) à conta de serviço Gemini Code Assist. Conceda essa permissão à chave que você criou.Console
Vá para Gerenciamento de chaves .
Selecione a chave que você criou.
Conceder acesso à conta de serviço Gemini Code Assist:
- Clique em Adicionar principal .
- Adicione a conta de serviço Gemini Code Assist. A conta de serviço é
service- PROJECT_NUMBER @gcp-sa-cloudaicompanions.iam.gserviceaccount.com
, onde PROJECT_NUMBER é o número do projeto do Google Cloud projeto onde o Gemini Code Assist está habilitado. - Em Selecionar uma função , selecione Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter .
- Clique em Salvar .
Repita a etapa anterior para conceder acesso à conta que criará o índice do repositório de código com uma CMEK.
Retorne à página Gerenciamento de chaves e selecione a chave novamente.
Selecione Mostrar painel de informações . Você deverá ver as funções na coluna Função/Membro .
gcloud
Para conceder acesso à conta de serviço Gemini Code Assist, em um ambiente de shell, use o comando
kms keys add-iam-policy-binding
:gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
Substitua o seguinte:
- KEY_NAME : o nome da chave.
- PROJECT_ID : o ID do projeto que contém a chave.
- LOCATION : a localização chave.
- KEYRING_NAME : nome do chaveiro.
- PROJECT_NUMBER : o número do projeto do Google Cloud projeto com o Gemini Code Assist habilitado.
Repita a etapa anterior para conceder acesso à conta que criará o índice do repositório de código com uma CMEK.
Para obter mais informações sobre esse comando, consulte a documentação
gcloud kms keys add-iam-policy-binding
.
Agora você pode criar um índice de repositório de código com uma CMEK usando a API e especificar a chave a ser usada para criptografia.
Crie um índice de repositório de código com um CMEK
Para criar um novo repositório com proteção CMEK, siga um destes procedimentos:
gcloud
Use o comando gemini code-repository-indexes create
:
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
Substitua o seguinte:
- CODE_REPOSITORY_INDEX_NAME : o nome do novo índice do repositório de código que você criará.
- LOCATION : a localização chave.
- KEY_PROJECT_ID : o ID do projeto principal.
- KEYRING_NAME : nome do chaveiro.
- KEY_NAME : o nome da chave.
API
Crie um arquivo JSON que contenha as seguintes informações:
{ "kmsKey": "projects/KEY_PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME" }
Substitua o seguinte:
-
KEY_PROJECT_ID
: o ID do projeto principal -
KEY_LOCATION
: a localização da chave -
KEYRING_NAME
: o nome do chaveiro -
KEY_NAME
: o nome da chave
-
Use um comando
cURL
para chamar o métodoprojects.locations.codeRepositoryIndexes.create
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudaicompanion.googleapis.com/v1/projects/PROJECT_ID/locations/KEY_LOCATION/codeRepositoryIndexes?codeRepositoryIndexId=CODE_REPOSITORY_INDEX_NAME"
Substitua o seguinte:
-
JSON_FILE_NAME
: o caminho para o arquivo JSON que você criou na etapa anterior. -
PROJECT_ID
: o ID do projeto para criar o repositório. -
KEY_LOCATION
: o local para criar o repositório, que deve corresponder ao local onde o CMEK existe. -
CODE_REPOSITORY_INDEX_NAME
: o nome do novo índice do repositório de código que você criará. Por exemplo,zg-btf-0001
.
-
A resposta retorna um conjunto de entradas de log.
Remover acesso a um repositório CMEK
Existem várias maneiras de remover o acesso a um repositório criptografado pelo CMEK:
- Revogue a função de criptografador/descriptografador CryptoKey do Cloud KMS da conta de serviço Gemini Code Assist usando o Google Cloud console ou o gcloud CLI .
- Desabilite temporariamente o CMEK.
- Destrua permanentemente o CMEK.
Recomendamos que você revogue as permissões da conta de serviço Gemini Code Assist antes de desabilitar ou destruir uma chave. As alterações nas permissões são aplicadas em segundos, para que você possa observar os impactos da desabilitação ou destruição de uma chave.