Claves de encriptado gestionadas por el cliente

De forma predeterminada, las aplicaciones de IA cifran el contenido del cliente en reposo. Aplicaciones de IA 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 AI Applications. 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. Con Cloud KMS también puedes monitorizar el uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y el gestor de 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 aplicaciones de IA 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).

Limitaciones de Cloud KMS en aplicaciones de IA

Se aplican las siguientes limitaciones a las claves de CMEK (Cloud KMS) en aplicaciones de IA:

  • Las claves que ya se hayan aplicado a un almacén de datos no se pueden cambiar.
  • Una vez que se ha registrado una clave, no se puede anular su registro ni eliminarla de un almacén de datos.
  • Debes usar almacenes de datos y aplicaciones multirregionales de EE. UU. o de la UE (no globales). Para obtener más información sobre las multirregiones y la residencia de datos, incluidos los límites asociados al uso de ubicaciones no globales, consulta el artículo sobre ubicaciones.
  • Si necesitas registrar más de una clave para un proyecto, ponte en contacto con el equipo de tu cuenta de Google para solicitar un aumento de la cuota de configuraciones de CMEK y justifica por qué necesitas más de una clave.

  • El uso de gestores de claves externos (EKM) con CMEK está disponible de forma general con lista de permitidos. Para usar EKM con CMEK, ponte en contacto con tu equipo de cuentas de Google.

    Se aplican las siguientes limitaciones a EKM o HSM con CMEK:

    • Tu cuota de EKM y HSM para las llamadas de cifrado y descifrado debe tener al menos 1000 QPM de margen. Para saber cómo consultar tus cuotas, consulta Comprobar las cuotas de Cloud KMS.

    • Si se usa EKM, la clave debe estar disponible durante más del 90% de cualquier periodo de más de 30 segundos. Si no se puede acceder a la clave durante este periodo, puede afectar negativamente a la indexación y a 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 elemento CmekConfig asociado a la clave de EKM o HSM.

  • Los almacenes de datos creados antes de que se registre una clave en el proyecto no se pueden proteger con la clave.

  • No puede ajustar modelos de búsqueda para almacenes de datos protegidos por claves.

  • En las aplicaciones con varios almacenes de datos, si uno de ellos usa una configuración de CMEK, todos los demás almacenes de datos también deben usar la misma configuración de CMEK.

  • No se admite la rotación de claves para las claves de una sola región de los conectores de terceros. Si inhabilitas o destruyes una versión de una clave que protege un almacén de datos asociado a un conector de terceros, el conector dejará de funcionar.

  • El cambio de clave no es compatible con Analytics. Si rotas las claves de un almacén de datos, las aplicaciones que usen ese almacén dejarán de mostrar analíticas.

  • No puedes usar Terraform para configurar CMEK en aplicaciones de IA.

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 indican en el siguiente procedimiento, Registrar la clave de Cloud KMS.

Las claves únicas deben crearse para las siguientes regiones:

Multirregional Una sola región
eu europe-west1 europe-west4 europe-north1
us us-east1 us-central1 us-west1

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Crea una clave simétrica de Cloud KMS multirregional. Consulta Crear un conjunto de claves y Crear una clave en la documentación de Cloud KMS.

    • Establece el periodo de rotación en Nunca (rotación manual).

    • En Ubicación, selecciona Multirregión y, en el menú desplegable, elige europe o us.

  • Se ha concedido el rol de gestión de identidades y accesos Encargado del cifrado y descifrado de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave al agente de servicio de Discovery Engine. La cuenta de agente de servicio tiene una dirección de correo que usa el siguiente formato: service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.com. Para obtener instrucciones generales sobre cómo añadir un rol a un agente de servicio, consulta Conceder o revocar un solo rol.

  • Se ha concedido el rol de IAM CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) de la clave al agente de servicio de Cloud Storage. Si no se concede este rol, la importación de datos de los almacenes de datos protegidos con CMEK fallará porque Discovery Engine no podrá crear el directorio y el bucket temporales protegidos con CMEK que se necesitan para la importación.

  • No crees ningún almacén de datos ni aplicación que quieras que gestione tu clave hasta que hayas completado las instrucciones de registro de la clave de esta página.

Registrar la clave de Cloud KMS

Para cifrar datos con CMEK, debes registrar tu clave multirregional. Si tus datos necesitan claves de una sola región (por ejemplo, cuando usas conectores de terceros), debes registrar las claves de una sola región.

REST

Para registrar tu propia clave para aplicaciones de IA, sigue estos pasos:

  1. Llama al método UpdateCmekConfig con la clave que quieras 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"
    

    Haz los cambios siguientes:

    • KMS_PROJECT_ID: el ID del proyecto que contiene la clave. El número de proyecto no funcionará.
    • KMS_LOCATION: la multirregión de tu clave: us o europe.
    • KEY_RING: el nombre del conjunto de claves que contiene la clave.
    • KEY_NAME: el nombre de la clave.
    • PROJECT_ID: el ID del proyecto que contiene el almacén de datos.
    • LOCATION: la multirregión de tu almacén de datos: us o eu.
    • CMEK_CONFIG_ID: asigna un ID único al recurso CmekConfig. Por ejemplo, default_cmek_config.
    • SET_DEFAULT: se define como true para usar la clave como clave predeterminada de los almacenes de datos que se creen posteriormente en la multirregión.
  2. Opcional: Registra el valor name devuelto por el método y sigue las instrucciones de Obtener detalles sobre una operación de larga duración para ver cuándo se completa la operación.

    Normalmente, se tarda unos minutos en registrar una llave.

    Una vez completada la operación, los nuevos almacenes de datos de esa multirregión estarán protegidos por la clave. Para obtener información general sobre cómo crear almacenes de datos, consulta Información sobre las aplicaciones y los almacenes de datos.

Consola

Antes de empezar

Comprueba que la región no esté protegida ya con una llave. El siguiente procedimiento falla si ya se ha registrado una clave para la región mediante el comando REST.

Para determinar si hay una clave activa en Aplicaciones de IA para una ubicación, consulta Ver claves de Cloud KMS.

Procedimiento

Para registrar tu propia clave para aplicaciones de IA, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Aplicaciones de IA.

    Aplicaciones de IA

  2. Haz clic en Configuración y selecciona la pestaña CMEK.

  3. Haz clic en Añadir clave para la ubicación us o eu.

    Haz clic en Añadir clave para una ubicación.
    Haz clic en Añadir clave.
    1. Haga clic en el menú desplegable Seleccionar una clave de Cloud KMS y elija la clave.

      • Si la clave está en otro proyecto, haz clic en Cambiar de proyecto, selecciona el nombre del proyecto, escribe el nombre de la clave que has creado y selecciona la clave.

      • Si conoces el nombre del recurso de la clave, haz clic en Introducir manualmente, pega el nombre del recurso de la clave y haz clic en Guardar.

    2. Haz clic en Aceptar > Guardar.

De esta forma, se registra tu clave y se crea un CmekResource llamado default_cmek_config.

Los datos ingeridos pueden tardar varias horas en aparecer en los resultados de búsqueda.

.

Ver claves de Cloud KMS

Para ver una clave registrada de aplicaciones de IA, haz 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"
    

    Haz los cambios siguientes:

    • LOCATION: la multirregión de tu almacén de datos: us o eu.
    • PROJECT_ID: el ID del proyecto que contiene los datos.
    • CMEK_CONFIG_ID: ID del recurso CmekConfig. Si has registrado tu clave mediante la consola, el ID es default_cmek_config.

    Un ejemplo de llamada y respuesta de curl sería el siguiente:

    $ 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"
    

    Haz los cambios siguientes:

    • LOCATION: la multirregión de tu almacén de datos: us o eu.
    • PROJECT_ID: el ID del proyecto que contiene los datos.

    Un ejemplo de llamada y respuesta de curl sería el siguiente:

    $ 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 } ] }

Anular el registro de una clave de Cloud KMS

Para anular el registro de tu clave en las aplicaciones de IA, sigue estos pasos:

  1. Llama al método DeleteCmekConfig con el nombre del recurso CmekConfig que quieras 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"
    

    Haz los cambios siguientes:

    • LOCATION: la multirregión de tu almacén de datos: us o eu.
    • PROJECT_ID: el ID del proyecto que contiene el almacén de datos.
    • CMEK_CONFIG_ID: ID del recurso CmekConfig. Si has registrado tu clave mediante la consola, el ID es default_cmek_config.

    Un ejemplo de llamada y respuesta de curl sería el siguiente:

    $ 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"
     }
    }
    

  2. Opcional: Registra el valor name devuelto por el método y sigue las instrucciones de Obtener detalles sobre una operación de larga duración para ver cuándo se completa la operación.

    Normalmente, se tarda unos minutos en eliminar una clave.

Verificar que un almacén de datos está protegido por una clave

Los almacenes de datos que se creen después de registrar la clave estarán protegidos por ella. Si quieres confirmar que un almacén de datos concreto está protegido por tu clave, sigue estos pasos:

  1. Ejecuta el siguiente comando curl en el almacén de datos:

    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"
    

    Haz los cambios siguientes:

    • LOCATION: la multirregión de tu almacén de datos: us o eu.
    • PROJECT_ID: el ID del proyecto que contiene el almacén de datos.
    • DATA_STORE_ID: el ID del almacén de datos.

    Una llamada curl de ejemplo tiene este aspecto:

    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"
    

  2. Revisa el resultado del comando: si el campo cmekConfig se encuentra en el resultado y el campo kmsKey muestra la clave que has registrado, significa que el almacén de datos está protegido por la clave.

    Un ejemplo de respuesta sería el siguiente:

    {
     "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"
     }
    }
    

Otros datos protegidos por la clave de Cloud KMS

Además de los datos de los almacenes de datos, tus claves pueden proteger otros tipos de información principal propiedad de la aplicación que almacenan las aplicaciones de IA, como los datos de sesión generados durante las búsquedas con seguimiento. Este tipo de información básica está protegido con CMEK si los almacenes de datos asociados a la aplicación también lo están.

Aunque no puedes ejecutar un comando específico para verificar que las sesiones están protegidas, si ejecutas el comando Verificar que un almacén de datos está protegido por una clave y ves la clave en el recurso cmekConfig, sabrás que los datos de la sesión están protegidos.

Rotar claves de Cloud KMS

Al rotar las claves, se crea una nueva versión de la clave y se establece como versión principal. Deja habilitada la versión original de la clave durante un tiempo antes de inhabilitarla. De esta forma, las operaciones de larga duración que puedan estar usando la clave antigua tendrán tiempo para completarse.

En el siguiente procedimiento se describen los pasos para rotar las claves de un almacén de datos de aplicaciones de IA. 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 de los almacenes de datos asociados a aplicaciones de recomendaciones ni a ninguna aplicación que necesite analíticas. Tampoco rotes las claves de una sola región que se usen para conectores de terceros. Consulta las limitaciones de Cloud KMS en aplicaciones de IA.

  1. Vuelve a registrar tu llave. Para ello, repite el paso 1 de Registrar tu clave de Cloud KMS.

  2. Consulta las instrucciones de la sección Gestionar claves de la guía de Cloud KMS para hacer lo siguiente:

    1. Crea una versión de clave, habilítala y conviértela en la principal.

    2. Deja habilitada la versión de clave anterior.

    3. Después de una semana, inhabilita la versión de clave anterior y comprueba que todo funciona como antes.

    4. Más adelante, cuando tengas la certeza de que no se han producido problemas al inhabilitar la versión anterior de la clave, podrás destruirla.

Si una clave de Cloud KMS está inhabilitada o revocada

Si una clave está inhabilitada o se revocan los permisos de la clave, el almacén de datos dejará de ingerir y de servir datos en un plazo de 15 minutos. Sin embargo, volver a habilitar una clave o restaurar permisos lleva mucho tiempo. El almacén de datos puede tardar hasta 24 horas en volver a proporcionar datos.

Por lo tanto, no inhabilite una clave a menos que sea necesario. Habilitar e inhabilitar una clave en un almacén de datos es una operación que lleva tiempo. Por ejemplo, si se cambia repetidamente el estado de una clave entre inhabilitado y habilitado, el almacén de datos tardará mucho tiempo en alcanzar un estado protegido. Si inhabilita una clave y la vuelve a habilitar inmediatamente después, podría producirse un tiempo de inactividad de varios días, ya que la clave se inhabilita primero en el almacén de datos y, posteriormente, se vuelve a habilitar.