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 la CMEK como un parámetro de configuración predeterminado del recurso para una organización, una carpeta o ambas. 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.
Puedes configurar parámetros predeterminados para una organización y para las carpetas. Cuando creas recursos nuevos, estos heredan la configuración predeterminada de su recurso superior. Por ejemplo, si configuras la CMEK como un parámetro de configuración predeterminado del recurso para una organización, cualquier buckets de registros _Default
y _Required
nuevos que se creen en proyectos, carpetas o 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. 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 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 un parámetro de configuración predeterminado del recurso para Logging, sucede lo siguiente:
- Los buckets de registros 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 registros y especificar una clave diferente. Para obtener más información, consulta Configura la CMEK para los buckets de registros.
- Si usas el Análisis de registros y consultas varios buckets de registros, es posible que se use la clave predeterminada para encriptar los 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 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 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 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:
Si configuras CMEK como un parámetro de configuración predeterminado del recurso para Logging siguiendo los pasos que se indican en este documento, los buckets de registros 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 un parámetro de configuración predeterminado del recurso, no podrás 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 establecer incluya los siguientes permisos de Cloud Logging:
logging.settings.get
logging.settings.update
- 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.
- 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_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
. - En la consola de Google Cloud , ve a la página Administración de claves.
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.
Cuando
logging.googleapis.com
está en la lista de servicios de la políticaDeny
para la restricciónconstraints/gcp.restrictNonCmekServices
, Logging se niega a crear buckets definidos por el usuario nuevos que no estén protegidos por CMEK. Sin embargo, esta restricción no impide que Cloud Logging cree los buckets de registros_Required
y_Default
, que se crean cuando se crea un proyecto deGoogle Cloud .Cuando se aplica
constraints/gcp.restrictCmekCryptoKeyProjects
, Logging crea recursos protegidos por CMEK que están protegidos por una CryptoKey de un proyecto, una carpeta o una organización permitidos.-
En la consola de Google Cloud , ve a la página Políticas de la organización:
Ir 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 la CMEK.
Para obtener información sobre cómo modificar una política de la organización, consulta Crea y edita políticas.
- 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 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.
- 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 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.
- 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.
- 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.
Los buckets de registros de Cloud Logging se pueden configurar para encriptar datos con CMEK. Cuando configuras CMEK como un parámetro de configuración predeterminado para una organización o carpeta, los buckets de registros nuevos de la organización o carpeta usan CMEK automáticamente. Puedes cambiar la clave de estos buckets de registros y crear buckets de registros que usen una clave de KMS diferente de la especificada en la configuración predeterminada.
Para obtener información sobre las CMEK aplicadas a los buckets de registros, incluido cómo 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 CMEK para 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.
- 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
. - 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.
- 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.
- La clave está habilitada.
- La cuenta de servicio que se indica en el campo
kmsServiceAccountId
de la respuesta del comandogcloud logging settings describe
tiene permisos de encriptación y desencriptación en la clave.
Habilita CMEK para una organización o carpeta
Sigue estas instrucciones para habilitar CMEK en tu carpeta o organización deGoogle 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 a la que se aplicará CMEK, ejecuta el siguiente comando de gcloud logging settings describe
:
CARPETA
gcloud logging settings describe --folder=FOLDER_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
ORGANIZACIÓN
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
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 un parámetro de configuración predeterminado, usa el valor del campo kmsServiceAccountId
.
En el siguiente ejemplo, se ilustra 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 de la API de Cloud Logging getSettings
.
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:
Console
Configura las políticas de la organización
Logging admite políticas de la organización que pueden requerir protección de CMEK y limitar las CryptoKeys de Cloud KMS que se pueden usar para la protección de CMEK:
Para obtener más información sobre la CMEK y las políticas de la organización, consulta Políticas de la organización relativas a la CMEK.
Cuando existe una política de la organización que especifica 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:
Configura Cloud Logging con la clave de Cloud KMS
Para configurar CMEK como un parámetro de configuración predeterminado del recurso para Logging, ejecuta el siguiente comando de 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:
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é establecida en el valor de KMS_KEY_LOCATION. Si no estableciste 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:
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é establecida en el valor de KMS_KEY_LOCATION. Si no estableciste 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, los nuevos buckets de registros de la organización o la carpeta se configuran para encriptar sus datos en reposo con esta clave. También puedes cambiar las claves de los 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 de la API de Cloud Logging updateSettings
.
Verifica la habilitación de claves
Para verificar que habilitaste CMEK correctamente en una organización o una carpeta, ejecuta el siguiente comando de gcloud logging settings describe
:
CARPETA
gcloud logging settings describe --folder=FOLDER_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
ORGANIZACIÓN
gcloud logging settings describe --organization=ORGANIZATION_ID
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
Cuando el comando anterior devuelve el nombre de la clave de Cloud KMS en el campo kmsKeyName
propagado, las CMEK se habilitan para la organización o la 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.
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 a 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é establecida en el valor de KMS_KEY_LOCATION. Si no estableciste 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é establecida en el valor de KMS_KEY_LOCATION. Si no estableciste 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
Puedes revocar el acceso de Logging a la clave de Cloud KMS quitando 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:
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 configurada como un parámetro de configuración predeterminado, 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:
ORGANIZACIÓN
gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key
Antes de ejecutar el comando anterior, realiza el siguiente reemplazo:
Consulta Destruye y restablece versiones de clave para destruir tu clave.
Consideraciones sobre la rotación de claves de Cloud KMS
Cloud Logging no rota de forma 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 la carpeta 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
A continuación, se indican las limitaciones conocidas cuando configuras la CMEK como un parámetro de configuración predeterminado del recurso 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 si se cumplen las siguientes condiciones:
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 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 la CMEK se configura como parámetro de configuración predeterminado del recurso 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 un máximo de una hora. 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 la CMEK a un bucket de registros y no hay disponible una clave administrada de forma externa, Cloud Logging seguirá almacenando registros en los 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 en 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 errores de configuración de CMEK, consulta Soluciona problemas de errores de CMEK y de configuración predeterminada.