Encriptar datos con claves de encriptación administradas por el cliente

De forma predeterminada, Dataproc Metastore encripta el contenido del cliente 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 de varias regiones (vista previa).

  • La base de datos de Cloud Monitoring no admite la encriptación con CMEK. En cambio,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 de Cloud External Key Manager, 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 fallará. 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 vuelva a estar disponible. Para obtener más consideraciones sobre el uso de claves externas, consulta Consideraciones sobre 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 CMEKs para encriptar datos del usuario en tránsito, como las consultas del usuario y las respuestas obtenidas.

Configura la 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, crear una clave que se almacene dentro del llavero.

Cómo crear un llavero de claves

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 el nombre del 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 dentro de tu llavero 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

Reemplaza lo siguiente:

  • KEY_NAME: el nombre de la clave.
  • KEY_RING: Es el nombre del llavero de claves 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 para Dataproc Metastore:

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

    Si vas a configurar la CMEK para un servicio de Dataproc Metastore multirregional, debes otorgar a cada clave los permisos necesarios de Cloud KMS 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

  1. 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 de CMEK

Sigue estos pasos para configurar la encriptación con CMEK para un servicio de Dataproc Metastore de una sola región.

Console

  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 tu servicio según sea necesario.

  4. En Encriptación, haz clic en Clave de encriptación administrada por el cliente (CMEK).

  5. Selecciona la clave administrada por el cliente.

  6. Haga clic en Enviar.

Verifica la configuración de encriptación 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, haz clic en el nombre del servicio que quieres ver.

    Se abrirá la página Detalles del servicio.

  3. En la pestaña Configuración, verifica que los detalles muestren que la CMEK está habilitada.

gcloud

  1. Para crear un servicio de una sola región con encriptación con CMEK, ejecuta el comandoGoogle 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 de CMEK

En el caso de 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.

Para crear un servicio multirregional con una clave de CMEK

Sigue estos pasos para configurar la encriptación con CMEK para un servicio de Dataproc Metastore multirregional.

Console

  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. Selecciona Dataproc Metastore 2.

  4. En la sección Precios y capacidad, selecciona Enterprise Plus - Dual region.

  5. En Protocolo de extremo, selecciona el extremo adecuado.

  6. En Encriptación, selecciona Clave de Cloud KMS.

  7. Selecciona las claves que se usarán para cada región, por ejemplo, la región de testigo de Spanner y el continente.

  8. Configura las opciones de servicio restantes según sea necesario.

  9. Haz clic en Enviar.

Verifica la configuración de encriptación del servicio:

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

    Ir a Dataproc Metastore

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

    Se abrirá la página Detalles del servicio.

  3. En la pestaña Configuración, verifica que CMEK esté habilitado.

gcloud

  1. Para crear un servicio multirregional con encriptación con 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: Es el ID del recurso de clave para cada una de las claves requeridas, incluida una clave en el continente y una clave en la región de Spanner Witness. 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 importación, debes establecer 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?