De forma predeterminada, Agent Search encripta el contenido del cliente en reposo. Agent Search controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluida la Búsqueda con agente. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite hacer un seguimiento del uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Agent Search es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Cuando se registra una clave de CMEK, Agent Search llama a Cloud KMS de forma periódica para mantener una instancia aislada de forma lógica de tus datos. Esto sucede incluso si la configuración de CMEK no se establece como predeterminada y no hay apps ni conectores de datos que la usen. El uso proviene de la configuración y la ejecución de la instancia, no del volumen de datos ni de la cantidad de usuarios que acceden a ella. Consulta los precios de Cloud Key Management Service.
Para detener por completo el uso de Cloud KMS, debes anular el registro de tu clave de Cloud KMS, inhabilitar la clave o revocar sus permisos. Inhabilitar la API de Agent Search no borra tu CmekConfig ni tus datos, y se te seguirá facturando por el uso de CMEK.
Limitaciones de Cloud KMS en Agent Search
Las siguientes limitaciones se aplican a las claves de CMEK (Cloud KMS) en Agent Search:
- Las claves que ya se aplicaron a una app o a un conector de datos no se pueden cambiar, aunque se pueden rotar las versiones de las claves.
- La protección con CMEK con Agent Search no está integrada en la búsqueda de Cloud Asset Inventory.
- Debes usar apps y almacenes de datos multirregionales de EE.UU. o la UE (no globales). Para obtener más información sobre las multirregiones y la residencia de datos, incluidos los límites asociados con el uso de ubicaciones no globales, consulta ubicaciones.
Si necesitas registrar más de una clave para un proyecto, comunícate con tu equipo de cuentas de Google para solicitar un aumento de la cuota para las configuraciones de CMEK y proporciona una justificación de por qué necesitas más de una clave.
Se aplican las siguientes limitaciones al EKM o HSM con CMEK:
Tu cuota de EKM y HSM para las llamadas de encriptación y desencriptación debe tener al menos 1,000 QPM de margen. Para saber cómo consultar tus cuotas, consulta Cómo consultar tus cuotas de Cloud KMS.
Si se usa EKM, se debe poder acceder a la clave durante más del 90% de cualquier período de más de 30 segundos. Si no se puede acceder a la clave durante este período, la indexación y la actualización de la búsqueda pueden verse afectadas de forma negativa.
Si hay problemas de facturación, problemas persistentes de falta de cuota o problemas persistentes de inaccesibilidad durante más de 12 horas, el servicio desactiva automáticamente el CmekConfig asociado con la clave del EKM o HSM.
- Las apps o los conectores de datos creados antes de que se registre una clave en el proyecto no se pueden proteger con la clave.
- No puedes ajustar los modelos de búsqueda para las apps y los conectores de datos que están protegidos por claves.
- En el caso de las apps con varios conectores de datos, si un conector de datos usa una configuración de CMEK, todos los demás conectores de datos también deben usar la misma configuración de CMEK.
Para la búsqueda de agentes, se requiere la edición Enterprise. Para obtener información sobre la edición Enterprise, consulta Acerca de las funciones avanzadas.
Los conectores de origen no cumplen con las CMEK, excepto los conectores de datos y apps de "importación única" y "periódicos" para BigQuery y Cloud Storage.
Las apps de búsqueda y los conectores de datos de atención médica, así como los conectores de terceros, son compatibles con CMEK. Para obtener información general sobre las apps de atención médica y los conectores de datos, consulta Cómo crear una app de búsqueda de atención médica o un conector de datos. Para obtener información sobre cómo hacer que los conectores de terceros sean compatibles con CMEK, consulta Acerca de las claves de una sola región para conectores de terceros.
Las claves no se aplican a las siguientes APIs de RAG porque estas APIs no almacenan contenido en reposo: Check Grounding, Grounded Generation y Ranking.
- Puedes usar Terraform para configurar la CMEK para Agent Search. Consulta google_discovery_engine_cmek_config.
Acerca de las claves de una sola región para conectores de terceros
Si usas conectores de terceros y quieres usar tus propias claves para proteger los datos conectados, debes crear tres claves complementarias de una sola región, además de la clave multirregional. Los comandos para crear claves se proporcionan en el siguiente procedimiento, Registra tu clave de Cloud KMS.
Las claves únicas deben crearse para las siguientes regiones:
| Multirregión | Regiones únicas | ||
|---|---|---|---|
eu |
europe-west1 |
europe-west4 |
europe-north1 |
us |
us-east1 |
us-central1 |
us-west1 |
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
Crea una clave simétrica multirregional de Cloud KMS. Consulta Crea un llavero de claves y Crea una clave en la documentación de Cloud KMS.
Establece el período de rotación en Nunca (rotación manual).
En Ubicación, selecciona Multirregión y, luego, europe o us en el menú desplegable.
Se otorgó el rol de IAM de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave al agente de servicio de Discovery Engine. La cuenta del agente de servicio tiene una dirección de correo electrónico con el siguiente formato:service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com. Para obtener instrucciones generales sobre cómo agregar un rol a un agente de servicio, consulta Otorga o revoca un solo rol.Se otorgó el rol de IAM de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave al agente de servicio de Cloud Storage. Si no se otorga este rol, la importación de datos para las apps y los conectores de datos protegidos por CMEK fallará porque Discovery Engine no puede crear el bucket y el directorio temporales protegidos por CMEK que se requieren para la importación.No crees ninguna app ni conector de datos que quieras que administre tu clave hasta que completes las instrucciones de registro de la clave que se indican en esta página.
- Las funciones de la edición Enterprise están activadas para la app. Consulta Activa o desactiva la edición Enterprise.
Registra tu clave de Cloud KMS
Para encriptar datos con CMEK, debes registrar tu clave multirregional. De manera opcional, si tus datos necesitan claves de una sola región (por ejemplo, cuando usas conectores de terceros), también debes registrar tus claves de una sola región.
Antes de comenzar
Asegúrate de que se den las siguientes condiciones:
- La región aún no está protegida por una clave. El siguiente procedimiento falla si ya se registró una clave para la región a través del comando REST. Para determinar si hay una clave activa en Agent Search para una ubicación, consulta Cómo ver las claves de Cloud KMS.
- Tienes el rol de administrador de Discovery Engine
(
roles/discoveryengine.admin).
Procedimiento
REST
Para registrar tu propia clave para la Búsqueda con agente, sigue estos pasos:
Llama al método
UpdateCmekConfigcon la clave que deseas registrar.curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{"kmsKey":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"Reemplaza lo siguiente:
KMS_PROJECT_ID: Es el ID del proyecto que contiene la clave. El número de proyecto no funcionará.KMS_LOCATION: Es la multirregión de tu clave:usoeurope.KEY_RING: Es el nombre del llavero de claves que contiene la llave.KEY_NAME: el nombre de la clave.PROJECT_ID: Es el ID de tu proyecto que contiene la app o el conector de datos.LOCATION: Es la multirregión de tu app o conector de datos:usoeu.CMEK_CONFIG_ID: Establece un ID único para el recurso CmekConfig, por ejemplo,default_cmek_config.SET_DEFAULT: Se establece entruepara usar la clave como la clave predeterminada para las apps y los conectores de datos posteriores que se creen en la multirregión.
-
Verifica que tu clave esté lista para usar antes de crear apps o conectores de datos. Una clave registrada no puede proteger los recursos hasta que esté lista. Por lo general, el registro de una llave tarda unos minutos. Consulta Verifica que tu clave de Cloud KMS esté lista para usarse.
Para realizar un seguimiento de la operación de registro, puedes registrar el valor
nameque muestra el método y seguir las instrucciones de Obtén detalles sobre una operación de larga duración.Una vez que la clave esté lista, las apps y los conectores de datos nuevos de esa multirregión estarán protegidos por la clave. Para obtener información general sobre cómo crear apps, consulta Acerca de las apps y los almacenes de datos.
-
Crea la app. Para obtener vínculos a instrucciones para crear varias apps, consulta Acerca de las apps y los almacenes de datos.
Console
Procedimiento
Para registrar tu propia clave para la Búsqueda con agente, sigue estos pasos:
En la consola de Google Cloud , ve a la página AI Applications.
Haz clic en Configuración y selecciona la pestaña CMEK.
Haz clic en Agregar clave para la ubicación us o eu.
Haz clic en Agregar clave. Haz clic en el menú desplegable Selecciona una clave de Cloud KMS y selecciona la clave.
Si la clave está en un proyecto diferente, haz clic en Cambiar proyecto, haz clic en el nombre de tu proyecto, escribe el nombre de la clave que creaste y selecciónala.
Si conoces el nombre del recurso de la clave, haz clic en Ingresar manualmente, pega el nombre del recurso de la clave y haz clic en Guardar.
Haz clic en Aceptar > Guardar.
-
Verifica que tu clave esté lista para usar antes de crear apps o conectores de datos. Una clave registrada no puede proteger los recursos hasta que esté lista. Consulta Verifica que tu clave de Cloud KMS esté lista para usarse.
-
Crea la app. Para obtener vínculos a instrucciones sobre cómo crear varias apps, consulta Acerca de las apps y los almacenes de datos.
Esto registra tu clave y crea un CmekResource llamado default_cmek_config.
Los datos transferidos pueden tardar varias horas en aparecer en los resultados de la búsqueda.
Cómo ver las claves de Cloud KMS
Para ver una clave registrada para Agent Search, realiza una de las siguientes acciones:
Si tienes el nombre del recurso CmekConfig, llama al método
GetCmekConfig:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"Reemplaza lo siguiente:
LOCATION: Es la multirregión de tu app o conector de datos:usoeu.PROJECT_ID: Es el ID del proyecto que contiene los datos.CMEK_CONFIG_ID: Es el ID del recurso CmekConfig. Si registraste tu clave con la consola, el ID esdefault_cmek_config.
Un ejemplo de llamada y respuesta de curl se ve de la siguiente manera:
$ curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
{ "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key", "kmsKeyVersion": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/2", "state": "ACTIVE", "isDefault": true, "lastRotationTimestampMicros": "1788220800000000" }Si no tienes el nombre del recurso CmekConfig, llama al método
ListCmekConfigs:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"Reemplaza lo siguiente:
LOCATION: Es la multirregión de tu app o conector de datos:usoeu.PROJECT_ID: Es el ID del proyecto que contiene los datos.
Un ejemplo de llamada y respuesta de curl se ve de la siguiente manera:
$ curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs"
{ "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key", "kmsKeyVersion": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key/cryptoKeyVersions/2", "state": "ACTIVE", "isDefault": true, "lastRotationTimestampMicros": "1788220800000000" } ] }
Verifica que tu clave de Cloud KMS esté lista para usar
Después de registrar una clave, debes verificar que esté lista para usarse antes de que pueda proteger recursos:
Visualiza tus claves de Cloud KMS registradas. Consulta Cómo ver las claves de Cloud KMS.
Revisa el resultado del comando. CmekConfig está listo para usarse si todos los valores siguientes están en el resultado:
"state": "ACTIVE""isDefault": true
Si es
"isDefault": true, la clave se aplica automáticamente para proteger las apps y los conectores de datos nuevos.
También puedes verificar que se haya establecido una configuración predeterminada de CMEK (es decir, "isDefault": true) con la consola de Google Cloud :
En la consola de Google Cloud , ve a la página AI Applications.
Haz clic en Configuración y selecciona la pestaña CMEK.
Verifica que el estado de la configuración de tu ubicación muestre la clave registrada.
Anula el registro de tu clave de Cloud KMS
Para cancelar el registro de tu clave en Agent Search, sigue estos pasos:
Llama al método
DeleteCmekConfigcon el nombre del recurso CmekConfig que deseas anular.curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"Reemplaza lo siguiente:
LOCATION: Es la multirregión de tu app o conector de datos:usoeu.PROJECT_ID: Es el ID del proyecto que contiene el conector de datos o la app.CMEK_CONFIG_ID: Es el ID del recurso CmekConfig. Si registraste tu clave con la consola, el ID esdefault_cmek_config.
Un ejemplo de llamada y respuesta de curl se ve de la siguiente manera:
$ curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config" { "name": "projects/my-ai-app-project-123/locations/us/operations/delete-cmek-config-56789", "metadata": { "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.DeleteCmekConfigMetadata" } }Opcional: Registra el valor
nameque devuelve el método y sigue las instrucciones que se indican en Obtén detalles sobre una operación de larga duración para ver cuándo se completa la operación.Borrar un CmekConfig es una operación de larga duración que puede tardar hasta un par de días en completarse. Esto se debe a que los recursos encriptados subyacentes se desaprovisionan por completo antes de que se quite el CmekConfig.
Verifica que una app o un conector de datos estén protegidos por una clave
Las apps y los conectores de datos que se creen después de que se registre tu clave estarán protegidos por ella. Si quieres confirmar que tu clave protege una app o un conector de datos en particular, sigue estos pasos:
Verifica con la consola de Google Cloud
Para verificar si un conector de datos está protegido por una clave, sigue estos pasos:
En la consola de Google Cloud , ve a la página AI Applications.
Haz clic en Almacenes de datos y selecciona tu conector de datos.
Verifica que el campo Clave de KMS muestre la clave registrada.
Verifica con la CLI o la API
Para verificar un almacén de datos, haz lo siguiente:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"Reemplaza lo siguiente:
LOCATION: Es la multirregión de tu proyecto:usoeu.PROJECT_ID: ID del proyecto que contiene el conector de datos o la app.DATA_STORE_ID: Es el ID del almacén de datos asociado con tu app o conector de datos.
Un ejemplo de llamada curl se ve de la siguiente manera:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "x-goog-user-project: my-ai-app-project-123" "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
Para verificar una app, sigue estos pasos:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -H "x-goog-user-project: PROJECT_ID" \ "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/ENGINE_ID"Reemplaza lo siguiente:
LOCATION: Es la multirregión de tu proyecto:usoeu.PROJECT_ID: Es el ID del proyecto que contiene la app.ENGINE_ID: Es el ID de tu app.
Una llamada de ejemplo de curl se ve de la siguiente manera:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -H "x-goog-user-project: my-ai-app-project-123" "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/engines/my-app"
Revisa el resultado del comando: Si el campo
cmekConfigestá en el resultado y el campokmsKeymuestra la clave que registraste, la app o el conector de datos están protegidos por la clave.Un ejemplo de respuesta para un almacén de datos se ve de la siguiente manera:
{ "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1", "displayName": "my-data-store-1", "industryVertical": "GENERIC", "createTime": "2023-09-05T21:20:21.520552Z", "solutionTypes": [ "SOLUTION_TYPE_SEARCH" ], "defaultSchemaId": "default_schema", "cmekConfig": { "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/default_cmek_config", "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" } }A continuación, se muestra un ejemplo de respuesta para una app:
{ "name": "projects/969795412903/locations/us/collections/default_collection/engines/my-app", "displayName": "my-app", "dataStoreIds": [ "my-data-store-1" ], "solutionType": "SOLUTION_TYPE_SEARCH", "searchEngineConfig": { "searchTier": "SEARCH_TIER_STANDARD" }, "industryVertical": "GENERIC", "appType": "APP_TYPE_INTRANET", "cmekConfig": { "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/default_cmek_config", "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" } }
Otros datos protegidos por la clave de Cloud KMS
Además de los datos de los conectores de datos y las apps, tus claves pueden proteger otros tipos de información principal propiedad de la app que contiene Agent Search, como los datos de sesión generados durante la búsqueda con seguimiento. Este tipo de información principal está protegida por CMEK si las apps y los conectores de datos también lo están.
Aunque no puedes ejecutar un comando específico para verificar que las sesiones estén protegidas, puedes verificar si la app está protegida. Ejecuta el comando Verifica que una app o un conector de datos estén protegidos por una clave para que la app vea la clave en el recurso cmekConfig. Luego, sabrás que los datos de la sesión están protegidos.
Rota las claves de Cloud KMS
No puedes cambiar la clave que protege una app o un conector de datos existentes, pero puedes rotar esa clave a una versión nueva. Cuando conviertes una versión nueva de una clave registrada en la versión principal, Agent Search detecta el cambio y vuelve a encriptar tus datos con la nueva versión de la clave de forma automática. No es necesario que llames a un método de Agent Search para iniciar una rotación.
Para obtener información general sobre la rotación de claves, consulta Rotación de claves en la guía de Cloud KMS.
Importante: No rotes las claves en las apps ni en los conectores de datos asociados con recomendaciones o con cualquier app que necesite estadísticas, y no rotes las claves de una sola región que se usan para los conectores de terceros. Consulta Limitaciones de Cloud KMS en Agent Search.
Para rotar una clave, sigue estos pasos:
Crea una versión de clave nueva y conviértela en la versión principal. Para obtener instrucciones, consulta Rota una clave en la guía de Cloud KMS.
Deja habilitada la versión de clave anterior. La reencriptación comienza automáticamente después de que la Búsqueda con IA detecta la nueva versión principal.
Confirma que Agent Search haya detectado la nueva versión de la clave. Para ver tu CmekConfig, consulta Visualiza las claves de Cloud KMS. Verifica los siguientes campos en el resultado:
kmsKeyVersionmuestra la nueva versión de la clave.stateesACTIVE.lastRotationTimestampMicrosmuestra cuándo comenzó la rotación.
Mantén habilitada la versión de clave anterior durante al menos 30 días después de que
kmsKeyVersionmuestre la versión de clave nueva.Inhabilita la versión anterior de la clave y asegúrate de que todo funcione como antes. Consulta Habilita e inhabilita versiones de claves en la guía de Cloud KMS.
Cuando tengas la certeza de que la inhabilitación de la versión de clave anterior no causó problemas, destrúyela. Consulta Destruye y restablece versiones de claves en la guía de Cloud KMS.
Si se inhabilita o revoca una clave de Cloud KMS
Si una clave está inhabilitada o se revocan los permisos para la clave, la app o el conector de datos dejan de transferir y publicar datos en un plazo de 15 minutos. Puedes volver a habilitar tu clave en un plazo de 30 días para reanudar las operaciones antes de que venza la configuración de CMEK y se borren de forma permanente los datos asociados. Sin embargo, volver a habilitar una clave o restablecer los permisos lleva mucho tiempo. La app o el conector de datos pueden tardar hasta 24 horas en reanudar la publicación de datos.
Por lo tanto, no inhabilites una clave, a menos que sea necesario. Inhabilitar y habilitar una clave en una app o un conector de datos es una operación que lleva mucho tiempo. Por ejemplo, cambiar de forma repetida una clave entre inhabilitada y habilitada significa que la app o el conector de datos tardarán mucho tiempo en alcanzar un estado protegido. Si inhabilitas una clave y la vuelves a habilitar inmediatamente después, es posible que se produzcan días de inactividad, ya que primero se inhabilita la clave del conector de datos o de la app y, luego, se vuelve a habilitar.
Soluciona problemas: Error de proyectos de claves de KMS no encontrados
Síntoma: Cuando intentas crear una app o un conector de datos con una clave de KMS, recibes un error similar al siguiente:
KMS key projects/[...] not found for location: [...] and project number: [...]
Problema: Este mensaje de error puede ser engañoso. No necesariamente significa que la clave no existe. En cambio, podría indicar que la clave de KMS no se registró para usar con Agent Search en la ubicación especificada.
Solución: Para resolver este problema, registra tu clave siguiendo los pasos que se indican en Cómo registrar tu clave de Cloud KMS. Una vez que se complete el registro, podrás crear apps o conectores de datos protegidos por esa clave.