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
É possível proteger todos os dados do agente do Dialogflow CX em repouso com CMEKs.
Limitações
- A rotação de chaves é compatível, mas a recriptografia de dados não. 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
- Uma chave precisa 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 retroativamente. Em vez disso, exporte e restaure recursos em um novo projeto para CMEK.
- O Vertex AI Agent Builder tem algumas limitações do Cloud Key Management Service.
Criar chaves
Para criar chaves, use o Cloud KMS. Para instruções, consulte Como criar chaves simétricas. Ao criar ou escolher uma chave, configure o seguinte:
- Selecione o local que você usa para seu agente, porque as solicitações falham se os locais não corresponderem.
Identificar a conta de serviço do Dialogflow
Para identificar a conta de serviço do Dialogflow:
- Abra o console dos Agentes de conversação.
- Selecione o projeto.
- Selecione seu agente.
- No menu de navegação, clique em Configurações e acesse a guia Segurança.
- Clique em Gerenciar configurações de segurança para ser redirecionado ao console do CCAI.
- No console do CCAI, acesse a guia CMEK.
- Clique em Verificar ou criar conta de serviço.
- Anote o nome da conta de serviço exibida (por exemplo,
service-665989447347@gcp-sa-ccai-cmek.IAM.gserviceaccount.com).
Conceder permissões à conta de serviço
Para conceder permissões à conta de serviço:
- Acesse a página do Cloud KMS.
- Selecione o keyring criado.
- Selecione a chave criada nesse keyring.
- Acesse a guia Permissões.
- Clique em Permitir acesso.
- No campo Novos principais, insira a conta de serviço do Dialogflow identificada na etapa anterior.
- Na lista Selecionar um papel, selecione Criptografador/Descriptografador de CryptoKey do Cloud KMS.
- Clique em Salvar.
Copiar o nome do recurso da chave
Para copiar o nome do recurso da chave:
- Acesse a página de detalhes da chave do KMS.
- Clique no menu Ação e selecione Copiar o nome do recurso.
Essa ação copia o caminho completo da chave do KMS (por exemplo,
projects/<var>PROJECT_ID</var>/locations/<var>LOCATION_ID</var>/keyRings/<var>KEY_RING</var>/cryptoKeys/<var>KEY_ID</var>).
Ativar a CMEK no Dialogflow
Para ativar a CMEK no Dialogflow:
- Volte para a guia CMEK no console do CCAI.
- Cole o nome do recurso da chave copiada no campo Chave do local em que você quer ativar a CMEK.
- Clique em Salvar.
Isso inicia uma operação de longa duração (LRO) para ativar a CMEK no local escolhido. Esse processo leva de 2 a 3 minutos.
Configurar um agente para usar suas chaves
Ao criar um agente, especifique o local e se quer usar uma Google-managed encryption key ou uma CMEK para esse local.
Usar a CLI para configurar a CMEK
Como alternativa, você pode usar os comandos a seguir para configurar a CMEK. Isso é útil ao configurar para várias regiões.
Use a CLI do Google Cloud para criar a conta de serviço da CMEK do CCAI para seu projeto. 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 é criada. Ela não é retornada na resposta de criação, mas tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.comConceda à conta de serviço da CMEK do CCAI o papel Criptografador/Descriptografador de CryptoKey do Cloud KMS para permitir que o serviço criptografe e descriptografe 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
Usar a API para configurar uma chave e verificar as configurações
Para configurar uma chave para o local do Dialogflow CX, chame a API
InitializeEncryptionSpece forneça as seguintes variáveis:PROJECT_ID: o Google Cloud ID do projeto.LOCATION_ID: o local selecionado 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 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"
A resposta JSON é semelhante a esta:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
Para receber o resultado da operação de longa duração (LRO), chame a API
GetOperation.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"
Para recuperar a chave de criptografia configurada para um local, chame a API
GetEncryptionSpec.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 de CryptoKey do Cloud KMS da conta de serviço da chave do KMS.
Após a revogação da chave, os dados criptografados ficam inacessíveis ao Dialogflow CX, e o serviço não fica mais operacional até que as permissões da chave sejam restabelecidas.