Criptografar dados com chaves de criptografia gerenciadas pelo cliente

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

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  2. 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:

  1. No projeto Google Cloud em que você quer gerenciar as chaves, faça o seguinte:

    1. Ative a API Cloud Key Management Service.

    2. Crie um keyring e uma chave usando uma das seguintes opções:

  2. 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

    1. Acesse Gerenciamento de chaves.

      Acessar "Gerenciamento de chaves"

    2. Selecione a chave que você criou.

    3. Conceda acesso à conta de serviço do Gemini Code Assist:

      1. Clique em Adicionar principal.
      2. 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.
      3. Em Selecionar um papel, selecione Cloud KMS > Criptografador/descriptografador do Cloud KMS CryptoKey.
      4. Clique em Salvar.
    4. Repita a etapa anterior para conceder acesso à conta que vai criar o índice do repositório de código com uma CMEK.

    5. Retorne à página Gerenciamento de chaves e selecione a chave novamente.

    6. Selecione Mostrar painel de informações. Você vai encontrar as funções na coluna Função/Membro.

    gcloud

    1. 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.
    2. 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:

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.