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
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 enus-west1
.Si ya tienes una clave de Cloud KMS en la ubicación correcta, puedes omitir este paso.
Otorga acceso de AlloyDB a la clave.
- Con Google Cloud CLI, crea y muestra el agente de servicio, o bien 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 recupera 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
- Otorga el rol
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: ID del proyecto de la clave
- KEYRING: Es el ID del llavero de claves de Cloud KMS de la clave.
Este rol otorga permiso a la cuenta de servicio para encriptar y desencriptar contenido con la clave de Cloud KMS. Para obtener más información, consulta Permisos y roles de Cloud KMS.
Crea un clúster encriptado con CMEK
Cuando creas un clúster nuevo, puedes elegir si deseas 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.
Cómo ver el método de encriptación y la clave de CMEK de un clúster
Console
En la columna Encriptación de la página Clústeres, se muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o la CMEK.
Para ver los detalles de la clave de un clúster que usa CMEK, haz clic en su nombre en la columna Nombre del recurso. El campo Clave de encriptación 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: 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 del encriptado del clúster.
Aplica la CMEK a las copias de seguridad
Cuando creas una copia de seguridad nueva, puedes elegir si deseas encriptarla con la encriptación predeterminada administrada por Google o con una clave de CMEK. Para obtener más información, consulta Crea una copia de seguridad a pedido o Programa copias de seguridad automáticas.
También tienes la opción de aplicar una clave CMEK al clúster creado cuando se realiza la restauración desde una copia de seguridad, independientemente del método de encriptación de esa copia de seguridad. Para obtener más información, consulta Cómo restablecer un clúster.
Rota las claves con la encriptación de CMEK
Es importante comprender las implicaciones de rotar tus 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, ocurre 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 y cuando la versión anterior de la clave siga disponible en KMS, y no esté inhabilitada ni borrada.
La reencriptación completa de los datos es manual: para que todos tus datos de AlloyDB se encuentren en la versión de clave primaria más reciente, debes volver a encriptarlos.
Para volver a encriptar tu clúster existente con una nueva versión de la clave de CMEK, debes realizar una operación de copia de seguridad y restablecimiento:
Crea una copia de seguridad de tu clúster existente.
Restablece la copia de seguridad en un clúster nuevo y especifica la nueva versión de la clave primaria de CMEK durante el proceso de restablecimiento.
Para obtener más información, consulta Restauración del clúster.
La rotación frecuente de claves 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 y una restauración completas en un clúster nuevo, las rotaciones frecuentes pueden ser engorrosas y afectar la disponibilidad o la complejidad de la administración.
Puedes borrar de forma segura las versiones de claves CMEK antiguas en Cloud KMS solo después de confirmar que todos los datos relevantes de AlloyDB se volvieron a encriptar de forma manual y que los datos usan una versión de clave más reciente.
Cómo ver el método de encriptación y la clave de CMEK de una copia de seguridad
Console
En la columna Encryption de la página Backups, se muestra si cada clúster de tu proyecto usa la encriptación administrada por Google o la CMEK.
Ir a la página Copias de seguridad
Para ver los detalles de la clave de una copia de seguridad con CMEK, haz clic en Restaurar. El campo Clave de encriptación 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 comando gcloud alloydb backups describe
:
gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION
Reemplaza lo siguiente:
- CLUSTER: el ID de la copia de seguridad que se describirá
- PROJECT: 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
Inhabilitar la clave de CMEK de un clúster hace que los datos de ese clúster sean inaccesibles hasta que vuelvas a habilitar la clave.
Sin embargo, la inhabilitación de una clave puede tardar hasta tres horas en propagarse a tu clúster de AlloyDB. Para inhabilitar una clave y evitar el acceso inmediato a tus datos, sigue estos pasos:
Borra la instancia principal de tu clúster. Esto no afecta los datos de tu clúster. Puedes crear una nueva instancia principal después de volver a habilitar la clave, como se describe en la siguiente sección.
Habilita una clave
Para habilitar una clave, sigue estos pasos:
Si borraste la instancia principal de tu clúster antes de inhabilitar la clave, crea una nueva instancia principal.
La habilitación de 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:
Asegúrate de que el registro esté habilitado para la API de Cloud KMS en tu proyecto.
Ve al Explorador de registros en la consola de Google Cloud .
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.
- REGION: Es la región de la clave, por ejemplo,
En condiciones normales de funcionamiento, las operaciones de encriptación y desencriptación se registran con una gravedad de
INFO
. Estas entradas se registran cuando las instancias de tu clúster de AlloyDB validan la clave de Cloud KMS, lo que ocurre aproximadamente cada cinco minutos.Si AlloyDB no puede acceder a la clave, las operaciones se registran como
ERROR
.
Cómo ver 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 Cómo ver y responder las justificaciones.