Encripta datos con claves de encriptación administradas por el cliente (CMEK)

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 tu función, 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 diferentes niveles de protección, como:

  • 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 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 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 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 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.

  1. En el proyecto de Google Cloud en el que deseas administrar tus claves, haz lo siguiente:

    1. Habilita la API de Cloud KMS.

    2. Crea un llavero de claves 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 claves
      • LOCATION: Es la ubicación del llavero de claves. usa uno de los regiones admitidas
        Mostrar ubicaciones
        • 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 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 Content

      Deberí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 claves
      • LOCATION: Es la ubicación del llavero de claves. usa uno de los regiones admitidas
        Mostrar ubicaciones
        • 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 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
      
      Deberías recibir una respuesta vacía:
      $
      .

    3. 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 claves
      • LOCATION: Es la ubicación del llavero de claves. usa uno de los regiones admitidas
        Mostrar ubicaciones
        • 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 la 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 Content

      Deberí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 claves
      • LOCATION: Es la ubicación del llavero de claves. usa uno de los regiones admitidas
        Mostrar ubicaciones
        • 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 la 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 \
        --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"
      
      Deberías recibir una respuesta vacía:
      $
      .

  2. Si no creaste una instancia de IA contra lavado de dinero en el proyecto de IA contra lavado de dinero, el servicio de IA La cuenta 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

  3. 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: Es el proyecto de Google Cloud. ID del proyecto en el que se ejecuta la IA contra lavado de dinero
    • 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 admitidas
      Mostrar ubicaciones
      • 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 la llavero de claves
    • PROJECT_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:

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 son se propagan en segundos, de modo que puedes observar los impactos de inhabilitar 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. Todo 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 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