Cómo usar Cloud Audit Logging con Cloud KMS

Puedes usar Cloud Audit Logging para generar registros de todas las operaciones que se realizan en Cloud Key Management Service.

¿Qué se registra?

Tipos de registros de auditoría

Hay dos tipos de registros de auditoría:

  • Los registros de actividad de administradores, que contienen entradas de las operaciones que modifican la configuración o los metadatos de un proyecto.

  • Los registros de acceso a los datos, que contienen entradas de las operaciones que leen una configuración o metadatos, o bien crean, leen o modifican los datos que suministra un usuario. Entre estos, podemos encontrar varios tipos de entradas de registro:

    • "ADMIN_READ": lecturas de metadatos o información de configuración (los registros de actividad de administradores ya recopilan las escrituras de metadatos)
    • "DATA_READ": lecturas de datos que suministran los usuarios
    • "DATA_WRITE": escrituras de datos que suministran los usuarios

En la siguiente tabla, se resumen las operaciones correspondientes a cada tipo de entrada de registro en Cloud KMS:

Tipo de entrada de registro Operaciones
Actividad del administrador
  • cloudkms.projects.locations.keyRings.create
  • cloudkms.projects.locations.keyRings.cryptoKeys.create
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create
  • cloudkms.projects.locations.keyRings.cryptoKeys.patch
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch
  • cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion
  • cloudkms.projects.locations.keyRings.setIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore
Acceso a los datos ADMIN_READ
  • cloudkms.projects.locations.list
  • cloudkms.projects.locations.keyRings.list
  • cloudkms.projects.locations.keyRings.cryptoKeys.list
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list
  • cloudkms.projects.locations.get
  • cloudkms.projects.locations.keyRings.get
  • cloudkms.projects.locations.keyRings.cryptoKeys.get
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get
  • cloudkms.projects.locations.keyRings.getIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy
  • cloudkms.projects.locations.keyRings.testIamPermissions
  • cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions
DATA_READ
  • cloudkms.projects.locations.keyRings.cryptoKeys.encrypt
  • cloudkms.projects.locations.keyRings.cryptoKeys.decrypt
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricDecrypt (versión Beta)
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricSign (versión Beta)
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.getPublicKey (versión Beta)
DATA_WRITE Ninguna

Configuración del registro

Registro predeterminado

La actividad administrativa se registra de forma predeterminada y no se considera en la cuota de transferencia de registros.

En Cloud KMS, el acceso a los datos no se registra de forma predeterminada. Las operaciones de acceso a datos comprenden un volumen alto y se consideran en la cuota de transferencia de registros.

Habilitación de los registros de acceso a los datos

A fin de habilitar los registros de operaciones de acceso a los datos, actualiza el objeto AuditConfig para el servicio cloudkms.googleapis.com. El objeto AuditConfig forma parte de la política de Cloud Identity and Access Management asociada con los proyectos y los recursos individuales, como los llaveros de claves y las claves. Para leer y escribir políticas, usa GetIamPolicy y SetIamPolicy o emplea comandos de gcloud, como gcloud kms keys get-iam-policy y gcloud kms keys set-iam-policy.

Antes de actualizar una política, recupérala con getIamPolicy() o su equivalente de gcloud, actualízala y luego escribe la política actualizada con setIamPolicy() o su equivalente de gcloud. Usa el valor etag cuando configures la política solo si la política recuperada contiene un valor etag. Cloud Identity and Access Management usa una propiedad etag en las políticas de Cloud IAM para prevenir los conflictos si dos o más procesos independientes intentan escribir una política. Consulta Configurar política para obtener más información sobre la propiedad etag en las políticas de Cloud IAM.

Para habilitar los registros de las operaciones de encriptación y desencriptación sin miembros eximidos, recupera la política existente y luego agrega la siguiente configuración de registro de auditoría:

{
  "service": "cloudkms.googleapis.com"
  "auditLogConfigs": [
    {
      "logType": "DATA_READ",
    },
    ...
  ]
},

A fin de habilitar los registros de acceso a los datos para una clave única con la herramienta de línea de comandos de gcloud, primero recupera la política en el archivo local /tmp/policy.json mediante la siguiente operación:

gcloud kms keys get-iam-policy \
  projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY] \
  --format=json > /tmp/policy.json

Una política sin configuración solo contendrá un valor etag (es posible que tengas un valor distinto para el etag):

{
  "etag": "ACAB"
}

Luego actualiza la política con la configuración de auditoría deseada. Por ejemplo, puedes usar el valor de etag en vez de ACAB:

{
   "auditConfigs": [
     {
       "auditLogConfigs": [
         {
           "logType": "DATA_READ"
         },
         {
           "logType": "ADMIN_READ"
         },
         {
           "logType": "DATA_WRITE"
         }
       ],
       "service": "cloudkms.googleapis.com"
     }
   ],
   "etag": "ACAB"
 }

Luego, ejecuta la siguiente operación para configurar la política:

gcloud kms keys set-iam-policy \
  projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEY_RING]/cryptoKeys/[KEY] \
  /tmp/policy.json

Obtén más información sobre Cómo configurar registros de acceso a los datos.

Formato de los registros

Los registros de Cloud KMS usan el mismo formato que otros registros de Cloud Audit Logging, mediante el objeto AuditLog. Los registros constan de los siguientes componentes:

  • El usuario que realizó la solicitud, incluida su dirección de correo electrónico
  • El nombre de recurso en el cual se realizó la solicitud
  • El resultado de la solicitud

Acceso a los registros

Permisos

Todos los usuarios del proyecto pueden ver los registros de actividad de los administradores. Para ver los registros de acceso a los datos, los usuarios necesitan la función de Propietario como mínimo, o la función de Visor de registros privados. Consulta la sección sobre cómo usar Cloud IAM con Cloud KMS, que trata sobre cómo configurar estas funciones.

Cómo ver registros

Puedes ver los registros de auditoría de Cloud de tu proyecto en el flujo de actividad de Cloud Platform Console, además de registros más detallados en el visor de registros. En la documentación de Cloud Audit Logging puedes encontrar instrucciones adicionales sobre cómo filtrar registros en el visor.

También puedes exportar los registros si lo deseas.

¿Qué sigue?

Revisa los recursos de Supervisión de Cloud KMS a fin de descubrir cómo crear alertas para las actividades registradas.

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Cloud KMS