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 CMEK, como Dataproc Metastore. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y 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 acceder 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 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 CMEK se admite en los servicios de Dataproc Metastore de una y varias regiones (vista previa).
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 usa 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 comando gcloud kms keyrings create
.
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:
Concede permisos a la cuenta de servicio del agente de servicio de Dataproc Metastore:
Si vas a configurar CMEK para un servicio de Dataproc Metastore multirregión, debes conceder a cada clave los permisos de Cloud KMS necesarios para las cuentas de servicio de Dataproc Metastore y Cloud Storage.
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
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
En la Google Cloud consola, ve a 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 el servicio según sea necesario.
En Encriptado, haz clic en Clave de encriptado gestionada por el cliente (CMEK).
Selecciona la clave gestionada por el cliente.
Haz clic en Enviar.
Verifica la configuración del cifrado del servicio:
En la Google Cloud consola, ve a la página Dataproc Metastore:
En la página Dataproc Metastore, haga clic en el nombre del servicio que quiera ver.
Se abrirá la página Detalles del servicio.
En la pestaña Configuración, comprueba que los detalles indiquen que CMEK está habilitado.
gcloud
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.
Crear un servicio multirregional con una clave CMEK
En el caso de los servicios CMEK de Dataproc Metastore multirregionales, se deben proporcionar varias claves de cifrado. Esto incluye una clave por cada región que compone el servicio de Dataproc Metastore multirregional: una clave para la región de testigo de Spanner y otra para el continente.
Para obtener información sobre tu servicio multirregional y las regiones en las que está configurado, puedes ejecutar el siguiente comando.
gcloud metastore locations describe LOCATION
- Sustituye LOCATION por la multirregión en la que has creado tu servicio Dataproc Metastore.
Para crear un servicio multirregional con una clave CMEK
Sigue estos pasos para configurar el cifrado con CMEK en un servicio Dataproc Metastore multirregión.
Consola
En la Google Cloud consola, ve a 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.
Selecciona Dataproc Metastore 2.
En la sección Precios y capacidad, selecciona Enterprise Plus - Dual region (Enterprise Plus - Dos regiones).
En Protocolo de endpoint, selecciona el endpoint adecuado.
En Encriptado, selecciona Clave de Cloud KMS.
Selecciona las claves que quieras usar en cada región. Por ejemplo, la región de testigo de Spanner y el continente.
Configura las opciones de servicio restantes según sea necesario.
Haz clic en Enviar.
Verifica la configuración del cifrado del servicio:
En la Google Cloud consola, ve a la página Dataproc Metastore:
En la página Dataproc Metastore, haga clic en el nombre del servicio que quiera ver.
Se abrirá la página Detalles del servicio.
En la pestaña Configuración, comprueba que CMEK esté habilitado.
gcloud
- Para crear un servicio multirregional con cifrado CMEK, ejecuta el comando
gcloud beta metastore services create
:
gcloud beta metastore services create SERVICE \ --location=LOCATION \ --instance-size=INSTANCE_SIZE \ --encryption-kms-keys=KMS_KEY1,KMS_KEY2,KMS_KEY_WITNESS,KMS_KEY_CONTINENT
Haz los cambios siguientes:
SERVICE
: nombre del nuevo servicio de Dataproc Metastore.LOCATION
: la Google Cloud multirregión en la que quieres crear tu servicio de Dataproc Metastore. También puedes definir una ubicación predeterminada.INSTANCE_SIZE
: el tamaño de la instancia de tu servicio de Dataproc Metastore multirregional. Por ejemplo, pequeña, mediana o grande.KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT
: el ID de recurso de la clave de cada una de las claves obligatorias, incluida una clave del continente y otra de la región de testigo de Spanner. Los nombres de las claves se indican con el siguiente formato en tu proyecto:projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
.
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 la configuración de CMEK del servicio de destino.
Al exportar, el volcado de la base de datos exportada se protege de acuerdo con la configuración de CMEK del segmento de almacenamiento de destino.