En esta página, se describe cómo encriptar datos almacenados en instancias de IA contra el 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 el lavado de dinero se encriptan con una clave CMEK cuando se almacenan en reposo. Administras la clave en Cloud Key Management Service y controlas el acceso a la clave con Identity and Access Management. Si inhabilitas la clave CMEK de forma temporal o la destruyes de manera permanente, no se podrá acceder a los datos encriptados con esa clave.
Las CMEK te permiten controlar más aspectos del ciclo de vida y la administración de tus claves, pero también generan costos adicionales por el servicio de Cloud KMS.
Cloud KMS puede ejecutarse en el mismo proyecto de Google Cloud que la IA contra el lavado de dinero o en un proyecto separado en el que administras claves de forma centralizada para varios proyectos.
Debes asignar una clave CMEK cuando creas una instancia. Todas las instancias se deben configurar mediante CMEK y no se pueden cambiar para usar la encriptación predeterminada de Google.
Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud KMS.
Datos de clientes
Todos los datos del cliente que controla la IA contra el lavado de dinero se encriptan en reposo con la clave CMEK especificada en el recurso superior correspondiente de la instancia. Esto incluye todos los datos del cliente asociados con los recursos de IA contra el lavado de dinero, como conjuntos de datos, Todo el almacenamiento temporal y persistente de los datos del cliente, incluidas las copias de entradas y salidas, las funciones de AA generadas, los registros, los hiperparámetros del modelo, los pesos del modelo y los resultados de las predicciones, se encriptan con una clave CMEK de la instancia correspondiente.
La IA contra el lavado de dinero no administra la encriptación de los datos de entrada o salida en tu proyecto de Google Cloud. Si deseas que se encripten estos datos, debes configurar una clave CMEK independiente en tu proyecto de Google Cloud. La clave de KMS especificada en una instancia se usa para los recursos de IA contra el lavado de dinero y sus datos.
Crea una clave y otorga permisos
En las siguientes instrucciones, se explica cómo crear una clave para una instancia y otorgar permisos con el objetivo de encriptar y desencriptar datos de la instancia con la clave. Puedes usar una clave creada directamente en Cloud KMS o una clave administrada de forma externa que pongas 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 método
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 ID del proyecto de Google Cloud para el proyecto que contiene el llavero de claves.LOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles:us-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 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": CREATE_TIME }
gcloud
Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
LOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles:us-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 el llavero de claves.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_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
: Es el ID del proyecto de Google Cloud para el proyecto que contiene el llavero de claves.LOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles:us-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 de claves.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": CREATE_TIME, "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": GENERATE_TIME }, "purpose": "ENCRYPT_DECRYPT", "createTime": CREATE_TIME, "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
LOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles:us-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 de claves.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 \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_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, haz los siguientes reemplazos:
PROJECT_ID
: Es el ID del proyecto de Google Cloud para el proyecto en el que se ejecuta la IA contra el 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 encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) a la cuenta de servicio de IA contra el lavado de dinero. Otorga este permiso en la clave que creaste.Antes de usar cualquiera de los datos de comando a continuación, haz los siguientes reemplazos:
PROJECT_ID
: Es el ID del proyecto de Google Cloud para el proyecto en el que se ejecuta la IA contra el lavado de dinero.KEY_ID
: Es el identificador de la clave definido por el usuario.LOCATION
: Es la ubicación del llavero de claves. Usa una de las regiones compatibles:us-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 el llavero de claves.PROJECT_NUMBER
: Es el número de proyecto de Google Cloud en el que se ejecuta la IA contra el 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 especificar la clave que se usará para la encriptación.
Quita el acceso
Existen varias formas de quitar el acceso a una instancia encriptada con CMEK:
- Revoca la función de encriptador o desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de IA contra el lavado de dinero mediante la consola de Google Cloud o la CLI de gcloud.
- Inhabilita de forma temporal la clave CMEK.
- Destruir de forma permanente la clave CMEK
Te recomendamos que revoques los permisos de la cuenta de servicio de IA contra el lavado de dinero antes de inhabilitar o destruir una clave. Los cambios en los permisos se propagan en segundos, por lo que puedes observar los impactos de inhabilitar o destruir una clave.
Cuando inhabilitas o destruyes la clave de encriptación para una instancia, pierdes la capacidad de ver o recuperar datos de la instancia. Todos los datos almacenados en la instancia se vuelven inaccesibles, incluidos los recursos de la API, como los conjuntos de datos, los modelos, los parámetros de configuración del motor, los resultados de la prueba interna y los resultados de la predicción. Los usuarios con la función de visualizador de IA contra el lavado de dinero aún pueden ver los metadatos de la instancia, como su nombre.
Los usuarios con el rol de administrador de IA contra el lavado de dinero o de propietario pueden borrar la instancia.
Políticas de la organización de CMEK
La IA contra el lavado de dinero no es compatible con las 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
.
Próximos pasos
- Crea una instancia
- Más información sobre CMEK
- Obtén más información sobre la encriptación predeterminada de Google