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

Por predefinição, o Agent Assist encripta o conteúdo do cliente em repouso. O Agent Assist processa a encriptação por si sem ações adicionais da sua parte. Esta opção chama-se Encriptação predefinida da Google.

Se quiser controlar as suas chaves de encriptação, pode usar chaves de encriptação geridas pelo cliente (CMEKs) no Cloud KMS com serviços integrados com CMEKs, incluindo o Agent Assist. 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 Agent Assist é 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

Apenas os dados de conversação em repouso numa localização suportada podem ser protegidos com CMEKs.

Localizações e funcionalidades suportadas

A CMEK está disponível em todas as localizações do Agent Assist e para todas as funcionalidades do Agent Assist nas localizações suportadas, incluindo as funcionalidades de IA generativa.

Limitações

A CMEK não está disponível para funcionalidades desativadas nas localizações do Agent Assist e na resposta inteligente.

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 os dados do Agent Assist. Caso contrário, os pedidos vão falhar.

Ative as CMEK no Agent Assist

Antes de criar dados do Agent Assist numa localização específica, pode especificar se os dados nesta localização vão ser protegidos por uma chave gerida pelo cliente. Configure a chave 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 uma localização do Agent Assist

  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 no Agent Assist.
    • 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 chave do KMS que vai ser usada para encriptar e desencriptar os dados do Agent Assist 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 do Agent Assist à 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 ficam inacessíveis para o Agent Assist, e o serviço deixa de estar num estado operacional até que as autorizações da chave sejam repostas.