Por padrão, o Dialogflow CX criptografa o conteúdo do cliente em repouso. O Dialogflow CX processa a criptografia para você sem nenhuma ação adicional da sua parte. Essa opção é chamada de criptografia padrão do Google. A criptografia padrão do Google usa os mesmos sistemas de gerenciamento de chaves com aumento da proteção 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 CX. Ao usar chaves do Cloud KMS, é possível 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. Com o Cloud KMS, também é possível visualizar registros de auditoria e controlar ciclos de vida de chaves. 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 seus recursos com CMEKs, a experiência de acesso aos seus recursos do Dialogflow CX é semelhante ao uso da criptografia padrão do Google. Para saber mais sobre suas opções de criptografia, consulte Chaves de criptografia gerenciadas pelo cliente (CMEK).
Dados protegidos
Todos os dados em repouso do agente do 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 da chave.
- As seguintes
regiões
estão indisponíveis:
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 retroativamente recursos atuais em projetos não integrados à CMEK. Em vez disso, recomendamos que os recursos sejam exportados e restaurados em um novo projeto para 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 usará uma chave gerenciada pelo Google ou a chave gerenciada pelo cliente já configurada para esse local. Faça suas seleções agora.
Pré-requisitos
Crie a conta de serviço da CMEK do CCAI para seu projeto com a Google Cloud CLI. Para mais informações, consulte a documentação de identidade dos serviços da gcloud.
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
A conta de serviço será criada. Ela não será retornada na resposta de criação, mas terá o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
Conceda à conta de serviço da CMEK do CCAI o papel Criptografador/Descriptografador do Cloud KMS CryptoKey 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 o local do Dialogflow CX
Use a API
InitializeEncryptionSpecpara configurar a chave.Você precisará fornecer as seguintes variáveis:
PROJECT_ID: o ID do Google Cloud projeto do.LOCATION_ID: o local escolhido para ativar a CMEK no Dialogflow CX.KMS_KEY_RING: o keyring em que a chave do KMS foi criada. O local no keyring, comoprojects/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 chave do KMS que será usada para criptografar e descriptografar dados do 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" }
Use a API
GetOperationpara 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 do Dialogflow CX à chave, você pode desativar a versão da chave do KMS ou remover o papel Criptografador/Descriptografador do Cloud KMS CryptoKey da conta de serviço da chave do KMS.
Após a revogação da chave, os dados criptografados ficarão inacessíveis ao Dialogflow CX, e o serviço não estará mais em um estado operacional até que as permissões da chave sejam restabelecidas.