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).
Antes de comenzar
Consideraciones
Ten en cuenta los siguientes puntos cuando uses Dataproc Metastore con CMEK.
CMEK es compatible con los servicios de Dataproc Metastore de una sola región y multirregionales (versión preliminar).
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 servicio de tus servicios de 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.
Cuando usas una clave del Administrador de claves externas de Cloud, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa. Si la clave deja de estar 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 deja de estar disponible hasta que la clave vuelva a estar disponible. Para obtener más consideraciones sobre el uso de claves externas, consulta Consideraciones de Cloud EKM.
Limitaciones
Ten en cuenta las siguientes limitaciones cuando uses Dataproc Metastore con CMEK.
No puedes habilitar las CMEK en un servicio existente.
No puedes rotar las CMEK que usa un servicio habilitado para CMEK.
No puedes usar CMEK para encriptar datos del usuario en tránsito, como las consultas del usuario y las respuestas obtenidas.
Configura CMEK para Dataproc Metastore
Si aún no tienes una clave de Cloud KMS, puedes crear una para tu servicio de Dataproc Metastore. De lo contrario, puedes omitir este paso y usar una clave existente.
Opcional: Crea una clave de Cloud KMS nueva
Para crear una clave de Cloud KMS, primero debes crear un llavero de claves y, luego, una clave que se almacene en él.
Para crear un llavero de claves, sigue estos pasos:
Para crear un llavero de claves, ejecuta el siguiente comando gcloud kms keyrings create
.
gcloud kms keyrings create KEY_RING \ --project=PROJECT_ID \ --location=LOCATION
Reemplaza lo siguiente:
KEY_RING
: Es un nombre para tu llavero de claves.PROJECT_ID
: Es el ID del Google Cloud proyecto en el que deseas crear el llavero de claves.LOCATION
: Es la región en la que deseas crear el llavero de claves.
Para crear una clave, sigue estos pasos:
Para crear una clave que se almacene en tu llavero, ejecuta el siguiente comando gcloud kms keys create
.
gcloud kms keys create KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEY_RING \ --purpose=encryption
Reemplaza lo siguiente:
KEY_NAME
: el nombre de la clave.KEY_RING
: Es el nombre del llavero que creaste en el paso anterior.
Otorga permisos de clave de Cloud KMS
Usa los siguientes comandos para otorgar permisos de clave de Cloud KMS a Dataproc Metastore:
Otorga permisos a la cuenta de servicio del agente de servicio de Dataproc Metastore:
Si vas a configurar CMEK para un servicio de Dataproc Metastore multirregional, debes otorgar 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
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 una sola región con una clave CMEK
Sigue los pasos que se describen a continuación para configurar la encriptación de CMEK para un servicio de Dataproc Metastore de una sola región.
Console
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 tu servicio según sea necesario.
En Encriptación, haz clic en 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 Google Cloud consola, ve a 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.
En la pestaña Configuración, verifica que los detalles muestren que CMEK está habilitado.
gcloud
Para crear un servicio de una sola región con encriptación CMEK, ejecuta el comando Google Cloud
gcloud metastore services create
:gcloud metastore services create SERVICE \ --encryption-kms-key=KMS_KEY
Reemplaza lo siguiente:
SERVICE
: Nombre del servicio nuevo.KMS_KEY
: Es el ID del recurso de clave.
Crea un servicio multirregional con una clave CMEK
Para los servicios de CMEK de Dataproc Metastore multirregionales, se deben proporcionar varias claves de encriptación. Esto incluye una clave para cada región constituyente del servicio multirregional de Dataproc Metastore: una clave para la región testigo de Spanner y una clave para el continente.
Para obtener información sobre tu servicio multirregional y las regiones con las que está configurado, puedes ejecutar el siguiente comando.
gcloud metastore locations describe LOCATION
- Reemplaza LOCATION por la región múltiple en la que creaste tu servicio de Dataproc Metastore.
Crea un servicio multirregión con una clave CMEK
Sigue los pasos que se describen a continuación para configurar la encriptación de CMEK para un servicio de Dataproc Metastore multirregional.
Console
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: Birregional.
En Protocolo de extremo, selecciona el extremo adecuado.
En Encriptación, selecciona Clave de Cloud KMS.
Selecciona las claves que se usarán para 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 de encriptación del servicio:
En la Google Cloud consola, ve a 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.
En la pestaña Configuración, verifica que CMEK esté habilitado.
gcloud
- Para crear un servicio multirregional con encriptación 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
Reemplaza lo siguiente:
SERVICE
: Es el nombre de tu nuevo servicio de Dataproc Metastore.LOCATION
: Es la Google Cloud región múltiple en la que deseas crear tu servicio de Dataproc Metastore. También puedes establecer una ubicación predeterminada.INSTANCE_SIZE
: Es el tamaño de la instancia de tu servicio de Dataproc Metastore multirregional. Por ejemplo, pequeño, mediano o grande.KMS_KEY1, KMS_KEY2, KMS_KEY_WITNESS, KMS_KEY_CONTINENT
: El ID de recurso de clave para cada una de las claves requeridas, incluida una clave en el continente y una clave en la región de testigo de Spanner. Los nombres de las claves se enumeran en el siguiente formato en tu proyecto:projects/KEY_PROJECT/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
.
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.