Encriptar datos con claves de encriptado gestionadas por el cliente

De forma predeterminada, Dataproc Metastore cifra el contenido del cliente en reposo. Dataproc Metastore se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.

Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Dataproc Metastore. Si usas claves de Cloud KMS, tendrás control sobre el nivel de protección, la ubicación, el calendario de rotación, los permisos de uso y acceso, y los límites criptográficos. Además, Cloud KMS te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y gestione las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.

Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceso a tus recursos de Dataproc Metastore será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta el artículo Claves de encriptado gestionadas por el cliente (CMEK).

Antes de empezar

Cuestiones importantes

Ten en cuenta los siguientes puntos al usar Dataproc Metastore con CMEK.

  • La base de datos de Cloud Monitoring no admite el cifrado con CMEK. En su lugar,Google Cloud usa claves de cifrado de Google para proteger los nombres y las configuraciones de servicio de tus servicios de Dataproc Metastore.

  • Si quieres que tu servicio Dataproc Metastore se ejecute dentro de un perímetro de Controles de Servicio de VPC, debes añadir la API Cloud Key Management Service (Cloud KMS) al perímetro.

  • Si usas una clave de Cloud External Key Manager, Google no tiene control sobre la disponibilidad de tu clave gestionada de forma externa. Si la clave deja de estar disponible durante el periodo de creación del servicio Dataproc Metastore, la creación del servicio fallará. Una vez que se ha creado un servicio de Dataproc Metastore, si la clave deja de estar disponible, el servicio también dejará de estarlo hasta que la clave vuelva a estar disponible. Para obtener más información sobre las consideraciones que debes tener en cuenta al usar claves externas, consulta Consideraciones sobre Cloud EKM.

Limitaciones

Ten en cuenta las siguientes limitaciones al usar Dataproc Metastore con CMEK.

  • No puedes habilitar CMEK en un servicio que ya esté creado.

  • No puedes rotar las CMEKs que utilice un servicio habilitado para CMEK.

  • No puedes usar CMEKs para cifrar los datos de usuario en tránsito, como las consultas y las respuestas de los usuarios.

Configurar CMEK para Dataproc Metastore

Si aún no tienes una clave de Cloud KMS, puedes crear una para tu servicio Dataproc Metastore. De lo contrario, puedes saltarte este paso y usar una clave que ya tengas.

Opcional: Crea una clave de Cloud KMS

Para crear una clave de Cloud KMS, primero debes crear un conjunto de claves y, a continuación, crear una clave que se almacene en el conjunto.

Para crear un conjunto de claves, sigue estos pasos:

Para crear un conjunto de claves, ejecuta el siguiente gcloud kms keyrings create comando.

gcloud kms keyrings create KEY_RING \
  --project=PROJECT_ID \
  --location=LOCATION

Haz los cambios siguientes:

  • KEY_RING: el nombre del conjunto de claves.
  • PROJECT_ID: el ID del Google Cloud proyecto en el que quieres crear el conjunto de claves.
  • LOCATION: la región en la que quieres crear el conjunto de claves.

Para crear una clave, sigue estos pasos:

Para crear una clave que se almacene en tu conjunto de claves, ejecuta el siguiente comando: gcloud kms keys create

gcloud kms keys create KEY_NAME \
  --project=PROJECT_ID \
  --location=LOCATION \
  --keyring=KEY_RING \
  --purpose=encryption

Haz los cambios siguientes:

  • KEY_NAME: el nombre de la clave.
  • KEY_RING: el nombre del conjunto de claves que has creado en el paso anterior.

Conceder permisos de clave de Cloud KMS

Usa los siguientes comandos para conceder permisos de claves de Cloud KMS a Dataproc Metastore:

  1. Concede permisos a la cuenta de servicio del agente de servicio de Dataproc Metastore:

      gcloud kms keys add-iam-policy-binding KEY_NAME \
        --location LOCATION \
        --keyring KEY_RING \
        --member=serviceAccount:$(gcloud beta services identity create \
        --service=metastore.googleapis.com 2>&1 | awk '{print $4}') \
        --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

  1. Concede permisos a la cuenta de servicio de Cloud Storage:

      gcloud storage service-agent --authorize-cmek projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Crear un servicio de una sola región con una clave CMEK

Sigue estos pasos para configurar el cifrado con CMEK en un servicio Dataproc Metastore de una sola región.

Consola

  1. En la Google Cloud consola, ve a la página Dataproc Metastore:

    Ir a Dataproc Metastore

  2. En la parte superior de la página Dataproc Metastore, haz clic en Crear.

    Se abrirá la página Crear servicio.

  3. Configura el servicio según sea necesario.

  4. En Cifrado, haz clic en Clave de cifrado gestionada por el cliente (CMEK).

  5. Selecciona la clave gestionada por el cliente.

  6. Haz clic en Enviar.

Verifica la configuración del cifrado del servicio:

  1. En la Google Cloud consola, ve a la página Dataproc Metastore:

    Ir a la Google Cloud consola

  2. En la página Dataproc Metastore, haga clic en el nombre del servicio que quiera ver.

    Se abrirá la página Detalles del servicio.

  3. En la pestaña Configuración, comprueba que los detalles indiquen que CMEK está habilitado.

gcloud

  1. Para crear un servicio de una sola región con cifrado CMEK, ejecuta el comando Google Cloud gcloud metastore services create:

    gcloud metastore services create SERVICE \
       --encryption-kms-key=KMS_KEY
    

    Haz los cambios siguientes:

    • SERVICE: el nombre del nuevo servicio.
    • KMS_KEY: el ID de recurso de la clave.

Importar y exportar datos desde y hacia un servicio habilitado para CMEK

Si quieres que tus datos sigan encriptados con una clave gestionada por el cliente durante una importación, debes definir una CMEK en el segmento de Cloud Storage antes de importar datos desde él.

Puedes importar datos desde un segmento de Cloud Storage que no esté protegido con CMEK. Después de la importación, los datos almacenados en Dataproc Metastore se protegen según los ajustes de CMEK del servicio de destino.

Durante la exportación, el volcado de la base de datos exportada se protege de acuerdo con la configuración de la CMEK del segmento de almacenamiento de destino.

Siguientes pasos