Chaves de criptografia gerenciadas pelo cliente (CMEK, na sigla em inglês)

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

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

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

  1. Use a API InitializeEncryptionSpec para 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, como projects/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"
    }
  2. Use a API GetOperation para 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.