De forma predeterminada, Dataproc Metastore encripta el contenido del cliente almacenado en reposo. Dataproc Metastore controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina Encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluido Dataproc Metastore. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Dataproc Metastore es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Consideraciones
No puedes habilitar las claves de encriptación administradas por el cliente en un servicio existente.
No puedes rotar la clave que usa un servicio habilitado para CMEK.
No puedes usar claves de encriptación administradas por el cliente para encriptar datos del usuario en tránsito, como consultas de usuario y las respuestas obtenidas.
Un servicio habilitado para CMEK no admite la sincronización de Data Catalog. No se puede actualizar un servicio habilitado para CMEK para habilitar la sincronización de Data Catalog. Tampoco puedes crear un servicio nuevo con ambas funciones habilitadas.
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa. Si la clave no está disponible durante el período de creación del servicio de Dataproc Metastore, la creación del servicio falla. Después de crear un servicio de Dataproc Metastore, si la clave deja de estar disponible, el servicio también dejará de estar disponible hasta que la clave esté disponible. Para obtener más consideraciones sobre el uso de claves externas, consulta Consideraciones de Cloud EKM.
La base de datos de Cloud Monitoring no admite la encriptación de CMEK. En su lugar, Google Cloud usa claves de encriptación de Google para proteger los nombres y las configuraciones de los servicios de tu Dataproc Metastore.
Si deseas que tu servicio de Dataproc Metastore se ejecute dentro de un perímetro de Controles del servicio de VPC, debes agregar la API de Cloud Key Management Service (Cloud KMS) al perímetro.
Configura la compatibilidad con CMEK para Dataproc Metastore
Para configurar la compatibilidad con CMEK para Dataproc Metastore, primero debes otorgar permiso de clave de Cloud KMS a las cuentas de servicio de Dataproc Metastore y Cloud Storage. Luego, puedes crear un servicio de Dataproc Metastore que use una clave CMEK.
Otorga permisos de clave de Cloud KMS
Usa los siguientes comandos para otorgar permisos de clave de Cloud KMS a Dataproc Metastore:
gcloud
Crea una clave CMEK en Cloud KMS (si no hay una disponible). El siguiente comando es un ejemplo de cómo crear una clave de software:
gcloud config set project PROJECT_ID gcloud kms keyrings create KEY_RING \ --project KEY_PROJECT \ --location=LOCATION gcloud kms keys create KEY_NAME \ --project KEY_PROJECT \ --location=LOCATION \ --keyring=KEY_RING \ --purpose=encryption
Del mismo modo, puedes crear una clave de HSM o crear una clave de EKM.
Otorga 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
Otorga 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
Crea un servicio de Dataproc Metastore con una clave de CMEK
Sigue los pasos que se describen a continuación para configurar la encriptación de CMEK durante la creación del servicio:
Console
En la consola de Google Cloud, abre la página Dataproc Metastore:
En la parte superior de la página Dataproc Metastore, haz clic en Crear.
Se abrirá la página Crear servicio.
Configura tu servicio según sea necesario.
En Encriptación, haz clic en Usar una clave de encriptación administrada por el cliente (CMEK).
Selecciona la clave administrada por el cliente.
Haga clic en Enviar.
Verifica la configuración de encriptación del servicio:
En la consola de Google Cloud, abre la página Dataproc Metastore:
En la página Dataproc Metastore, haz clic en el nombre del servicio que quieres ver.
Se abrirá la página Detalles del servicio de ese servicio.
En la pestaña Configuración, verifica que los detalles muestren que CMEK está habilitado.
gcloud
Ejecuta el comando
gcloud metastore services create
para crear un servicio con encriptación de CMEK:gcloud metastore services create SERVICE \ --encryption-kms-key=KMS_KEY
Reemplaza lo siguiente:
SERVICE
: Nombre del servicio nuevo.KMS_KEY
: Se refiere al ID del recurso de clave.
Verifica que la creación se haya realizado correctamente.
Importa y exporta datos desde y hacia un servicio con CMEK habilitadas
Si quieres que tus datos permanezcan encriptados con una clave administrada por el cliente durante una importar, debes configurar la CMEK en el bucket de Cloud Storage antes de importar datos desde él.
Puedes importar desde un bucket de Cloud Storage que no esté protegido por CMEK. Después de la importación, los datos almacenados en Dataproc Metastore se protegen según la configuración de CMEK del servicio de destino.
Cuando se exporta, el volcado de la base de datos exportado está protegido según la configuración de CMEK del bucket de almacenamiento de destino.
¿Qué sigue?
- Claves de encriptación administradas por el cliente
- Acceso al servicio
- Importar metadatos a un servicio