En esta página, se describe cómo encriptar datos almacenados en la IA contra lavado de dinero con claves de encriptación administradas por el cliente (CMEK).
Descripción general
Todos los datos del cliente en una instancia de IA de AML se encriptan en reposo con una clave de CMEK. Tú administras la clave en Cloud Key Management Service (Cloud KMS) y controlas el acceso a la clave con Identity and Access Management. Si inhabilitas de forma temporal la clave CMEK o la borras de forma permanente, no se podrá acceder a los datos encriptados con esa clave.
La IA contra el lavado de dinero solo admite CMEK usando Cloud KMS No es compatible con la encriptación predeterminada de Google.
CMEK te permite controlar más aspectos del ciclo de vida y la administración de tus pero también genera costos adicionales por el servicio de Cloud KMS.
Cloud KMS puede ejecutarse en el mismo proyecto de Google Cloud que la IA de AML o en un proyecto distinto en el que administres claves de varios proyectos de forma centralizada.
La configuración de encriptación se establece cuando creas una instancia. Una vez que se crea una instancia, no puedes asignar una clave de Cloud KMS diferente. Aún puedes rotar la clave.
Para obtener más información sobre las CMEK en general, consulta la documentación de Cloud KMS.
Niveles de protección
Cloud KMS te permite elegir entre una variedad de niveles de protección, incluidos los siguientes:
- Claves de software
- Módulos de seguridad de hardware (HSM) con Cloud HSM
Lee cómo configurar CMEK en la IA contra lavado de dinero. No todos los niveles de protección están disponibles en todas las regiones. Ten en cuenta que la IA contra lavado de dinero no admite claves de encriptación proporcionadas por el cliente (CSEK) ni Cloud External Key Manager.
Datos de clientes
Todos los datos del cliente que manejan La IA contra el lavado de dinero se encripta en reposo con la clave CMEK especificada en el Instancia superior correspondiente recurso. Esto incluye todos los datos del cliente asociados con los recursos de IA de la AML, como conjuntos de datos, parámetros de configuración del motor, modelos y mucho más. Todo el almacenamiento temporal y persistente de los datos del cliente, incluidas las copias de entradas y salidas, los atributos de AA generados, los hiperparámetros del modelo, los pesos del modelo y los resultados de la predicción, se encripta con la clave de CMEK de la instancia correspondiente.
Consulta las condiciones específicas del servicio para conocer la definición de los datos del cliente, que pueden no incluir identificadores de recursos, atributos ni otras etiquetas de datos.
Encriptación de datos de entrada y salida
La configuración de encriptación de IA de AML en una instancia solo se usa para los recursos de IA de AML y sus datos. IA contra lavado de dinero No administra la encriptación de los datos de entrada o salida en tu cuenta de Google Cloud. en un proyecto final. Si deseas que estos datos se encripten con CMEK, debes configurar una clave de Cloud KMS que coincida con el nivel de protección de claves que elegiste en el conjunto de datos de BigQuery. También puedes volver a usar la misma clave que usa la IA contra lavado de dinero.
Obtén más información sobre la encriptación en BigQuery.
Rotación de claves
Se recomienda rotar las claves de forma periódica y automática. Con CMEK, tú controlas la rotación de claves. Cuando rotas una clave, los datos encriptado con versiones de clave anteriores no se vuelve a encriptar automáticamente con el a la versión nueva de la clave.
Un solo recurso de IA de AML se puede almacenar de forma interna como varias unidades. Si, durante el ciclo de vida de un recurso de IA de AML, se rota la versión de clave, es posible que no todas las unidades se encripten con la misma versión de clave.
Si rotas una clave, no hay forma en la IA contra lavado de dinero para forzar una volver a encriptar o determinar si es seguro borrar las versiones anteriores de la clave.
Obtén más información sobre la rotación de claves con Cloud KMS.
Crea una clave y otorga permisos
En las siguientes instrucciones, se explica cómo crear una clave para una instancia y otorgar permisos para encriptar y desencriptar datos de la instancia con la clave. Puedes usar una llave directamente en Cloud KMS o en una clave administrada de forma externa poner a disposición con Cloud External Key Manager.
En el proyecto de Google Cloud en el que deseas administrar tus claves, haz lo siguiente:
Crea un llavero de claves con el
projects.locations.keyRings.create
. La ubicación del llavero de claves de Cloud KMS debe coincidir con el ubicación de la instancia que encriptas.REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
KMS_PROJECT_ID
: Es el proyecto de Google Cloud. ID del proyecto que contiene el llavero de clavesLOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles.Cómo mostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: Es un identificador definido por el usuario para el llavero de claves.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID"PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID", "createTime": "2023-03-14T15:52:55.358979323Z" }
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
KMS_PROJECT_ID
: Es el proyecto de Google Cloud. ID del proyecto que contiene el llavero de clavesLOCATION
: Es la ubicación del llavero de claves. usa uno de los regiones admitidasCómo mostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: Es un identificador definido por el usuario para la llavero de claves
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --project KMS_PROJECT_ID --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --project KMS_PROJECT_ID --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_ID ^ --project KMS_PROJECT_ID --location LOCATION
$
Crea una clave con el método
projects.locations.keyRings.cryptoKeys
.REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
KMS_PROJECT_ID
: El ID del proyecto de Google Cloud del proyecto que contiene el llaveroLOCATION
: Es la ubicación del llavero de claves. usa uno de los regiones admitidasMostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: Es el identificador definido por el usuario para la llavero de clavesKEY_ID
: Es un identificador definido por el usuario para la clave.
Cuerpo JSON de la solicitud:
{ "purpose": "ENCRYPT_DECRYPT" }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:cat > request.json << 'EOF' { "purpose": "ENCRYPT_DECRYPT" } EOF
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID"PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado
request.json
. Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:@' { "purpose": "ENCRYPT_DECRYPT" } '@ | Out-File -FilePath request.json -Encoding utf8
Luego, ejecuta el siguiente comando para enviar tu solicitud de REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID" | Select-Object -Expand ContentDeberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID", "primary": { "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID/cryptoKeyVersions/1", "state": "ENABLED", "createTime": "2023-03-14T15:52:55.358979323Z", "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": "2023-03-14T15:52:55.358979323Z" }, "purpose": "ENCRYPT_DECRYPT", "createTime": "2023-03-14T15:52:55.358979323Z", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
KMS_PROJECT_ID
: El ID del proyecto de Google Cloud del proyecto que contiene el llaveroLOCATION
: Es la ubicación del llavero de claves. usa uno de los regiones admitidasCómo mostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: Es el identificador definido por el usuario para la llavero de clavesKEY_ID
: Es un identificador definido por el usuario para la clave.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud kms keys create KEY_ID \ --keyring KEY_RING_ID \ --project KMS_PROJECT_ID \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --project KMS_PROJECT_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_ID ^ --project KMS_PROJECT_ID ^ --location LOCATION ^ --purpose "encryption"
$
Si no creaste una instancia de IA contra el lavado de dinero en el proyecto de IA contra el lavado de dinero, la cuenta de servicio de IA contra el lavado de dinero aún no existe. Cree la cuenta de servicio.
Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud del proyecto en el que se ejecuta la IA de la AML.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (PowerShell)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Deberías recibir una respuesta similar a la que figura a continuación:
Service identity created: service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com
Otorga el Rol de IAM de Encriptador/Desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) a la IA contra lavado de dinero cuenta de servicio. Otorga este permiso en la clave que creaste.Antes de usar cualquiera de los datos de comando a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: El ID del proyecto de Google Cloud del proyecto en el que se ejecuta la IA de la AML.KEY_ID
: Es el identificador definido por el usuario para la clave.LOCATION
: Es la ubicación del llavero de claves. usa uno de los regiones admitidasMostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: Es un identificador definido por el usuario para la llavero de clavesPROJECT_NUMBER
: Google Cloud número de proyecto del proyecto en el que se ejecuta la IA contra lavado de dinero
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID \ --location LOCATION --keyring=KEY_RING_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (PowerShell)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ` --location LOCATION --keyring=KEY_RING_ID ` --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ` --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (cmd.exe)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ^ --location LOCATION --keyring=KEY_RING_ID ^ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ^ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Deberías recibir una respuesta similar a la que figura a continuación:
Updated IAM policy for key KEY_ID. bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwYCq0Sq4Ho= version: 1
Para obtener más información sobre este comando, consulta la documentación de claves add-iam-policy-binding de KMS de gcloud.
Ahora puedes crear una instancia y especifica la clave que se usará para la encriptación.
Quita el acceso
Existen varias formas de quitar el acceso a la clave de la instancia encriptada con CMEK:
- Revoca el rol de encriptador/desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de IA de AML mediante la consola de Google Cloud o la CLI de gcloud.
- Inhabilita de forma temporal la clave CMEK.
- Destruir permanentemente la clave CMEK
Te recomendamos que revoques los permisos de la IA contra el lavado de dinero. la cuenta de servicio antes de inhabilitar o destruir una clave. Los cambios en los permisos se propagan en cuestión de segundos, por lo que puedes observar el impacto de inhabilitar o destruir una clave.
Cuando inhabilitas o borras la clave de encriptación de una instancia, pierdes la posibilidad de usar o recuperar los datos del cliente asociados con la instancia. Todas los datos del cliente almacenados en la instancia se vuelven inaccesibles, incluidos los modelos, como parámetros de configuración del motor de búsqueda, los resultados de pruebas retroactivas y los resultados de predicción. Usuarios con cualquier El rol de visualizador de IA contra el lavado de dinero aún puede ver campos como el nombre de la instancia u otros campos de recursos que muestra recuperar recursos de IA contra lavado de dinero.
Cualquier operación que use o exporte datos de clientes, como la exportación
Los metadatos backtestResults
fallarán.
Usuarios con el rol de administrador de IA contra lavado de dinero o propietario puede borrar la instancia.
Políticas de la organización de CMEK
La IA contra lavado de dinero no es compatible
Políticas de la organización de CMEK Sin embargo,
La IA contra el lavado de dinero siempre requiere el uso de CMEK, sin importar la
Política de la organización constraints/gcp.restrictNonCmekServices
.
Interacción con Controles del servicio de VPC
Si configuraste la IA de AML dentro de un perímetro de VPC-SC, la cuenta de servicio aún debe poder acceder a la clave de CMK. Si la clave no está dentro del mismo perímetro de VPC-SC, hay varias formas de lograrlo, como las siguientes:
- Usa una regla de salida para incluir el recurso en la lista de entidades permitidas
- Usa el intercambio de tráfico del perímetro de VPC
Próximos pasos
- Crea una instancia
- Más información sobre CMEK