Este documento mostra como usar chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar e controlar dados em repouso em um serviço em nuvem pelo Cloud Key Management Service. O CMEK é integrado à personalização de código para o Gemini Code Assist.
Se você não usar uma CMEK, o Google vai 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ê vai:
- Saiba como criar uma CMEK.
- Conceda permissões à conta de serviço do Gemini Code Assist.
- Crie um índice de repositório de código com uma CMEK.
- Remova o acesso a um repositório CMEK.
Por padrão, o Gemini para Google Cloud criptografa o conteúdo do cliente em repouso. O Gemini processa a criptografia para você sem que você precise fazer nada. Essa opção é chamada de Criptografia padrão do Google.
Se você quiser controlar suas chaves de criptografia, use chaves de criptografia gerenciadas pelo cliente (CMEKs) no Cloud KMS com serviços integrados a CMEKs, incluindo o Gemini. O uso de chaves do Cloud KMS permite controlar o nível de proteção, o local, a programação de rotação, as permissões de uso e acesso e os limites criptográficos. O uso do Cloud KMS também permite visualizar registros de auditoria e controlar ciclos de vida importantes. Em vez de o Google ser proprietário e gerente de chaves de criptografia de chaves (KEKs) simétricas que protegem seus dados, você controla e gerencia essas chaves no Cloud KMS.
Depois de configurar os recursos com CMEKs, a experiência de acesso aos recursos do Gemini é semelhante à criptografia padrão do Google. Para 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 ambiente do shell, execute o comando
gcloud components update
para garantir que você atualizou todos os componentes instalados da CLI gcloud para a versão mais recente. Nesta etapa, você pode instalar e inicializar a CLI gcloud ou usar o Cloud Shell.gcloud components update
Criar uma CMEK e conceder permissões
Para criar uma chave CMEK e conceder permissões da conta de serviço Gemini Code Assist à chave, faça o seguinte:
No projeto Google Cloud em que você quer gerenciar as chaves, faça o seguinte:
Crie um keyring e uma chave usando uma das seguintes opções:
- Crie o keyring 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 pelo Cloud KMS.
Conceda o papel do IAM de Criptografador/Descriptografador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) à conta de serviço do Gemini Code Assist. Conceda essa permissão na chave que você criou.Console
Acesse Gerenciamento de chaves.
Selecione a chave que você criou.
Conceda acesso à conta de serviço do Gemini Code Assist:
- Clique em Adicionar principal.
- Adicione a conta de serviço do Gemini Code Assist. A
conta de serviço é
service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com
, em que PROJECT_NUMBER é o número do projeto do projeto Google Cloud em que o Gemini Code Assist está ativado. - Em Selecionar um papel, selecione Cloud KMS > Criptografador/descriptografador do Cloud KMS CryptoKey.
- Clique em Salvar.
Repita a etapa anterior para conceder acesso à conta que vai 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ê vai encontrar as funções na coluna Função/Membro.
gcloud
Para conceder acesso à conta de serviço do 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:
- KEY_NAME: o nome da chave.
- PROJECT_ID: o ID do projeto que contém a chave.
- LOCATION: o local da chave.
- KEYRING_NAME: o nome do keyring.
- PROJECT_NUMBER: o número do projeto do projeto Google Cloud com o Gemini Code Assist ativado.
Repita a etapa anterior para conceder acesso à conta que vai criar o índice do repositório de código com uma CMEK.
Para mais informações sobre esse comando, consulte a documentação do
gcloud kms keys add-iam-policy-binding
.
Agora é possível criar um índice de repositório de código com um CMEK usando a API e especificar a chave a ser usada para criptografia.
Criar um índice de repositório de código com um CMEK
Em gcloud CLI
, crie um novo repositório no serviço que tenha
proteção de uma CMEK:
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:
- CODE_REPOSITORY_INDEX_NAME: o nome do novo índice do repositório de código que você vai criar.
- LOCATION: o local da chave.
- KEY_PROJECT_ID: o ID do projeto da chave.
- KEYRING_NAME: o nome do keyring.
- KEY_NAME: o nome da chave.
Remover o acesso a um repositório CMEK
Há várias maneiras de remover o acesso de um repositório criptografado por CMEKs:
- Revogue o papel de Criptografador/Descriptografador da CryptoKey do Cloud KMS da conta de serviço do Gemini Code Assist usando o console do Google Cloud ou a CLI gcloud.
- Desative temporariamente a CMEK.
- Destrua permanentemente a chave CMEK.
Recomendamos revogar as permissões da conta de serviço do Gemini Code Assist antes de desativar ou destruir uma chave. As alterações de permissões são consistentes em segundos, então é possível observar os impactos da desativação ou da destruição de uma chave.