Usa claves de encriptación administradas por el cliente (CMEK) para las migraciones continuas

En esta página, se describe cómo funcionan las claves de encriptación administradas por el cliente (CMEK) con los trabajos de migración de Database Migration Service.

De forma predeterminada, Database Migration Service (para Oracle a Cloud SQL para PostgreSQL) encripta el contenido del cliente en reposo. Database Migration Service (para migrar de Oracle a Cloud SQL para PostgreSQL) 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 claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, como el servicio de migración de bases de datos (para Oracle a Cloud SQL para PostgreSQL). 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 hacer un seguimiento del uso de las claves, 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 Database Migration Service (para migrar de Oracle a Cloud SQL para PostgreSQL) 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).

Regiones en las que Database Migration Service admite CMEK

Las CMEK están disponibles en todas las ubicaciones de Database Migration Service.

CMEK con Autokey de Cloud KMS

Puedes crear CMEK de forma manual para proteger tus recursos de Database Migration Service (para Oracle a Cloud SQL para PostgreSQL) o usar la clave automática de Cloud KMS. Con Autokey, los llaveros y las claves se generan a pedido como parte de la creación o actualización de recursos en Database Migration Service (para migrar de Oracle a Cloud SQL para PostgreSQL). Los agentes de servicio que usan las claves para las operaciones de encriptación y desencriptación se crean si aún no existen y se les otorgan los roles de Identity and Access Management (IAM) necesarios. Para obtener más información, consulta Descripción general de las claves automáticas.

Comprende las cuentas de servicio

Cuando los trabajos de migración de Database Migration Service tienen CMEK habilitadas, debes usar una cuenta de servicio para solicitar acceso a la clave desde Cloud Key Management Service.

Para usar una CMEK en un proyecto, debes tener una cuenta de servicio y otorgarle acceso a la clave. La cuenta de servicio debe existir dentro del proyecto. La cuenta de servicio es visible en todas las regiones.

Comprende las claves

En Cloud Key Management Service, debes crear un llavero de claves con una clave criptográfica que esté configurada con una ubicación. Cuando creas un trabajo de migración nuevo en Database Migration Service, seleccionas esta clave para encriptarlo.

Cuando crees trabajos de migración nuevos que usen CMEK, debes conocer el ID y la región de la clave. Debes colocar las bases de datos de destino en la misma región que la CMEK asociada con el trabajo de migración. Puedes crear un solo proyecto para las claves y las bases de datos de destino, o proyectos diferentes para cada una.

CMEK usa el siguiente formato:

projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]

¿Cómo se hace que los datos encriptados con CMEK sean inaccesibles de forma permanente?

Es posible que surjan situaciones en las que quieras destruir de forma permanente los datos encriptados con CMEK. Para ello, debes destruir la versión de la CMEK. No puedes destruir el llavero de claves o la clave, pero puedes destruir las versiones de clave.

Restricciones

Se aplican las siguientes restricciones cuando se usan CMEK:

  • No puedes actualizar la CMEK en un trabajo de migración en ejecución.

  • Aunque puedes usar CMEK para encriptar datos de la base de datos de origen, no puedes usar estas claves para encriptar ningún metadato de trabajo de migración, como el ID del trabajo de migración, la dirección IP de la base de datos de origen, etcétera.

Usa CMEK

En las siguientes secciones, se describe cómo configurar CMEK para

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Instala y, luego, inicializa la CLI de Google Cloud.
  7. Asegúrate de tener asignada el rol de administrador de Database Migration a tu cuenta de usuario.

    Ir a la página IAM

  8. Enable the Cloud Key Management Service API.

    Enable the API

  9. Habilita la API de Database Migration Service.

    Habilitar la API

Flujo de trabajo para crear trabajos de migración en Database Migration Service con CMEK

  1. Solo para usuarios de la API y gcloud CLI: Asegúrate de tener una cuenta de servicio para cada proyecto que requiera CMEK. Para obtener más información, consulta Crea una cuenta de servicio.

  2. Crea un llavero de claves y una clave, y establece la ubicación de cada clave. La ubicación es la región Google Cloud .

  3. Otorga acceso a la clave a la cuenta de servicio.

  4. Copia o escribe el ID (KMS_KEY_ID) y la ubicación de la clave, y el ID (KMS_KEYRING_ID) del llavero de claves. Necesitarás esta información cuando le otorgues a la cuenta de servicio acceso a la clave.

  5. Ve a un proyecto, crea un trabajo de migración en Database Migration Service y usa tu CMEK en la sección Opciones de encriptación avanzadas.

Tu trabajo de migración en Database Migration Service ahora está habilitado con CMEK.

Crea una cuenta de servicio

Debes crear una cuenta de servicio para cada proyecto que requiera CMEK. Para permitir que un usuario administre cuentas de servicio, otorga una de las siguientes funciones:

  • Usuario de cuenta de servicio (roles/iam.serviceAccountUser): Incluye permisos para enumerar cuentas de servicio, obtener detalles sobre ellas, o bien actuar en nombre de una.
  • Administrador de cuenta de servicio (roles/iam.serviceAccountAdmin): Incluye permisos para enumerar cuentas de servicio y obtener detalles sobre ellas. También incluye permisos de creación, actualización y eliminación de cuentas de servicio, y permisos para ver o cambiar la política de Database Migration Service (para Oracle a Cloud SQL para PostgreSQL) en una cuenta de servicio.

Solo puedes usar los comandos gcloud CLI para crear el tipo de cuenta de servicio que necesitas para las CMEK.

Para crear una cuenta de servicio con gcloud CLI, ejecuta el siguiente comando:

gcloud beta services identity create \
--service=datamigration.googleapis.com\
--project=PROJECT_ID

En el comando anterior, se muestra un nombre de cuenta de servicio. Debes usar este nombre de cuenta de servicio durante el procedimiento que se muestra en la página sobre Cómo otorgar acceso a la clave a la cuenta de servicio.

Crear una clave

Puedes crear la clave en el mismo proyecto de Google Cloud que la tarea de migración en el servicio de migración de bases de datos o en otro proyecto de usuario. La ubicación del llavero de claves de Cloud KMS debe coincidir con la región de la base de datos de destino asociada con el trabajo de migración. No se admite una clave multirregional o de región global. Si las regiones no coinciden, no podrás crear el trabajo de migración.

Para crear una clave de Cloud KMS:

Console

  1. En la consola de Google Cloud, ve a la página Claves criptográficas.
  2. Haz clic en Crear llavero de claves.
  3. Agrega el Nombre del llavero de claves. Anota este nombre porque lo necesitarás al momento de otorgar el acceso a la clave a la cuenta de servicio.
  4. Agrega la Ubicación del llavero de claves.
  5. Haz clic en Crear. Se abre la página Crear clave.
  6. Agrega el Nombre de la clave.
  7. Selecciona un Propósito (simétrico o asimétrico).
  8. Selecciona un Período de rotación y una Fecha de inicio.
  9. Haz clic en Crear.
  10. En la tabla Claves, en la última columna, haz clic en los tres puntos y selecciona Copiar ID del recurso o escribe el ID. Este es el KMS_KEY_ID. Necesitarás el KMS_KEY_ID cuando le otorgues a la cuenta de servicio acceso a la clave.

gcloud CLI

  1. Crea un llavero de claves nuevo.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    Escribe este nombre, ya que lo necesitarás al momento de otorgar acceso a la clave a la cuenta de servicio.
  2. Crea una llave en el llavero de claves.
    gcloud kms keys create KMS_KEY_ID \
    --location=REGION \
    --keyring=KMS_KEYRING_ID \
    --purpose=encryption
      
    Escribe este nombre, ya que lo necesitarás al momento de otorgar acceso a la clave a la cuenta de servicio.

Otorga a tu cuenta de servicio acceso a la clave

Solo debes realizar este procedimiento si usas gcloud CLI o la API.

Para otorgar acceso a la cuenta de servicio, usa el siguiente código:

gcloud kms keys add-iam-policy-binding KMS_KEY_ID \
--location=REGION \
--keyring=KMS_KEYRING_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter

Crea un trabajo de migración en Database Migration Service con CMEK

Como parte de la creación de un trabajo de migración en Database Migration Service, puedes usar tu CMEK para administrar la encriptación de tus datos.

Inhabilita y vuelve a habilitar versiones de claves

Consulta los siguientes temas: