De forma predeterminada, Asistente se encarga de cifrar el contenido del cliente en reposo. Agent Assist se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.
Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Agent Assist. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Además, Cloud KMS te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y gestione las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.
Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceder a tus recursos de Asistente de agente será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).
Datos protegidos
Solo se pueden proteger con CMEKs los datos de conversaciones en reposo que se encuentren en una ubicación admitida.
Ubicaciones y funciones admitidas
La CMEK está disponible en todas las ubicaciones de Asistente para agentes y en todas las funciones de Asistente para agentes en las ubicaciones admitidas, incluidas las funciones de IA generativa.
Limitaciones
CMEK no está disponible para las funciones que están inhabilitadas en las ubicaciones de Asistente y en Respuesta inteligente.
Crear claves
Para crear claves, usa el servicio KMS. Para obtener instrucciones, consulta el artículo Crear claves simétricas. Al crear o elegir una clave, debes configurar lo siguiente:
- Asegúrate de seleccionar la ubicación que usas para tus datos de Asistencia con agente. De lo contrario, las solicitudes fallarán.
Habilitar las claves de cifrado gestionadas por el cliente en Agent Assist
Antes de crear datos de Asistente en una ubicación específica, puede especificar si los datos de esa ubicación estarán protegidos por una clave gestionada por el cliente. Configura tu llave en este momento.
Requisitos previos
Crea la cuenta de servicio de CMEK de CCAI para tu proyecto con la CLI de Google Cloud. Para obtener más información, consulta la documentación de identidad de los servicios de gcloud.
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
Se creará la cuenta de servicio. No se devolverá en la respuesta de creación, pero tendrá el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
Asigna a la cuenta de servicio de CMEK de CCAI el rol Encargado del encriptado y desencriptado de la clave criptográfica Cloud KMS para asegurarte de que el servicio tiene permisos para encriptar y desencriptar con tu clave.
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 una clave para una ubicación de Asistente
Usa la API InitializeEncryptionSpec para configurar la clave.
Deberá proporcionar las siguientes variables:
PROJECT_ID
: tu ID de proyecto Google Cloud .LOCATION_ID
: la ubicación que has elegido para habilitar CMEK en Asistente.KMS_KEY_RING
: el conjunto de claves en el que se creó la clave de KMS. La ubicación del conjunto de claves, comoprojects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING
, debe coincidir con la ubicación en la que habilites CMEK.KMS_KEY_ID
: el nombre de la clave de KMS que se usará para cifrar y descifrar los datos de Asistente en la ubicación seleccionada.
Por ejemplo:
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"
Deberías recibir una respuesta JSON similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
Usa la API GetOperation para comprobar el resultado de la operación de larga duración.
Por ejemplo:
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"
Comprobar la configuración de CMEK
Usa la API GetEncryptionSpec para comprobar la clave de cifrado configurada en una ubicación.
Por ejemplo:
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"
Revocar claves
Para revocar el acceso de Asistente a la clave, puedes inhabilitar la versión de la clave de KMS o quitar el rol Encriptador/Desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de la clave de KMS.
Después de revocar la clave, el agente de Assist no podrá acceder a los datos cifrados y el servicio dejará de estar operativo hasta que se restablezcan los permisos de la clave.