Protege los datos con claves de encriptación

En esta página, se describe cómo crear, configurar y aplicar claves de encriptación administradas por el cliente (CMEK) para AlloyDB para PostgreSQL.

Para obtener más información sobre CMEK, consulta Acerca de CMEK.

Crea y autoriza una clave de CMEK para AlloyDB

  1. Crea una clave en Cloud Key Management Service (Cloud KMS). AlloyDB admite los siguientes tipos de claves:

    La clave debe estar en la misma ubicación que tu clúster de AlloyDB. Por ejemplo, un clúster de AlloyDB ubicado en us-west1 solo puede usar claves en us-west1.

    Si ya tienes una clave de Cloud KMS en la ubicación correcta, puedes omitir este paso.

  2. Otorga acceso a AlloyDB a la clave.

    1. Con Google Cloud CLI, crea y muestra el agente de servicio, o muéstralo si la cuenta ya existe:
        gcloud beta services identity create --service=alloydb.googleapis.com \
            --project=PROJECT

    El comando gcloud services identity crea o obtiene el agente de servicio que AlloyDB puede usar para acceder a la clave de Cloud KMS en tu nombre.

    El ID de la cuenta de servicio se parece a una dirección de correo electrónico:

        Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
    
    1. Otorga la función cloudkms.cryptoKeyEncrypterDecrypter a la cuenta de servicio:
        gcloud kms keys add-iam-policy-binding KEY \
            --location REGION \
            --keyring KEYRING \
            --project=PROJECT \
            --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \
            --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    Reemplaza lo siguiente:

    • KEY: Es el ID de Cloud KMS de la clave.
    • REGION: Es la región de la clave, por ejemplo, us-central1.
    • PROJECT: Es el ID del proyecto de la clave.
    • KEYRING: Es el ID del llavero de claves de Cloud KMS de la clave.

    Esta función otorga permiso a la cuenta de servicio para encriptar y desencriptar con la clave de Cloud KMS. Para obtener más información, consulta Permisos y funciones de Cloud KMS.

Crea un clúster encriptado con CMEK

Cuando creas un clúster nuevo, puedes elegir si encriptarlo con la encriptación predeterminada administrada por Google o usar una clave de CMEK. Para obtener más información, consulta Crea un clúster y su instancia principal.

Visualiza el método de encriptación y la clave de CMEK de un clúster

Console

La columna Encryption de la página Clusters muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o CMEK.

Ir a la página Clústeres

Para ver los detalles de la clave de un clúster con CMEK, haz clic en su nombre en la columna Resource name. El campo Encryption key de la página de detalles resultante contiene una descripción de la clave, incluido un vínculo a su propia página de detalles de Cloud KMS.

gcloud

Llama al comando gcloud alloydb clusters describe:

gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION

Reemplaza lo siguiente:

  • CLUSTER: Es el ID del clúster que se describirá.
  • PROJECT: Es el ID del proyecto del clúster.
  • REGION: Es la región del clúster, por ejemplo, us-central1.

El resultado incluye un campo encryptionInfo con un resumen de la encriptación del clúster.

Aplica CMEK a las copias de seguridad

Cuando creas una copia de seguridad nueva, puedes elegir si encriptarla con la encriptación predeterminada administrada por Google o una clave de CMEK. Para obtener más información, consulta Crea una copia de seguridad bajo demanda o Programa copias de seguridad automáticas.

También tienes la opción de aplicar una clave de CMEK al clúster creado cuando se restablece desde una copia de seguridad, independientemente del método de encriptación de esa copia de seguridad. Para obtener más información, consulta Restablece un clúster.

Rota claves con la encriptación de CMEK

Es importante comprender las implicaciones de rotar las claves de encriptación administradas por el cliente (CMEK) en Cloud Key Management Service (Cloud KMS) cuando se usan con clústeres de AlloyDB.

Cuando rotas una clave de CMEK, sucede lo siguiente con tus datos existentes de AlloyDB:

  • El acceso inmediato continúa: Los datos permanecen encriptados con su versión original de la clave de encriptación de datos (DEK), siempre que la versión anterior de la clave aún esté disponible en KMS, no esté inhabilitada ni borrada.

  • La nueva encriptación completa de los datos es manual: Para obtener todos tus datos de AlloyDB en la versión de clave primaria más reciente, debes volver a encriptarlos.

Para volver a encriptar tu clúster existente con una versión de clave de CMEK nueva, debes realizar una operación de copia de seguridad y restablecimiento:

  1. Crea una copia de seguridad de tu clúster existente.

  2. Restablece la copia de seguridad en un clúster nuevo y especifica la nueva versión de clave primaria de CMEK durante el proceso de restablecimiento.

Para obtener más información, consulta Restablecimiento de clústeres.

La rotación frecuente de claves de CMEK con AlloyDB requiere una sobrecarga operativa significativa. Debido a que los datos existentes no se vuelven a encriptar automáticamente y a que la nueva encriptación manual implica una copia de seguridad completa y un restablecimiento en un clúster nuevo, las rotaciones frecuentes pueden ser engorrosas y pueden afectar la disponibilidad o la complejidad de la administración.

Puedes borrar de forma segura las versiones de claves de CMEK antiguas en Cloud KMS solo después de confirmar que todos los datos relevantes de AlloyDB se vuelven a encriptar de forma manual y que los datos usan una versión de clave más reciente.

Visualiza el método de encriptación y la clave de CMEK de una copia de seguridad

Console

La columna Encryption de la página Backups muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o CMEK.

Ir a la página de copias de seguridad

Para ver los detalles de la clave de una copia de seguridad con CMEK, haz clic en Restore. El campo Encryption key del panel de detalles posterior contiene una descripción de la clave, incluido un vínculo a su propia página de detalles de Cloud KMS.

gcloud

Llama al gcloud alloydb backups describe comando:

gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION

Reemplaza lo siguiente:

  • CLUSTER: Es el ID de la copia de seguridad que se describirá.
  • PROJECT: Es el ID del proyecto de la copia de seguridad.
  • REGION: Es la región de la copia de seguridad, por ejemplo, us-central1.

El resultado incluye un campo encryptionInfo con un resumen de la encriptación de la copia de seguridad.

Inhabilita una clave

Si inhabilitas la clave de CMEK de un clúster, los datos de ese clúster se vuelven inaccesibles hasta que vuelvas a habilitar la clave.

Sin embargo, inhabilitar una clave puede tardar hasta tres horas en propagarse a tu clúster de AlloyDB. Para inhabilitar una clave y evitar el acceso a tus datos de inmediato, sigue estos pasos:

  1. Borra la instancia principal de tu clúster. Esto no afecta los datos del clúster. Puedes crear una instancia principal nueva después de volver a habilitar la clave, como se describe en la siguiente sección.

  2. Usa Cloud KMS para inhabilitar la clave.

Habilita una clave

Para habilitar una clave, sigue estos pasos:

  1. Usa Cloud KMS para habilitar la clave.

  2. Si borraste la instancia principal de tu clúster antes de inhabilitar la clave, crea una instancia principal nueva.

Habilitar una clave puede tardar hasta tres horas en propagarse a tu clúster. Los datos del clúster se vuelven accesibles en cuanto se produce esta propagación.

Visualiza los registros de auditoría de una clave de Cloud KMS

Para ver los registros de auditoría asociados con una clave de CMEK en particular, sigue estos pasos:

  1. Asegúrate de que el registro esté habilitado para la API de Cloud KMS en tu proyecto.

  2. Ve al Explorador de registros en la Google Cloud consola.

    Ir al Explorador de registros.

  3. Agrega las siguientes líneas al compilador de consultas para limitar las entradas de registro a tu clave de Cloud KMS:

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    Reemplaza lo siguiente:

    • REGION: Es la región de la clave, por ejemplo, us-central1.
    • KEYRING: Es el ID del llavero de claves de Cloud KMS de la clave.
    • KEY: Es el ID de Cloud KMS de la clave.
  4. En operaciones normales, las operaciones de encriptación y desencriptación se registran con gravedad INFO. Estas entradas se registran cuando las instancias de tu clúster de AlloyDB validan la clave de Cloud KMS, lo que ocurre cada cinco minutos.

  5. Si AlloyDB no puede acceder a la clave, las operaciones se registran como ERROR.

Visualiza las justificaciones de acceso para una clave de Cloud EKM

Si usas una clave de Cloud EKM, puedes usar Key Access Justifications para ver el motivo de cada solicitud de Cloud EKM. Además, según la justificación proporcionada, puedes aprobar o rechazar una solicitud de forma automática. Para obtener más información, consulta Visualiza las justificaciones y toma medidas en función de ellas .