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. A criptografia padrão do Google usa os mesmos sistemas de gerenciamento de chaves protegidos que usamos para nossos próprios dados criptografados. Esses sistemas incluem controles de acesso estritos de chaves e auditoria.

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 do agente dos agentes de conversação (Dialogflow CX) podem ser protegidos com CMEKs.

Limitações

  • A rotação de chaves é compatível, mas a recriptografia 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 aceitas:
    • global
  • Uma chave deve ser usada por local do projeto.
  • Para restaurar um agente com a CMEK ativada, escolha a opção do Cloud Storage.
  • Não é possível integrar recursos atuais em projetos não integrados à CMEK de forma retroativa. Em vez disso, é recomendável exportar e restaurar os recursos em um novo projeto para CMEK.
  • Os aplicativos de IA têm 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 pelo cliente já configurada para esse local. Faça suas seleções agora.

Pré-requisitos

  1. Crie a conta de serviço do CCAI CMEK 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 da 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ê precisará fornecer as seguintes variáveis:

    • PROJECT_ID: o ID do projeto do Google Cloud .
    • LOCATION_ID: o local escolhido para ativar a CMEK nos 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 a CMEK.
    • KMS_KEY_ID: o nome da sua chave do KMS que será usada para criptografar e descriptografar 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 da 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 (Dialogflow CX) à chave, desative a versão da chave do KMS ou remova o papel Criptografador/descriptografador de CryptoKey do Cloud KMS da conta de serviço da chave do KMS.

Depois da revogação da chave, os dados criptografados vão ficar inacessíveis para os agentes de conversação (Dialogflow CX), e o serviço não vai mais estar em um estado operacional até que as permissões da chave sejam restabelecidas.