Por predefinição, o Dialogflow encripta o conteúdo do cliente em repouso. O Dialogflow processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google. A encriptação predefinida da Google usa os mesmos sistemas de gestão de chaves reforçados que usamos para os nossos dados encriptados. Estes sistemas incluem controlos de acesso a chaves rigorosos e auditoria.
Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEK) no Cloud KMS com serviços integrados com CMEK, incluindo o Dialogflow. A utilização de chaves do Cloud KMS dá-lhe controlo sobre o respetivo nível de proteção, localização, programação de rotação, utilização e autorizações de acesso, bem como limites criptográficos. A utilização do Cloud KMS também permite ver registos de auditoria e controlar os ciclos de vida das chaves. Em vez de a Google possuir e gerir as chaves de encriptação de chaves (KEKs) simétricas que protegem os seus dados, controla e gere estas chaves no Cloud KMS.
Depois de configurar os seus recursos com CMEKs, a experiência de acesso aos recursos do Dialogflow é semelhante à utilização da encriptação predefinida da Google. Para mais informações acerca das suas opções de encriptação, consulte o artigo Chaves de encriptação geridas pelo cliente (CMEK).
Dados protegidos
Limitações
- A rotação de chaves é suportada, mas a reencriptação de dados não. Ou seja, a reencriptação de dados encriptados anteriormente com uma nova versão da chave não é suportada.
- As seguintes
regiões
não são suportadas:
global
- Deve usar uma chave por localização do projeto.
- Para restaurar um agente com a CMEK ativada, tem de escolher a opção do Cloud Storage.
- Não é possível integrar retroativamente recursos existentes em projetos não integrados com CMEK. Em alternativa, é recomendável que os recursos sejam exportados e restaurados num novo projeto para CMEK.
- O Vertex AI Agent Builder tem algumas limitações do Cloud KMS
Crie chaves
Para criar chaves, usa o serviço KMS. Para ver instruções, consulte o artigo Criar chaves simétricas. Quando cria ou escolhe uma chave, tem de configurar o seguinte:
- Certifique-se de que seleciona a localização que usa para o seu agente. Caso contrário, os pedidos vão falhar.
Configure um agente para usar as suas chaves
Quando cria um agente, pode especificar a localização do agente e se o agente vai usar uma chave gerida pela Google ou a chave gerida pelo cliente já configurada para essa localização. Faça as suas seleções neste momento.
Pré-requisitos
Crie a conta de serviço do CCAI CMEK para o seu projeto com a CLI Google Cloud. Para mais informações, consulte a documentação de identidade dos serviços gcloud.
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
A conta de serviço é criada. Não é devolvido na resposta de criação, mas tem o seguinte formato:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
Conceda à conta de serviço da CMEK da CCAI a função encriptar/desencriptar do CryptoKey do Cloud KMS para garantir que o serviço tem autorizações para encriptar e desencriptar com a 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
Configure uma chave para a localização de agentes conversacionais (Dialogflow CX)
Use a API
InitializeEncryptionSpec
para configurar a chave.Tem de fornecer as seguintes variáveis:
PROJECT_ID
: o ID do seu Google Cloud projeto.LOCATION_ID
: a localização que escolheu para ativar as CMEK nos agentes de conversação (Dialogflow CX).KMS_KEY_RING
: o conjunto de chaves no qual a chave do KMS foi criada. (A localização no conjunto de chaves, comoprojects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING
, tem de corresponder à localização onde está a ativar a CMEK.)KMS_KEY_ID
: o nome da sua chave do KMS que vai ser usada para encriptar e desencriptar os dados dos agentes conversacionais (Dialogflow CX) na localização selecionada.
Por 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"
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
Use a API
GetOperation
para verificar o resultado da operação de longa duração.Por 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"
Verifique as definições da CMEK
Use a API GetEncryptionSpec
para verificar a chave de encriptação configurada para uma localização.
Por 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"
Revogue chaves
Para revogar o acesso dos agentes conversacionais (Dialogflow CX) à chave, pode desativar a versão da chave do KMS ou remover a função encriptar/desencriptar do CryptoKey do Cloud KMS da conta de serviço da chave do KMS.
Após a revogação da chave, os dados encriptados tornam-se inacessíveis aos agentes conversacionais (Dialogflow CX) e o serviço deixa de estar num estado operacional até que as autorizações da chave sejam repostas.