En este documento, se describe cómo configurar y administrar las claves de encriptación administradas por el cliente (CMEK) para Cloud Logging a fin de satisfacer las necesidades de cumplimiento de tu organización. Puedes configurar CMEK como un parámetro de configuración de recursos predeterminado para una organización, una carpeta o ambos. Cuando se configura, Cloud Logging se asegura de que todos los buckets de registro nuevos de la organización o carpeta estén encriptados con una clave administrada por el cliente.
Puedes configurar una configuración predeterminada para una organización y para las carpetas. Cuando creas recursos nuevos, estos heredan la configuración predeterminada de su elemento superior. Por ejemplo, si configuras las CMEK como la configuración de recursos predeterminada de una organización, todos los buckets de registro _Default
y _Required
nuevos que se creen en los proyectos, las carpetas o las cuentas de facturación de esa organización se encriptarán con la clave predeterminada.
Además, si creas un bucket de registros personalizado en un proyecto que es secundario de esa organización, se usará automáticamente la clave predeterminada, a menos que proporciones una clave diferente cuando crees el bucket de registros.
En las instrucciones de esta guía, se usa Google Cloud CLI.
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, que Google Cloud administra sin que tengas que realizar ninguna acción.
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 que Google Cloud administre las claves de encriptación que protegen tus datos, puedes configurar CMEK para controlar y administrar tu propia encriptación.
Para obtener información específica sobre las CMEK, incluidas sus ventajas y limitaciones, consulta Claves de encriptación administradas por el cliente.
Cuando configuras CMEK como configuración de recursos predeterminada para el registro, ocurre lo siguiente:
- Los buckets de registro nuevos de la organización o la carpeta se encriptan automáticamente con la clave configurada. Sin embargo, puedes cambiar esa clave o crear buckets de registro y especificar una clave diferente. Para obtener más información, consulta Configura CMEK para buckets de registros.
- Si usas Log Analytics y consultas varios buckets de registros, es posible que se use la clave predeterminada para encriptar datos temporales. Para obtener más información, consulta Restricciones de Log Analytics.
Antes de comenzar
Para comenzar, completa los siguientes pasos:
Antes de crear un bucket de registros con CMEK habilitado, 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 de 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 tu proyecto. 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 desde cualquier región. Sin embargo, cuando creas un bucket de registros, la ubicación del bucket de registros debe coincidir con la ubicación de la clave. Para obtener información sobre las regiones compatibles, consulta lo siguiente:
Si configuras CMEK como un parámetro de configuración de recursos predeterminado para los registros con los pasos que se indican en este documento, los buckets de registro nuevos que se creen en la organización o la carpeta se configurarán automáticamente para CMEK. Además, como la ubicación de un bucket de registros debe coincidir con la ubicación de la clave, después de configurar la CMEK como configuración de recursos predeterminada, no puedes crear buckets de registros en la región
global
.
-
Asegúrate de que tu rol de IAM en la organización o carpeta cuya configuración predeterminada deseas configurar incluya los siguientes permisos de registro de Cloud:
logging.settings.get
logging.settings.update
Habilita CMEK para una organización o carpeta
Sigue estas instrucciones para habilitar CMEK en tu organización o carpeta de Google Cloud.
Determina el ID de cuenta de servicio
Para determinar el ID de la cuenta de servicio asociada con la organización o la carpeta para la que se aplicará CMEK, ejecuta el siguiente comando gcloud logging settings describe
:
CARPETA
gcloud logging settings describe --folder=FOLDER_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- FOLDER_ID: Es el identificador numérico único de la carpeta. Para obtener información sobre cómo usar las carpetas, consulta Crea y administra carpetas.
ORGANIZACIÓN
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- ORGANIZATION_ID: Es el identificador numérico único de la organización. Para obtener información sobre cómo obtener este identificador, consulta Obtén el ID de tu organización.
El comando anterior genera cuentas de servicio para la organización
o la carpeta, cuando no existen. El comando también muestra los IDs de
dos cuentas de servicio, una en el campo kmsServiceAccountId
y la
otra en el campo loggingServiceAccountId
. Para configurar la CMEK como configuración predeterminada, usa el valor del campo kmsServiceAccountId
.
A continuación, se muestra una respuesta de muestra al comando anterior cuando se especifica una organización:
kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com name: organizations/ORGANIZATION_ID/settings
Ejecuta el proceso de aprovisionamiento una vez por recurso. Si ejecutas el comando describe
varias veces, se muestra el mismo valor para el campo kmsServiceAccountId
.
Si no puedes usar Google Cloud CLI, ejecuta el método getSettings
de la API de Cloud Logging.
Asigna la función Encriptador/Desencriptador
Si deseas usar CMEK, asigna la función Encriptador/Desencriptador de CryptoKeys de Cloud KMS a la cuenta de servicio a fin de otorgarle permiso para que use tu Cloud KMS.
gcloud
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:
- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre del proyecto de Google Cloud y un número asignado de forma aleatoria, del proyecto de 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
.
Console
- Abre el navegador de claves de Cloud Key Management Service en la consola de Google Cloud.
Abrir el navegador de claves de Cloud KMS Selecciona el nombre del llavero de claves que contiene la clave.
Selecciona la casilla de verificación de la clave.
La pestaña de Permisos estará disponible.
En el cuadro de diálogo Agregar miembros, especifica la dirección de correo electrónico de la cuenta de servicio de Logging a la que deseas otorgar acceso.
En el menú desplegable Seleccionar una función, selecciona Encriptador/desencriptador de CryptoKey de Cloud KMS.
Haz clic en Agregar.
Configura las políticas de la organización
El registro admite políticas de la organización que pueden requerir protección de CMEK y que pueden limitar las CryptoKeys de Cloud KMS que se pueden usar para la protección de CMEK:
Cuando
logging.googleapis.com
está en la lista de servicios de la políticaDeny
de la restricciónconstraints/gcp.restrictNonCmekServices
, el registro se niega a crear nuevos buckets definidos por el usuario que no estén protegidos por CMEK. Sin embargo, esta restricción no impide que el registro de Cloud cree los buckets de registro_Required
y_Default
que se crean cuando se crea un proyecto de Google Cloud.Cuando se aplica
constraints/gcp.restrictCmekCryptoKeyProjects
, la función de registro crea recursos protegidos por CMEK que están protegidos por una CryptoKey de una organización, carpeta o proyecto permitidos.
Para obtener más información sobre CMEK y las políticas de la organización, consulta Políticas de la organización de CMEK.
Cuando exista una política de la organización que especifique una restricción de CMEK, asegúrate de que esas restricciones sean coherentes con la configuración predeterminada de Logging para una organización o una carpeta. Además, si planeas modificar la configuración predeterminada, antes de actualizarla, revisa y, si es necesario, actualiza las políticas de la organización.
Para ver o configurar las políticas de la organización, haz lo siguiente:
-
En la consola de Google Cloud, ve a la página Políticas de la organización:
Ve a Políticas de la organización.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.
- Selecciona tu organización.
Verifica y, si es necesario, actualiza las restricciones específicas de CMEK.
Para obtener información sobre cómo modificar una política de la organización, consulta Crea y edita políticas.
Configura Cloud Logging con la clave de Cloud KMS
Para configurar CMEK como configuración de recursos predeterminada para el registro, ejecuta el siguiente comando gcloud logging settings update
:
CARPETA
gcloud logging settings update \ --folder=FOLDER_ID \ --kms-location=KMS_KEY_LOCATION \ --kms-key-name=KMS_KEY_NAME \ --kms-keyring=KMS_KEY_RING \ --kms-project=KMS_PROJECT_ID
Antes de ejecutar el comando anterior, realiza los siguientes reemplazos:
- FOLDER_ID: Es el identificador numérico único de la carpeta. Para obtener información sobre cómo usar las carpetas, consulta Crea y administra carpetas.
- KMS_KEY_LOCATION: Es la región de la clave 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
. - KMS_KEY_RING: Es el nombre del llavero de claves de Cloud KMS.
- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre del proyecto de Google Cloud y un número asignado de forma aleatoria, del proyecto de Google Cloud que ejecuta Cloud KMS. Para obtener información sobre cómo obtener este identificador, consulta Identifica proyectos.
El comando anterior actualiza la configuración predeterminada para almacenar información sobre la clave de Cloud KMS. Debes asegurarte de que la ubicación de almacenamiento predeterminada de la carpeta esté configurada en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si el valor de esa ubicación no coincide con el valor de KMS_KEY_LOCATION, agrega lo siguiente al comando anterior:
--storage-location = KMS_KEY_LOCATION
La marca --storage-location
te permite establecer o actualizar la ubicación de almacenamiento predeterminada de la carpeta.
ORGANIZACIÓN
gcloud logging settings update \ --organization=ORGANIZATION_ID \ --kms-location=KMS_KEY_LOCATION \ --kms-key-name=KMS_KEY_NAME \ --kms-keyring=KMS_KEY_RING \ --kms-project=KMS_PROJECT_ID
Antes de ejecutar el comando anterior, realiza los siguientes reemplazos:
- ORGANIZATION_ID: Es el identificador numérico único de la organización. Para obtener información sobre cómo obtener este identificador, consulta Obtén el ID de tu organización.
- KMS_KEY_LOCATION: Es la región de la clave 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
. - KMS_KEY_RING: Es el nombre del llavero de claves de Cloud KMS.
- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre del proyecto de Google Cloud y un número asignado de forma aleatoria, del proyecto de Google Cloud que ejecuta Cloud KMS. Para obtener información sobre cómo obtener este identificador, consulta Identifica proyectos.
El comando anterior actualiza la configuración predeterminada para almacenar información sobre la clave de Cloud KMS. Debes asegurarte de que la ubicación de almacenamiento predeterminada de la organización esté configurada en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si el valor de esa ubicación no coincide con el valor de KMS_KEY_LOCATION, agrega lo siguiente al comando anterior:
--storage-location = KMS_KEY_LOCATION
La marca --storage-location
te permite establecer o actualizar la
ubicación de almacenamiento predeterminada de la organización.
Después de aplicar la clave, se configuran nuevos buckets de registro en la organización o la carpeta para encriptar sus datos inactivos con esta clave. También puedes
cambiar las claves
para buckets de registros individuales. No puedes crear buckets de registros en
la región global
porque debes usar una clave cuya
región coincida con el alcance regional de tus datos.
Si no puedes usar Google Cloud CLI, ejecuta el método updateSettings
de la API de Cloud Logging.
Verifica la habilitación de claves
Para verificar que habilitaste CMEK correctamente en una organización o una carpeta, ejecuta el siguiente comando gcloud logging settings describe
:
CARPETA
gcloud logging settings describe --folder=FOLDER_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- FOLDER_ID: Es el identificador numérico único de la carpeta. Para obtener información sobre cómo usar las carpetas, consulta Crea y administra carpetas.
ORGANIZACIÓN
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- ORGANIZATION_ID: Es el identificador numérico único de la organización. Para obtener información sobre cómo obtener este identificador, consulta Obtén el ID de tu organización.
Cuando el comando anterior muestra el nombre de la clave de Cloud KMS
en el campo kmsKeyName
, se propagan las CMEK para la
organización o carpeta:
kmsKeyName: KMS_KEY_NAME kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
Enruta registros a destinos compatibles.
Los buckets de registro de Cloud Logging se pueden configurar para encriptar datos con CMEK. Cuando configuras CMEK como configuración predeterminada para una organización o carpeta, los buckets de registro nuevos en la organización o carpeta usan automáticamente CMEK. Puedes cambiar la clave de estos buckets de registro y crear buckets de registro que usen una clave de KMS diferente a la que especifica la configuración predeterminada.
Para obtener información sobre las CMEK aplicadas a los buckets de registros, incluida la forma de cambiar las claves y las limitaciones cuando habilitas las CMEK en un bucket de registros, consulta Cómo configurar CMEK para buckets de registros.
Cloud Storage admite CMEK para registros de enrutamiento. Si deseas obtener instrucciones para configurar las CMEK en Cloud Storage, consulta Cómo usar claves de encriptación administradas por el cliente.
Si se pierden datos debido a la falta de disponibilidad de claves cuando se enrutan datos de registros a Cloud Storage, puedes copiar registros de forma masiva y retroactiva en Cloud Storage cuando esos registros también se almacenan en un bucket de registros. Para obtener más información, consulta Copia entradas de registro.
- BigQuery, de forma predeterminada, encripta el contenido de los clientes almacenado en reposo. Para obtener más información, consulta Protege datos con claves de Cloud Key Management Service.
- Pub/Sub De forma predeterminada, encripta el contenido de los clientes almacenado en reposo. Para obtener más detalles, consulta Configura la encriptación de mensajes.
Administra tu clave de Cloud KMS
En las siguientes secciones, se explica cómo cambiar y, luego, revocar el acceso a tu clave de Cloud KMS o inhabilitarla.
Cambia tu clave de Cloud KMS
Para cambiar la clave de Cloud KMS asociada con una organización o una carpeta, crea una clave y, luego, ejecuta el comando gcloud logging settings update
y proporciona información sobre la nueva clave de Cloud KMS:
CARPETA
gcloud logging settings update \ --folder=FOLDER_ID --kms-key-name=NEW_KMS_KEY_NAME --kms-location=NEW_KMS_KEY_LOCATION \ --kms-keyring=NEW_KMS_KEY_RING \ --kms-project=NEW_KMS_PROJECT_ID
Debes asegurarte de que la ubicación de almacenamiento predeterminada de la carpeta esté configurada en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si el valor de esa ubicación no coincide con el valor de KMS_KEY_LOCATION, agrega lo siguiente al comando anterior:
--storage-location = NEW_KMS_KEY_LOCATION
ORGANIZACIÓN
gcloud logging settings update \ --organization=ORGANIZATION_ID --kms-key-name=NEW_KMS_KEY_NAME --kms-location=NEW_KMS_KEY_LOCATION \ --kms-keyring=NEW_KMS_KEY_RING \ --kms-project=NEW_KMS_PROJECT_ID
Debes asegurarte de que la ubicación de almacenamiento predeterminada de la organización esté configurada en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si el valor de esa ubicación no coincide con el valor de KMS_KEY_LOCATION, agrega lo siguiente al comando anterior:
--storage-location = NEW_KMS_KEY_LOCATION
Revoca el acceso a la clave de Cloud KMS
Para revocar el acceso de Logging a la clave de Cloud KMS, 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.
Para revocar el acceso de Logging a la clave de Cloud KMS, ejecuta el siguiente comando de Google Cloud CLI:
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:
- KMS_PROJECT_ID: Es el identificador alfanumérico único, compuesto por el nombre del proyecto de Google Cloud y un número asignado de forma aleatoria, del proyecto de 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
.
Inhabilita CMEK
Inhabilitar CMEK para una organización o una carpeta quita la aplicación de políticas de CMEK solo en operaciones futuras. Los parámetros de configuración aplicados antes permanecen intactos.
Para inhabilitar CMEK en un recurso que tiene CMEK configurado como configuración de recurso predeterminada, ejecuta el siguiente comando de Google Cloud CLI:
CARPETA
gcloud logging settings update --folder=FOLDER_ID --clear-kms-key
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- FOLDER_ID: Es el identificador numérico único de la carpeta. Para obtener información sobre cómo usar las carpetas, consulta Crea y administra carpetas.
ORGANIZACIÓN
gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
- ORGANIZATION_ID: Es el identificador numérico único de la organización. Para obtener información sobre cómo obtener este identificador, consulta Obtén el ID de tu organización.
Consulta Destruye y restablece versiones de clave para destruir tu clave.
Consideraciones sobre la rotación de claves de Cloud KMS
El registro de Cloud no rota de manera automática la clave de encriptación para los archivos temporales de recuperación ante desastres cuando se rota la clave de Cloud KMS asociada a la organización o carpeta de Google Cloud. Los archivos de recuperación existentes continúan usando la versión de clave con la que se crearon. Los archivos de recuperación nuevos usan la versión de clave primaria actual.
Limitaciones
Las siguientes son limitaciones conocidas cuando configuras CMEK como configuración de recursos predeterminada para Logging.
Falta de disponibilidad del archivo de recuperación ante desastres
Una clave de Cloud KMS se considera disponible y se puede acceder a ella con Logging cuando se cumplen las siguientes condiciones:
- La clave está habilitada.
- La cuenta de servicio que aparece en el campo
kmsServiceAccountId
de la respuesta del comandogcloud logging settings describe
tiene permisos de encriptación y desencriptación en la clave.
Si Logging pierde el acceso a la clave de Cloud KMS, Logging no podrá escribir archivos temporales de recuperación ante desastres y, para los usuarios, las consultas dejarán de funcionar. El rendimiento de las consultas puede disminuir, incluso después de que se restablezca el acceso a la clave.
El enrutamiento de registros a Cloud Storage también puede verse afectado, ya que el registro no puede escribir los archivos temporales necesarios para facilitar el enrutamiento. Si se produce un error cuando se encriptan o desencriptan datos, se enviará una notificación al proyecto de Google Cloud que contiene la clave de Cloud KMS.
Disponibilidad de la biblioteca cliente
Las bibliotecas cliente de Logging no proporcionan métodos para configurar CMEK.
Degradación debido a la falta de disponibilidad de la clave de Cloud EKM
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa en el sistema de socios de administración de claves externas.
Cuando CMEK se configura como configuración de recursos predeterminada para una organización o una carpeta, si una clave administrada de forma externa no está disponible, Cloud Logging intenta acceder a la clave de forma continua. Cloud Logging también almacena en búfer los datos de registro entrantes durante una hora como máximo. Después de una hora, si Cloud Logging aún no puede acceder a la clave administrada de forma externa, Cloud Logging comienza a descartar los datos.
Si se aplica CMEK a un bucket de registros y una clave administrada de forma externa no está disponible, Cloud Logging seguirá almacenando registros en buckets de registros, pero los usuarios no podrán acceder a esos datos.
Consulta la documentación de Cloud External Key Manager para obtener más consideraciones y posibles alternativas cuando uses claves externas.
Limitaciones de los buckets de registros
Para conocer las limitaciones cuando usas CMEK con buckets de registros, consulta Limitaciones.
Cuotas
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 configuración de CMEK, consulta Cómo solucionar problemas de CMEK y errores de configuración predeterminada.