Chaves de encriptação geridas pelo cliente (CMEK)

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

Todos os dados em repouso dos agentes conversacionais (Dialogflow CX) podem ser protegidos com CMEKs.

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

  1. 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
  2. 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)

  1. 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, como projects/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"
    }
  2. 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.