Claves de encriptación administradas por el cliente (CMEK)
De forma predeterminada, Google Cloud encripta los datos cuando están en reposo automáticamente 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 usas.
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 creas un procesador. Para usar CMEK, selecciona la opción CMEK y elige una clave.
La clave 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 encargado del tratamiento se encriptan automáticamente con la clave proporcionada antes de escribirlos 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 que encripten 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 de EKM.
Recursos compatibles con CMEK
Cuando se almacena cualquier recurso en el disco, si se almacenan datos 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
Entre las APIs que usan la clave CMEK para la encriptación, se incluyen las siguientes:
Método | Encriptación |
---|---|
processDocument |
N/A: No hay datos guardados en el disco. |
batchProcessDocuments |
Los datos se almacenan temporalmente en el disco y se encriptan con una clave efímera (consulta Cumplimiento de 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 de procesador encriptada requiere desencriptación. |
CMEK y Cloud Storage
Las APIs, como batchProcess
, pueden leer y escribir en buckets de Cloud Storage.
Document AI encripta los datos que escribe en Cloud Storage con la clave de encriptación configurada del bucket, que puede ser diferente de la clave CMEK de tu procesador.
Para obtener más información, consulta la documentación de CMEK para Cloud Storage.