Configura CMEK para Cloud Logging

En este documento, se describe cómo configurar y administrar de encriptación administradas por el cliente (CMEK) Cloud Logging para satisfacer tus las necesidades de cumplimiento de tu organización. Puedes configurar CMEK como una configuración de recursos predeterminada para un organización, una carpeta, o para ambos. Cuando se configura, Cloud Logging garantiza que todos los buckets de la organización o carpeta se encriptan con una clave administrada por el cliente.

Descripción general

De forma predeterminada, Cloud Logging encripta el contenido del cliente almacenado en reposo. Los datos que Logging almacena en buckets de registros se encriptan 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 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 administre el 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 CMEK, incluidas sus ventajas y limitaciones, consulta Claves de encriptación administradas por el cliente.

Cuando configuras CMEK como una configuración de recursos predeterminada para Registro, buckets de registros nuevos en la organización o 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 CMEK para buckets de registros.

Requisitos previos

Para comenzar, completa los siguientes pasos:

  1. Existen algunas limitaciones cuando se usa CMEK. Antes de crear un bucket de registros con CMEK habilitada, revisa las Limitaciones.

  2. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init

    En esta guía, se proporcionan instrucciones para usar Google Cloud CLI.

  3. Busca los identificadores de la organización o carpeta para la que debes habilitar CMEK:

    • ORGANIZATION_ID es el identificador numérico único de las Organización de Google Cloud para la que habilitas CMEK. No necesitas este valor si solo planeas configurar CMEK para un carpeta. Para obtener información sobre cómo obtener este identificador, consulta Obtén el ID de la organización.
    • FOLDER_ID es el identificador numérico único de las Carpeta de Google Cloud para la que habilitas CMEK. No necesitas este valor si solo planeas configurar CMEK para en una organización. Para obtener información sobre el uso de las carpetas, consulta Crea y administra carpetas.
  4. A fin de obtener los permisos que necesitas para crear claves, solicita 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 superior. 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.

  5. Asegúrate de tener los siguientes permisos de Cloud Logging para organización:

    • logging.settings.get
    • logging.settings.update
  6. Habilita la API de Cloud KMS para el proyecto de Google Cloud que ejecuta Cloud KMS.

  7. Crea un llavero de claves y claves para el proyecto de Google Cloud que ejecuta Cloud KMS.

    Cloud Logging te permite usar una clave de cualquier región. Sin embargo, cuando creas un bucket de registros, su ubicación debe coincida con la ubicación de la clave. Para obtener información sobre las regiones admitidas, consulta lo siguiente:

    Si configuras CMEK como una configuración de recursos predeterminada para Logging siguiendo los pasos que se indican en este documento, entonces, los buckets de registros nuevos creados en la organización o carpeta configurados automáticamente para CMEK. Además, debido a que la ubicación de una bucket de registros debe coincidir con la ubicación de la clave, después de que configures CMEK como parámetro de configuración de recursos predeterminado, no puedes crear buckets de registros en la región global.

  8. Identifica los valores de los siguientes parámetros de Cloud KMS:

    • KMS_PROJECT_ID es el identificador alfanumérico único, compuesto por el nombre de tu proyecto de Google Cloud y un número asignado, del proyecto de Google Cloud que se ejecuta Cloud KMS. Para obtener información sobre cómo obtener este identificador, ver Identifica proyectos
    • KMS_KEY_LOCATION es el ID de la clave de Cloud KMS región.
    • KMS_KEY_RING es el llavero de claves de Cloud KMS de la fuente de datos.
    • KMS_KEY_NAME por el nombre de la clave de Cloud KMS Su formato es el siguiente: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY.

Habilita CMEK para una organización o carpeta

Una vez que hayas completado los pasos de requisitos previos, sigue estas instrucciones para habilitar CMEK en tu organización de Google Cloud.

Determina el ID de cuenta de servicio

Para determinar el ID de la cuenta de servicio asociado con la organización o carpeta para las que se aplicará la CMEK, ejecuta el siguiente comando: gcloud logging settings describe :

CARPETA

 gcloud logging settings describe --folder=FOLDER_ID

ORGANIZACIÓN

gcloud logging settings describe --organization=ORGANIZATION_ID

Cuando ejecutes el comando anterior, se generará una cuenta de servicio para la organización o una carpeta, cuando no existe uno todavía, y muestra el ID en el campo kmsServiceAccountId. A continuación, se muestra un ejemplo de respuesta al comando anterior cuando se organización:

kmsServiceAccountId: cmek-p12345@gcp-sa-logging.iam.gserviceaccount.com
name: organizations/ORGANIZATION_ID/settings

En este ejemplo, el valor de SERVICE_ACCT_NAME es cmek-p12345.

Ejecutar el proceso de aprovisionamiento solo una vez por recurso Ejecuta describe muchas veces muestra el mismo valor para 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:SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
--role roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

Configura las variables en el comando de la siguiente manera:

  • Reemplaza SERVICE_ACCT_NAME por el valor serviceAccountId que determinaste en el paso anterior.

  • Reemplaza las otras variables por los valores que determinaste en la requisito previo.

Console

  1. Abre el navegador de claves de Cloud Key Management Service en la consola de Google Cloud.
    Abrir el navegador de claves de Cloud KMS
  2. Haz clic en el nombre del llavero de claves que contiene la clave que desees.

  3. Selecciona la casilla de verificación de la clave que deseas.

    La pestaña de Permisos estará disponible.

  4. 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.

  5. En el menú desplegable Seleccionar una función, selecciona Encriptador/desencriptador de CryptoKey de Cloud KMS.

  6. Haz clic en Agregar.

Configura las políticas de la organización

Logging admite políticas de la organización que pueden requerir CMEK y puede limitar para qué CryptoKeys de Cloud KMS se pueden usar Protección con CMEK:

  • Cuando logging.googleapis.com está en la lista de servicios de la política Deny del restricción constraints/gcp.restrictNonCmekServices, Logging 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 Cloud Logging cree el Los buckets de registros _Required y _Default que se crean cuando un Se crea el proyecto de Google Cloud.

  • Cuando se aplica constraints/gcp.restrictCmekCryptoKeyProjects, Logging crea recursos protegidos por CMEK que se estén protegidos por una CryptoKey de un proyecto, una carpeta o una organización permitidos.

Para obtener más información sobre CMEK y 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 de que esas restricciones sean coherentes con la la configuración predeterminada de recursos de una organización o una carpeta. Además, si planeas modificar la configuración predeterminada de los recursos, antes de actualizar la configuración predeterminada de los recursos, revisar y, de ser necesario, actualizarla las políticas de la organización.

Para ver o configurar las políticas de la organización, haz lo siguiente:

  1. 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.

  2. Selecciona tu organización.
  3. Verifica y, de ser 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 un parámetro de configuración de recursos predeterminado de Logging, ejecuta el siguiente 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

El comando anterior actualiza la configuración predeterminada de los recursos para almacenar información importante sobre la clave de Cloud KMS. Debes asegurarte de que el ubicación de almacenamiento predeterminada para la carpeta se establece en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si su valor la ubicación no coincide con el valor de KMS_KEY_LOCATION; entonces, 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

El comando anterior actualiza la configuración predeterminada de los recursos para almacenar información importante sobre la clave de Cloud KMS. Debes asegurarte de que el ubicación de almacenamiento predeterminada para la organización se establece en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si su valor la ubicación no coincide con el valor de KMS_KEY_LOCATION; entonces, Agrega lo siguiente al comando anterior:

--storage-location = KMS_KEY_LOCATION

La marca --storage-location te permite establecer o actualizar la de almacenamiento predeterminada para la organización.

Después de aplicar la clave, los buckets de registros nuevos de la organización o carpeta para encriptar sus datos en reposo. También puedes cambiar claves para buckets de registros individuales. No puedes crear buckets de registros en la región global porque debes usar una clave cuyo region coincide con el permiso 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 correctamente CMEK para una organización o una carpeta, ejecuta el siguiente gcloud logging settings describe :

CARPETA

gcloud logging settings describe --folder=FOLDER_ID

ORGANIZACIÓN

gcloud logging settings describe --organization=ORGANIZATION_ID

El comando anterior muestra el nombre de la clave de Cloud KMS:

kmsKeyName: KMS_KEY_NAME
kmsServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com

Si se propaga el campo kmsKeyName, las CMEK se habilitan para el organización o carpeta.

Enruta registros a destinos compatibles.

  • Los buckets de registros de Cloud Logging se pueden configurar para encriptar datos con CMEK. Cuando configuras CMEK como una configuración de recursos predeterminada para una organización o carpeta, nuevos buckets de registros de la organización o carpeta usan CMEK automáticamente. Puedes cambiar la clave de a estos buckets de registros y puedes crear buckets de registros que usen un conjunto clave de KMS que la especificada en la configuración predeterminada de recursos.

    Para obtener información sobre las CMEK aplicadas a buckets de registros, incluido cómo cambiar y limitaciones cuando habilitas CMEK en un bucket de registros, consulta Configura CMEK para buckets de registros.

  • Cloud Storage admite CMEK para registros de enrutamiento. Para obtener instrucciones sobre cómo para configurar CMEK en Cloud Storage, consulta Usa claves de encriptación administradas por el cliente.

    Si los datos se pierden debido a una clave indisponibilidad cuando se enrutan los datos de registro a Cloud Storage, puedes copiar los registros de forma retroactiva y masiva en en Cloud Storage cuando 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 a una organización o carpeta, crea una clave y actualiza la configuración de CMEK con el nuevo nombre de la 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 el ubicación de almacenamiento predeterminada para la carpeta se establece en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si su valor la ubicación no coincide con el valor de KMS_KEY_LOCATION; entonces, 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 el ubicación de almacenamiento predeterminada para la organización se establece en el valor de KMS_KEY_LOCATION. Si no configuraste la ubicación de almacenamiento predeterminada o si su valor la ubicación no coincide con el valor de KMS_KEY_LOCATION; entonces, 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 ID de la cuenta de servicio configurada permiso de IAM para esa clave.

Si quitas el acceso de Logging a una clave, puede tardar hasta una hora para que se aplique el cambio.

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:SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
    --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
    --location=KMS_KEY_LOCATION \
    --keyring=KMS_KEY_RING \
    KMS_KEY_NAME

Inhabilita CMEK

Si inhabilitas una CMEK para una organización o una carpeta, se quitará la aplicación de la política de CMEK solo para operaciones futuras; cualquier configuración aplicada anteriormente permanece intacta.

Para inhabilitar una CMEK en un recurso que tenga una CMEK configurada como configuración de recursos predeterminada, ejecuta el siguiente comando de Google Cloud CLI:

CARPETA

gcloud logging settings update --folder=FOLDER_ID --clear-kms-key

ORGANIZACIÓN

gcloud logging settings update --organization=ORGANIZATION_ID --clear-kms-key

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 automáticamente la encriptación para archivos temporales de recuperación ante desastres cuando la clave asociada con la organización o la carpeta rotada 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 configura CMEK como un parámetro de configuración de recursos predeterminado para Logging.

Falta de disponibilidad del archivo de recuperación ante desastres

Una clave de Cloud KMS se considera disponible y accesible Realiza el registro cuando se cumplan las siguientes condiciones:

  • La clave está habilitada.
  • La cuenta de servicio de Logging tiene permisos de encriptación y desencriptación en la clave.

Si Logging pierde el acceso a la clave de Cloud KMS, Logging no puede escribir archivos temporales de recuperación ante desastres y, para los usuarios, las consultas dejan 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 podría verse afectado Logging no puede escribir los archivos temporales necesarios para facilitar el enrutamiento. Si se produce un error durante la encriptación o desencriptación de datos, Luego, se envía una notificación al proyecto de Google Cloud que contiene los 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 que la clave de Cloud EKM no está disponible

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 vuelve a intentar acceder a la clave de forma continua. Cloud Logging también almacena en búfer los datos de registro entrantes por hasta una hora. Después de una hora, si Cloud Logging aún no puede acceder al servidor administrada, Cloud Logging comienza a descartar los datos.

Si CMEK se aplica a un bucket de registros y, si una clave administrada de forma externa no está disponible, Cloud Logging sigue almacenando registros en buckets de registros, pero los usuarios no podrán acceder a ellos.

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

Si necesitas información para solucionar errores de configuración de CMEK, consulta Soluciona problemas de CMEK y errores de configuración predeterminada.