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 contra lavado de dinero se encriptan en reposo con una clave 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 temporalmente o destruir permanentemente la clave CMEK, los datos encriptados con esa clave a las que se accede.
La IA contra el lavado de dinero solo admite CMEK usando Cloud KMS No es compatible con Google Encriptación predeterminada.
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 IA contra lavado de dinero o en un proyecto independiente en el que administres las claves de forma centralizada para varios proyectos.
La configuración de encriptación se establece cuando creas una instancia. Una vez que se crea la instancia, no puedes asignar una clave de Cloud KMS diferente. Aún puedes rotar la clave.
Para obtener más información sobre CMEK en general, consulta el 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. Es posible que no todas de seguridad 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 de clientes asociados con la IA contra lavado de dinero recursos, como conjuntos de datos, configuraciones de motores, modelos y mucho más. Todas las funciones temporales y almacenamiento persistente de los datos del cliente, incluidas copias de las entradas y salidas, atributos de AA generados, los hiperparámetros de modelos, los pesos del modelo y la predicción se encriptan con la clave CMEK de la instancia correspondiente.
Consulta las condiciones específicas del servicio para ver la definición de datos del cliente, que no pueden incluir identificadores de recursos, atributos ni otros las etiquetas de datos.
Encripta datos de entrada y salida
La configuración de encriptación de IA contra el lavado de dinero en una instancia solo se usa de los recursos de IA contra el lavado de dinero 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 quieres encriptar estos datos con CMEK, debes configurar una clave de Cloud KMS para que coincida con el nivel de protección de claves elegido y configurado en la conjunto de datos de BigQuery. También puedes volver a usar la misma clave que usa la IA de la AML.
Obtén más información sobre la encriptación en BigQuery.
Rotación de claves
Se recomienda usar el servicio de rotación de claves de manera periódica y automática como medida de seguridad. 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 contra lavado de dinero se puede almacenar internamente como varios unidades. Si, durante la vida útil de un recurso de IA contra el lavado de dinero, la clave se rotó la versión, no todas las unidades pueden encriptarse con la misma versión de clave.
Si rotas una clave, no hay forma de que la IA de la AML fuerce una reencriptación ni determine si es seguro borrar versiones de claves anteriores.
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 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
projects.locations.keyRings.create
. La ubicación del llavero de claves de Cloud KMS debe coincidir con la 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 uno de los regiones admitidasMostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: Es un identificador definido por el usuario para la 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 admitidasMostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
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
projects.locations.keyRings.cryptoKeys
.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 uno de los regiones admitidasMostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: Es el identificador definido por el usuario para el llavero.KEY_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
: 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.Mostrar ubicacionesus-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
KEY_RING_ID
: Es el identificador definido por el usuario para el llavero.KEY_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
: Es el proyecto de Google Cloud. ID del proyecto en el que se ejecuta la IA contra lavado de dinero
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
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 desde 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 destruyes la clave de encriptación de una instancia, pierdes la pueden usar o recuperar 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 de la AML siempre requiere el uso de CMEK, independientemente de la política de la organización constraints/gcp.restrictNonCmekServices
.
Interacción con VPC-SC
Si configuraste la IA contra lavado de dinero dentro de un perímetro de VPC-SC, el La cuenta de servicio aún debe poder acceder a la clave CMEK. Si la clave no es dentro del mismo perímetro de VPC-SC, hay varias formas de lograrlo, como:
- 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