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 el parámetro de configuración de la CMEK no está establecido como predeterminado 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 de la cantidad 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. Si inhabilitas la API de Agent Search, no se borrarán tus datos ni tu CmekConfig, y se te seguirá facturando el uso de la 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.
- Debes usar aplicaciones 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 obtener información sobre 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, se puede afectar negativamente la indexación y la actualización de la búsqueda.
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 del HSM.
- Las apps o los conectores de datos creados antes de que se registre una clave en el proyecto no pueden protegerse con esa 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 Agent Search, 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 los requisitos de la CMEK, excepto las apps y los conectores de datos de "importación única" y "periódica" para BigQuery y Cloud Storage.
Las apps de búsqueda de atención médica y los conectores de datos, 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 Crea 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 la 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 de varias regiones. 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 individuales | ||
|---|---|---|---|
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, fallará la importación de datos para las apps y los conectores de datos protegidos por CMEK, ya que Discovery Engine no podrá 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 Cómo activar o desactivar 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 de 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 Agent Search, 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 clave.KEY_NAME: el nombre de la clave.PROJECT_ID: Es el ID del proyecto que contiene el conector de datos o de la app.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 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 usarse antes de crear apps o conectores de datos. Una clave registrada no puede proteger recursos hasta que esté lista. Por lo general, el registro de una llave tarda unos minutos. Consulta Cómo verificar que tu clave de Cloud KMS esté lista para usarse.
Para hacer un seguimiento de la operación de registro, puedes registrar el valor de
nameque devuelve el método y seguir los pasos que se indican en Cómo obtener 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 la creación de 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 Agent Search, 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 elige la clave.
Si la clave está en un proyecto diferente, haz clic en Cambiar proyecto, luego en el nombre de tu proyecto, escribe el nombre de la clave que creaste y selecciona la clave.
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 usarse antes de crear apps o conectores de datos. Una clave registrada no puede proteger 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 para 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" "state": "ACTIVE" "isDefault": true }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" "state": "ACTIVE" "isDefault": true } ] }
Verifica que tu clave de Cloud KMS esté lista para usarse
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. El objeto CmekConfig está listo para usarse si todos los siguientes valores se encuentran en el resultado:
"state": "ACTIVE""isDefault": true
Si es
"isDefault": true, la clave se aplica automáticamente para proteger las nuevas apps y los conectores de datos.
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 configuración de tu ubicación muestre la clave registrada.
Anula el registro de tu clave de Cloud KMS
Para anular el registro de tu clave en Agent Search, sigue estos pasos:
Llama al método
DeleteCmekConfigcon el nombre del recurso CmekConfig que deseas anular el registro.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 de
nameque muestra el método y sigue las instrucciones en Cómo obtener 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 CmekConfig.
Cómo verificar que un conector de datos o una app 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 una app o un conector de datos en particular están protegidos por tu clave, sigue estos pasos:
Verifica con la consola de Google Cloud
Para verificar si un conector de datos está protegido por una clave, haz lo siguiente:
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 tu 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 de 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 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/dataStores/my-data-store-1"
Para verificar una app, 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/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.
Un ejemplo de llamada de curl se ve de la siguiente manera: