Chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês)

Por padrão, o Dialogflow criptografa o conteúdo do cliente em repouso. O Dialogflow 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 Dialogflow. 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 Dialogflow é semelhante à criptografia padrão do Google. Para mais informações sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).

Dados protegidos

Todos os dados em repouso dos agentes de agentes de conversação (Dialogflow CX) podem ser protegidos com CMEKs.

Limitações

  • A rotação de chaves é compatível, mas a nova criptografia de dados não. Ou seja, não é possível recriptografar dados criptografados anteriormente com uma nova versão de chave.
  • As seguintes regiões não são compatíveis:
    • global
    • eu
  • Uma chave precisa ser usada por local do projeto.
  • Para restaurar um agente com o CMEK ativado, é necessário escolher a opção do Cloud Storage.
  • Os recursos atuais em projetos não integrados à CMEK não podem ser integrados à CMEK retroativamente. Em vez disso, é recomendável exportar e restaurar os recursos em um novo projeto para o CMEK.
  • O Vertex AI Agent Builder tem algumas limitações do Cloud KMS.

Criar chaves

Para criar chaves, use o serviço KMS. Para instruções, consulte Como criar chaves simétricas. Ao criar ou escolher uma chave, você precisa configurar o seguinte:

  • Certifique-se de selecionar o local que você usa para seu agente, caso contrário, as solicitações falharão.

Configurar um agente para usar suas chaves

Ao criar um agente, é possível especificar o local dele e se ele vai usar uma chave gerenciada pelo Google ou uma chave gerenciada pelo cliente já configurada para esse local. Faça suas escolhas agora.

Pré-requisitos

  1. Crie a conta de serviço do CMEK do CCAI para seu projeto com a Google Cloud CLI. Para mais informações, consulte a documentação de identidade dos serviços do gcloud.

    gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID

    A conta de serviço será criada. Ele não será retornado na resposta de criação, mas terá o seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
  2. Conceda à conta de serviço da CMEK do CCAI o papel Criptografador/Descriptografador de CryptoKey do Cloud KMS para garantir que o serviço tenha permissões para criptografar e descriptografar com sua chave.

    gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
    --project=PROJECT_ID \
    --location=LOCATION_ID \
    --keyring=KMS_KEY_RING \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \
    --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Configurar uma chave para a localização dos agentes de conversação (Dialogflow CX)

  1. Use a API InitializeEncryptionSpec para configurar a chave.

    Você vai precisar fornecer as seguintes variáveis:

    • PROJECT_ID pelo ID do projeto no Google Cloud.
    • LOCATION_ID: o local escolhido para ativar a CMEK em agentes de conversação (Dialogflow CX).
    • KMS_KEY_RING: o keyring em que a chave do KMS foi criada. O local no keyring, como projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING, precisa corresponder ao local em que você está ativando o CMEK.
    • KMS_KEY_ID: o nome da chave do KMS que será usada para criptografar e descriptografar os dados dos agentes de conversação (Dialogflow CX) no local selecionado.

    Exemplo:

    curl -X POST \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json; charset=utf-8" \
        -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \
        "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"

    Você receberá uma resposta JSON semelhante a esta:

    {
      "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
    }
  2. Use a API GetOperation para verificar o resultado da operação de longa duração.

    Exemplo:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"

Verificar as configurações do CMEK

Use a API GetEncryptionSpec para verificar a chave de criptografia configurada para um local.

Exemplo:

    curl -X GET \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"
  

Revogar chaves

Para revogar o acesso dos agentes de conversação (Dialogflow CX) à chave, desative a versão da chave do KMS ou remova a função Criptografador/descriptografador da CryptoKey do Cloud KMS da chave do KMS da conta de serviço.

Após a revogação da chave, os dados criptografados ficam inacessíveis para os agentes de conversação (Dialogflow CX), e o serviço não fica mais em um estado operacional até que as permissões da chave sejam restabelecidas.