Claves de encriptación administradas por el cliente (CMEK)
De forma predeterminada, Google Cloud automáticamente encripta los datos cuando están en reposo con claves de encriptación administradas por Google.
Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar claves de encriptación administradas por el cliente (CMEK) para Document AI. En lugar de que Google administre las claves de encriptación que protegen tus datos, tu procesador de Document AI se protege con una clave que tú controlas y administras en Cloud Key Management Service (KMS).
En esta guía, se describen las CMEK para Document AI. Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud Key Management Service.
Requisitos
El agente de servicio de Document AI debe tener el rol de encriptador/desencriptador de CryptoKey de Cloud KMS en la clave que uses.
En el siguiente ejemplo, se otorga una función que proporciona acceso a una clave de Cloud KMS:
gcloud
gcloud kms keys add-iam-policy-binding key \ --keyring key-ring \ --location location \ --project key_project_id \ --member serviceAccount:service-project_number@gcp-sa-prod-dai-core.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Reemplaza key por el nombre de la clave. Reemplaza key-ring por el nombre del llavero de claves en el que se encuentra la clave. Reemplaza location por la ubicación de Document AI para el llavero de claves. Reemplaza key_project_id por el proyecto del llavero de claves. Reemplaza project_number por el número de tu proyecto.
C#
Para obtener más información, consulta la documentación de referencia de la API de Document AI C#.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Para obtener más información, consulta la documentación de referencia de la API de Document AI Go.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Para obtener más información, consulta la documentación de referencia de la API de Document AI Java.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Para obtener más información, consulta la documentación de referencia de la API de Document AI Node.js.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
PHP
Para obtener más información, consulta la documentación de referencia de la API de Document AI PHP.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Para obtener más información, consulta la documentación de referencia de la API de Document AI Python.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Ruby
Para obtener más información, consulta la documentación de referencia de la API de Document AI Ruby.
Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Usa CMEK
La configuración de encriptación está disponible cuando crea un procesador. Para usar la CMEK, selecciona la opción CMEK y elige una clave.
La clave de CMEK se usa para todos los datos asociados con el procesador y sus recursos secundarios. Todos los datos relacionados con el cliente que se envían al procesador se encriptan automáticamente con la clave proporcionada antes de escribirse en el disco.
Una vez que se crea un procesador, no puedes cambiar su configuración de encriptación. Para usar una clave diferente, debes crear un procesador nuevo.
Claves externas
Puedes usar Cloud External Key Manager (EKM) para crear y administrar claves externas para encriptar datos en Google Cloud.
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa. Si solicitas acceso a un recurso encriptado con una clave administrada de forma externa y la clave no está disponible, Document AI rechazará la solicitud. Puede haber un retraso de hasta 10 minutos antes de que puedas acceder al recurso una vez que la clave esté disponible.
Para obtener más consideraciones sobre el uso de claves externas, consulta Consideraciones sobre EKM.
Recursos compatibles con CMEK
Cuando se almacena cualquier recurso en el disco, si se almacena algún dato del cliente como parte del recurso, Document AI primero encripta el contenido con la clave de CMEK.
Recurso | Material encriptado |
---|---|
Processor |
N/A: No hay datos del usuario. Sin embargo, si especificas una clave de CMEK durante la creación del procesador, esta debe ser válida. |
ProcessorVersion |
Todos |
Evaluation |
Todos |
APIs compatibles con CMEK
Las APIs que usan la clave de CMEK para la encriptación incluyen las siguientes:
Método | Encriptación |
---|---|
processDocument |
N/A: No se guardaron datos en el disco. |
batchProcessDocuments |
Los datos se almacenan temporalmente en el disco y se encriptan con una clave efímera (consulta Cumplimiento de la CMEK). |
trainProcessorVersion |
Los documentos que se usan para el entrenamiento se encriptan con la clave de KMS o CMEK proporcionada. |
evaluateProcessorVersion |
Las evaluaciones se encriptan con la clave de KMS o CMEK proporcionada. |
Las solicitudes a la API que acceden a recursos encriptados fallan si la clave está inhabilitada o no se puede acceder a ella. Algunos ejemplos son los siguientes:
Método | Desencriptación |
---|---|
getProcessorVersion |
Las versiones del procesador entrenadas con datos del cliente están encriptadas. El acceso requiere desencriptación. |
processDocument |
El procesamiento de documentos con una versión del procesador encriptada requiere desencriptación. |
Import Documents |
La importación de documentos con auto-labeling habilitado con una versión del procesador encriptada requiere desencriptación. |
CMEK y Cloud Storage
Las APIs, como batchProcess
, pueden leer y escribir en buckets de Cloud Storage.
Todos los datos que Document AI escribe en Cloud Storage se encriptan con la clave de encriptación configurada del bucket, que puede ser diferente de la clave CMEK del procesador.
Para obtener más información, consulta la documentación sobre CMEK para Cloud Storage.