En este documento, se proporcionan instrucciones para configurar claves de encriptación administradas por el cliente (CMEK) para los registros almacenados en buckets de registros. En este documento, también se describe cómo administrar esas claves y las limitaciones asociadas con el uso de CMEK.
Puedes configurar la CMEK como un parámetro de configuración predeterminado del recurso para una organización o una carpeta. Cuando se configura, Cloud Logging garantiza que todos los buckets de registros nuevos de la organización o la carpeta se encripten con una clave administrada por el cliente. Si no proporcionas una clave cuando creas el bucket de registros, se usará la clave predeterminada. Para obtener más información, consulta Cómo configurar CMEK para Cloud Logging.
Descripción general
De forma predeterminada, Cloud Logging encripta el contenido del cliente almacenado en reposo. Los datos que Logging almacena en los buckets de registros se encriptan con claves de encriptación de claves, un proceso conocido como encriptación de sobre. Acceder a tus datos de registro requiere acceso a esas claves de encriptación de claves. De forma predeterminada, estos son Google-owned and Google-managed encryption keys y no requieren ninguna acción de tu parte.
Tu organización puede tener requisitos de encriptación avanzados, regulatorios o relacionados con el cumplimiento que nuestra encriptación en reposo predeterminada no proporciona. Para cumplir con los requisitos de tu organización, en lugar de usarGoogle-owned and Google-managed encryption keys, puedes administrar tus propias claves.
Para obtener información específica sobre el uso de CMEK, incluidas las ventajas y limitaciones, consulta Claves de encriptación administradas por el cliente.
En el caso de la encriptación simétrica, se recomienda usar el servicio de rotación de claves de manera periódica y automática como medida de seguridad. Para obtener más información, consulta Rotación de claves.
Requisitos previos
Completa los siguientes pasos:
Existen algunas limitaciones cuando se usan CMEK. Antes de crear un bucket de registros con la CMEK habilitada, revisa las limitaciones.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Configura el proyecto Google Cloud en el que planeas crear tus claves:
-
Para obtener los permisos que necesitas para crear claves, pídele a tu administrador que te otorgue el rol de IAM de administrador de Cloud KMS (
roles/cloudkms.admin
) en el proyecto o en un recurso principal. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea un llavero de claves y claves.
Cloud Logging te permite usar una clave de cualquier región. Sin embargo, cuando creas un bucket de registros, su ubicación debe coincidir con la de la clave. Para obtener información sobre las regiones admitidas, consulta lo siguiente:
No puedes habilitar la CMEK para los buckets de registros creados en la región
global
.
-
Asegúrate de tener los siguientes permisos de Cloud Logging en el proyectoGoogle Cloud en el que planeas crear buckets de registros:
logging.settings.get
logging.buckets.get
logging.buckets.list
logging.buckets.create
logging.buckets.update
Ejecuta el siguiente comando
gcloud logging settings describe
:gcloud logging settings describe --project=BUCKET_PROJECT_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- BUCKET_PROJECT_ID: Es el nombre del proyecto Google Cloud en el que planeas crear el bucket de registros.
El comando anterior genera una cuenta de servicio para el recurso especificado, si aún no existe una, y muestra el ID de esa cuenta de servicio en el campo
kmsServiceAccountId
:kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com name: projects/BUCKET_PROJECT_ID/settings
El campo
kmsServiceAccountId
enumera la cuenta de servicio que usa Cloud Logging para llamar a Cloud Key Management Service.Si el campo KMS_SERVICE_ACCT_NAME tiene el formato
cmek-pPROJECT_NUMBER
y usas los Controles del servicio de VPC o habilitas el uso compartido restringido por dominio, determina si necesitas migrar tu cuenta de servicio de CMEK. Para obtener información sobre cuándo debes realizar la migración y los pasos que debes seguir, consulta Soluciona problemas de los Controles del servicio de VPC y el uso compartido restringido por dominio.- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre de tu proyecto Google Cloud y un número asignado de forma aleatoria, del proyecto Google Cloud que ejecuta Cloud KMS. Para obtener información sobre cómo obtener este identificador, consulta Identifica proyectos.
- KMS_SERVICE_ACCT_NAME: Es el nombre de la cuenta de servicio que se muestra en el campo
kmsServiceAccountId
de la respuesta del comandogcloud logging settings describe
. - KMS_KEY_LOCATION: Es la región de la clave de Cloud KMS.
- KMS_KEY_RING: Es el nombre del llavero de claves de Cloud KMS.
- KMS_KEY_NAME:
Es el nombre de la clave de Cloud KMS. Su formato es el siguiente:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - BUCKET_ID: Es el nombre o el ID del bucket de registros.
- LOCATION: Es la ubicación del bucket de registros.
- KMS_KEY_NAME:
Es el nombre de la clave de Cloud KMS. Su formato es el siguiente:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - BUCKET_PROJECT_ID: Es el nombre del proyecto Google Cloud en el que se creará el bucket de registros.
- BUCKET_PROJECT_ID: Es el nombre del proyecto Google Cloud que almacena el bucket de registros.
- Identifica la clave de Cloud KMS actual del bucket de registros. Para obtener más información, consulta Cómo verificar si la clave está habilitada.
- Identifica otra clave de Cloud KMS que puedas usar. Si tu llavero de claves tiene solo una llave, selecciona Crear una llave.
- Cambia la clave de Cloud KMS del bucket de registros a la clave de Cloud KMS que creaste en el paso anterior.
- Cambia la clave de Cloud KMS del bucket de registros a la clave de Cloud KMS original.
- BUCKET_ID: Es el nombre o el ID del bucket de registros.
- LOCATION: Es la ubicación del bucket de registros.
- NEW_KMS_KEY_NAME: Nombre de la clave nueva.
- BUCKET_PROJECT_ID: Es el nombre del proyecto Google Cloud que almacena el bucket de registros.
- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre de tu proyecto Google Cloud y un número asignado de forma aleatoria, del proyecto Google Cloud que ejecuta Cloud KMS. Para obtener información sobre cómo obtener este identificador, consulta Identifica proyectos.
- KMS_SERVICE_ACCT_NAME: Es el nombre de la cuenta de servicio que se muestra en el campo
kmsServiceAccountId
de la respuesta del comandogcloud logging settings describe
. - KMS_KEY_LOCATION: Es la región de la clave de Cloud KMS.
- KMS_KEY_RING: Es el nombre del llavero de claves de Cloud KMS.
- KMS_KEY_NAME:
Es el nombre de la clave de Cloud KMS. Su formato es el siguiente:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
. - La clave está habilitada.
- La cuenta de servicio de Logging tiene permisos de encriptación y desencriptación en la clave.
Habilita la CMEK
Una vez que hayas completado los pasos de requisitos previos, sigue estas instrucciones para habilitar CMEK en un bucket de registros individual.
Determina el ID de cuenta de servicio
Para determinar el ID de la cuenta de servicio asociada al recurso Google Cloudal que se aplicará la CMEK, haz lo siguiente:
Asigna la función Encriptador/Desencriptador
Cuando configures la CMEK a nivel del bucket de registros, asigna la función Encriptador/Desencriptador de CryptoKey de Cloud KMS a la cuenta de servicio identificada por el campo kmsServiceAccountId
para otorgarle permiso para que use tu Cloud KMS:
gcloud kms keys add-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Antes de ejecutar el comando anterior, realiza los siguientes reemplazos:
Crea un bucket de registros y proporciona la clave de Cloud KMS
Para crear un bucket de registros y habilitar la CMEK para él, ejecuta el siguiente comando de gcloud logging buckets create
:
gcloud logging buckets create BUCKET_ID \ --location=LOCATION \ --cmek-kms-key-name=KMS_KEY_NAME \ --project=BUCKET_PROJECT_ID
Antes de ejecutar el comando anterior, realiza los siguientes reemplazos:
Verifica la habilitación de claves
Para verificar que creaste correctamente un bucket de registros con la CMEK habilitada, ejecuta el siguiente comando de gcloud logging buckets list
:
gcloud logging buckets list --project=BUCKET_PROJECT_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
En el resultado tabular, verás una columna etiquetada como CMEK
. Si el valor de la columna CMEK
es TRUE
, las CMEK están habilitadas para el bucket de registros.
Para ver los detalles de un bucket de registros específico, incluidos los detalles de la clave, ejecuta este comando:
gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID
Administra tu clave de Cloud KMS
En las siguientes secciones, se describe cómo actualizar un bucket de registros para usar la versión de clave primaria más reciente de una clave de Cloud KMS. También se describe cómo cambiar, revocar el acceso a tu clave de Cloud KMS o inhabilitarla.
Rota tu clave de Cloud KMS
Cuando crees una clave de Cloud KMS, podrás configurar un período de rotación. También puedes rotar una clave de Cloud KMS de forma manual. Cada vez que se rota una clave, se crea una versión nueva para esa clave.
Si rotas una clave de Cloud KMS, la nueva versión de la clave se aplica solo a los buckets de registros creados después de la rotación de claves. Si la clave la usa un bucket de registros existente, rotarla no cambia la forma en que el bucket de registros protege sus datos.
Por ejemplo, supongamos que creas un bucket de registros y habilitas la CMEK, y, luego, rotas la clave de Cloud KMS. El bucket de registros que creaste no usa la versión de clave nueva, sino que sigue protegiendo sus datos con la versión de clave que se marcó como principal cuando se creó el bucket de registros.
Para actualizar un bucket de registros para que use la versión de clave primaria más reciente de una clave de Cloud KMS, haz lo siguiente:
Cambia tu clave de Cloud KMS
Para cambiar la clave de Cloud KMS asociada a tu bucket de registros, crea una clave y actualiza la configuración de CMEK para el bucket de registros:
gcloud logging buckets update BUCKET_ID --location=LOCATION \ --cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
Revoca el acceso a la clave de Cloud KMS
A fin de revocar el acceso de Logging a la clave de Cloud KMS en cualquier momento, quita el permiso de IAM de la cuenta de servicio configurada para esa clave.
Si quitas el acceso de Logging a una clave, el cambio puede tomar hasta una hora en aplicarse.
Si tienes un conjunto de datos de BigQuery vinculado, BigQuery no puede usar este acceso para aplicar la clave a una tabla nueva de BigQuery. Si quieres usar una clave en una tabla de BigQuery que no esté vinculada a Logging, sigue la documentación de BigQuery para hacerlo. Si revocas el acceso de Logging a una clave y tienes un conjunto de datos de BigQuery vinculado, también revocarás el acceso de BigQuery a la misma clave.
No puedes revocar el acceso de BigQuery a la clave del conjunto de datos vinculado y, al mismo tiempo, conservar el acceso de Logging.
Para obtener más información sobre el impacto de revocar el acceso, consulta Limitaciones.
Para quitar el acceso de Logging a una clave, ejecuta el siguiente comando:
gcloud kms keys remove-iam-policy-binding \ --project=KMS_PROJECT_ID \ --member serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING \ KMS_KEY_NAME
Antes de ejecutar el comando anterior, realiza los siguientes reemplazos:
Limitaciones
Las siguientes son limitaciones conocidas.
La CMEK inhabilita Error Reporting
Si deseas usar Error Reporting, no habilites las claves de encriptación administradas por el cliente (CMEK) en tus buckets de registros. Si deseas obtener más información, consulta Solución de problemas.
No se puede quitar la CMEK de los buckets de registros
No puedes reconfigurar los buckets de registros para cambiar o quitar la CMEK.
Degradación debido a la falta de disponibilidad de la clave de Cloud KMS
Una clave de Cloud KMS se considera disponible y se puede acceder a ella con Logging si se cumplen las siguientes condiciones:
El registro recomienda encarecidamente garantizar que todas las claves estén configuradas correctamente y siempre disponibles.
Pérdida de la recuperación ante desastres
Si hay fallas críticas en el almacenamiento principal de Cloud Logging, Logging duplica los datos de registro en archivos de recuperación ante desastres. Cuando se habilita la CMEK para un recurso, como una organización Google Cloud , los registros pertenecientes a ese recurso están protegidos por la clave CMEK configurada. Si no se puede acceder a la clave de CMEK, no se podrán escribir los archivos de recuperación ante desastres para ese recurso.
La pérdida de archivos de recuperación ante desastres no afecta las operaciones normales de registro. Sin embargo, en caso de un desastre de almacenamiento, es posible que Cloud Logging no pueda recuperar los registros de los recursos cuya CMEK no esté configurada correctamente.
Restricciones de compatibilidad
Atención al cliente de Cloud no puede leer los registros de tu recurso si su clave no está configurada correctamente o deja de estar disponible.
Rendimiento degradado de las consultas
Cuando no se puede acceder a una clave de encriptación administrada por el cliente, Cloud Logging continúa encriptando tus datos y almacenándolos en buckets de registros. Sin embargo, Cloud Logging no puede realizar optimizaciones en segundo plano en estos datos. Si se restablece el acceso a la clave, los datos estarán disponibles. Sin embargo, inicialmente, los datos se almacenarán en un estado no optimizado y el rendimiento de las consultas puede verse afectado.
Degradación debido a la falta de disponibilidad de la clave de Cloud EKM
Cuando usas una clave de Cloud EKM, Google Cloud no tiene control sobre la disponibilidad de tu clave administrada de forma externa en el sistema de socios de administración de claves externas. En el caso de la CMEK a nivel del bucket, si una clave administrada de forma externa no está disponible, Cloud Logging continúa almacenando registros en los buckets de registros, pero los usuarios no pueden acceder a ellos.
Para obtener más consideraciones y posibles alternativas cuando uses claves externas, consulta la documentación de Cloud External Key Manager.
Regionalidad
Cuando creas un bucket de registros y habilitas la CMEK, debes usar una clave cuya región coincida con el alcance regional de tus datos.
No puedes configurar CMEK para los buckets de registros creados en la región global
.
Disponibilidad de la biblioteca cliente
Las bibliotecas cliente de Logging no proporcionan métodos para configurar CMEK.
Cuotas
Cuando usas CMEK en Logging, tus proyectos pueden consumir cuotas de solicitudes criptográficas de Cloud KMS. Por ejemplo, habilitar la CMEK en un bucket de registros puede consumir estas cuotas. Las operaciones de encriptación y desencriptación con claves CMEK afectan las cuotas de Cloud KMS solo si usas claves de hardware (Cloud HSM) o externas (Cloud EKM). Para obtener más información, consulta Cuotas de Cloud KMS.
Para obtener más información sobre los límites de uso de Logging, consulta Cuotas y límites.
Soluciona problemas de errores de configuración
Para obtener información sobre cómo solucionar problemas de errores de configuración de CMEK, consulta Soluciona problemas de errores de configuración de CMEK y de la organización.