Cloud Key Management Service audit logging

Cloud Key Management Service is updating the format of the protoPayload field in its Data Access audit log entries. During the migration period, the protoPayload within Data Access audit log entries will remain backward-compatible. However, new or future code applications should use the recommended replacement fields as follows:

Recommended replacement field Deprecated field Description
protoPayload.status.details protoPayload.metadata Error detail for EXTERNAL (i.e., Cloud EKM) key operations.
protoPayload.metadata.entries.caller_provided_context protoPayload.request.caller_provided_context Context from the caller associated with this Cloud KMS operation.


This document describes audit logging for Cloud Key Management Service. Google Cloud services write audit logs that record administrative activities and accesses within your Google Cloud resources. For more information, see Cloud Audit Logs overview.

Service name

Cloud Key Management Service audit logs use the service name cloudkms.googleapis.com.

Methods by permission type

Methods that check DATA_READ, DATA_WRITE, and ADMIN_READ permission types are Data Access audit logs. Methods that check ADMIN_WRITE permission types are Admin Activity audit logs.

Permission type Methods
ADMIN_READ GetCryptoKey
GetCryptoKeyVersion
GetEkmConfig
GetEkmConnection
GetIamPolicy
GetImportJob
GetKeyRing
ListCryptoKeyVersions
ListCryptoKeys
ListEkmConnections
ListImportJobs
ListKeyRings
VerifyConnectivity
google.cloud.kms.v1.Autokey.GetKeyHandle
google.cloud.kms.v1.Autokey.ListKeyHandles
google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig
google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig
ADMIN_WRITE CreateCryptoKey
CreateCryptoKeyVersion
CreateEkmConnection
CreateImportJob
CreateKeyRing
DestroyCryptoKeyVersion
GetOperation
ImportCryptoKeyVersion
RestoreCryptoKeyVersion
SetIamPolicy
UpdateCryptoKey
UpdateCryptoKeyPrimaryVersion
UpdateCryptoKeyVersion
UpdateEkmConfig
UpdateEkmConnection
google.cloud.kms.v1.Autokey.CreateKeyHandle
google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig
DATA_READ AsymmetricDecrypt
AsymmetricSign
Decrypt
Encrypt
GetPublicKey
MacSign
MacVerify
RawDecrypt
RawEncrypt

Audit logs per API interface

For information about which permissions are evaluated and how for each method, see the Identity and Access Management documentation for Cloud Key Management Service.

google.cloud.kms.v1.Autokey

Details about audit logs associated with methods belonging to google.cloud.kms.v1.Autokey.

google.cloud.kms.v1.Autokey.CreateKeyHandle

  • Method: google.cloud.kms.v1.Autokey.CreateKeyHandle
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.keyHandles.create - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: Long Running Operation
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.Autokey.CreateKeyHandle"

google.cloud.kms.v1.Autokey.GetKeyHandle

  • Method: google.cloud.kms.v1.Autokey.GetKeyHandle
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.keyHandles.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.Autokey.GetKeyHandle"

google.cloud.kms.v1.Autokey.ListKeyHandles

  • Method: google.cloud.kms.v1.Autokey.ListKeyHandles
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.keyHandles.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.Autokey.ListKeyHandles"

google.cloud.kms.v1.AutokeyAdmin

Details about audit logs associated with methods belonging to google.cloud.kms.v1.AutokeyAdmin.

google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig

  • Method: google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.autokeyConfigs.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.AutokeyAdmin.GetAutokeyConfig"

google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig

  • Method: google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.projects.showEffectiveAutokeyConfig - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.AutokeyAdmin.ShowEffectiveAutokeyConfig"

google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig

  • Method: google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.autokeyConfigs.update - ADMIN_WRITE
    • cloudkms.cryptoKeys.setIamPolicy - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="google.cloud.kms.v1.AutokeyAdmin.UpdateAutokeyConfig"

google.cloud.kms.v1.EkmService

Details about audit logs associated with methods belonging to google.cloud.kms.v1.EkmService.

CreateEkmConnection

  • Method: CreateEkmConnection
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.ekmConnections.create - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="CreateEkmConnection"

GetEkmConfig

  • Method: GetEkmConfig
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.ekmConfigs.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetEkmConfig"

GetEkmConnection

  • Method: GetEkmConnection
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.ekmConnections.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetEkmConnection"

ListEkmConnections

  • Method: ListEkmConnections
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.ekmConnections.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ListEkmConnections"

UpdateEkmConfig

  • Method: UpdateEkmConfig
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.ekmConfigs.update - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="UpdateEkmConfig"

UpdateEkmConnection

  • Method: UpdateEkmConnection
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.ekmConnections.update - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="UpdateEkmConnection"

VerifyConnectivity

  • Method: VerifyConnectivity
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.ekmConnections.verifyConnectivity - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="VerifyConnectivity"

google.cloud.kms.v1.KeyManagementService

Details about audit logs associated with methods belonging to google.cloud.kms.v1.KeyManagementService.

AsymmetricDecrypt

  • Method: AsymmetricDecrypt
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToDecrypt - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="AsymmetricDecrypt"

AsymmetricSign

  • Method: AsymmetricSign
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToSign - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="AsymmetricSign"

CreateCryptoKey

  • Method: CreateCryptoKey
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.manageRawDsaKeys - ADMIN_WRITE
    • cloudkms.cryptoKeyVersions.manageRawPKCS1Keys - ADMIN_WRITE
    • cloudkms.cryptoKeys.create - ADMIN_WRITE
    • cloudkms.ekmConnections.use - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="CreateCryptoKey"

CreateCryptoKeyVersion

  • Method: CreateCryptoKeyVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.create - ADMIN_WRITE
    • cloudkms.cryptoKeyVersions.manageRawPKCS1Keys - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="CreateCryptoKeyVersion"

CreateImportJob

  • Method: CreateImportJob
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.importJobs.create - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="CreateImportJob"

CreateKeyRing

  • Method: CreateKeyRing
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.keyRings.create - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="CreateKeyRing"

Decrypt

  • Method: Decrypt
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToDecrypt - DATA_READ
    • cloudkms.cryptoKeyVersions.useToDecryptViaDelegation - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="Decrypt"

DestroyCryptoKeyVersion

  • Method: DestroyCryptoKeyVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.destroy - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="DestroyCryptoKeyVersion"

Encrypt

  • Method: Encrypt
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToEncrypt - DATA_READ
    • cloudkms.cryptoKeyVersions.useToEncryptViaDelegation - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="Encrypt"

GetCryptoKey

  • Method: GetCryptoKey
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeys.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetCryptoKey"

GetCryptoKeyVersion

  • Method: GetCryptoKeyVersion
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetCryptoKeyVersion"

GetImportJob

  • Method: GetImportJob
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.importJobs.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetImportJob"

GetKeyRing

  • Method: GetKeyRing
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.keyRings.get - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetKeyRing"

GetPublicKey

  • Method: GetPublicKey
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.viewPublicKey - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetPublicKey"

ImportCryptoKeyVersion

  • Method: ImportCryptoKeyVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.create - ADMIN_WRITE
    • cloudkms.cryptoKeyVersions.manageRawDsaKeys - ADMIN_WRITE
    • cloudkms.cryptoKeyVersions.manageRawPKCS1Keys - ADMIN_WRITE
    • cloudkms.cryptoKeyVersions.update - ADMIN_WRITE
    • cloudkms.importJobs.useToImport - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ImportCryptoKeyVersion"

ListCryptoKeyVersions

  • Method: ListCryptoKeyVersions
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ListCryptoKeyVersions"

ListCryptoKeys

  • Method: ListCryptoKeys
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeys.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ListCryptoKeys"

ListImportJobs

  • Method: ListImportJobs
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.importJobs.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ListImportJobs"

ListKeyRings

  • Method: ListKeyRings
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.keyRings.list - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="ListKeyRings"

MacSign

  • Method: MacSign
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToSign - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="MacSign"

MacVerify

  • Method: MacVerify
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToVerify - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="MacVerify"

RawDecrypt

  • Method: RawDecrypt
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToDecrypt - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="RawDecrypt"

RawEncrypt

  • Method: RawEncrypt
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeyVersions.useToEncrypt - DATA_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="RawEncrypt"

RestoreCryptoKeyVersion

  • Method: RestoreCryptoKeyVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.restore - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="RestoreCryptoKeyVersion"

UpdateCryptoKey

  • Method: UpdateCryptoKey
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.manageRawPKCS1Keys - ADMIN_WRITE
    • cloudkms.cryptoKeys.update - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="UpdateCryptoKey"

UpdateCryptoKeyPrimaryVersion

  • Method: UpdateCryptoKeyPrimaryVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeys.update - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="UpdateCryptoKeyPrimaryVersion"

UpdateCryptoKeyVersion

  • Method: UpdateCryptoKeyVersion
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeyVersions.update - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="UpdateCryptoKeyVersion"

google.iam.v1.IAMPolicy

Details about audit logs associated with methods belonging to google.iam.v1.IAMPolicy.

GetIamPolicy

  • Method: GetIamPolicy
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.cryptoKeys.getIamPolicy - ADMIN_READ
    • cloudkms.ekmConfigs.getIamPolicy - ADMIN_READ
    • cloudkms.ekmConnections.getIamPolicy - ADMIN_READ
    • cloudkms.importJobs.getIamPolicy - ADMIN_READ
    • cloudkms.keyRings.getIamPolicy - ADMIN_READ
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetIamPolicy"

SetIamPolicy

  • Method: SetIamPolicy
  • Audit log Type: Admin Activity
  • Permissions:
    • cloudkms.cryptoKeys.setIamPolicy - ADMIN_WRITE
    • cloudkms.ekmConfigs.setIamPolicy - ADMIN_WRITE
    • cloudkms.ekmConnections.setIamPolicy - ADMIN_WRITE
    • cloudkms.importJobs.setIamPolicy - ADMIN_WRITE
    • cloudkms.keyRings.setIamPolicy - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="SetIamPolicy"

google.longrunning.Operations

Details about audit logs associated with methods belonging to google.longrunning.Operations.

GetOperation

  • Method: GetOperation
  • Audit log Type: Data Access
  • Permissions:
    • cloudkms.keyHandles.create - ADMIN_WRITE
  • Method is a Long Running Operation or Streaming: No.
  • Filter for this method: protoPayload.methodName="GetOperation"

Methods that don't produce audit logs

Generally methods don't produce audit logs because they are high volume and doing so would be very expensive, or because the method has low auditing value, or because another audit or platform log already provides coverage for what the method does.

The following methods don't produce audit logs:

  • google.cloud.kms.v1.KeyManagementService.GenerateRandomBytes
  • google.cloud.location.Locations.GetLocation
  • google.cloud.location.Locations.ListLocations