Cloud KMS での Cloud Audit Logging の使用

Cloud Audit Logging を使用すると、Cloud Key Management Service で実行されたすべてのオペレーションのログを生成できます。

ログの内容

監査ログの種類

監査ログには次の 2 種類があります。

  • 管理アクティビティ ログには、プロジェクトの構成やメタデータを変更するオペレーションが記録されます。

  • データアクセス ログには、構成やメタデータを読み取るオペレーション、またはユーザー提供データの作成、読み取り、変更を行うオペレーションが記録されます。データアクセス ログには、複数のログエントリ タイプがあります。

    • "ADMIN_READ": メタデータや構成情報を読み取ります。管理アクティビティ ログにはすでにメタデータの書き込みが記録されています。
    • "DATA_READ": ユーザー提供データを読み取ります。
    • "DATA_WRITE": ユーザー提供データを書き込みます。

次の表は、Cloud KMS の各ログエントリ タイプに対応するオペレーションをまとめたものです。

ログエントリのタイプ オペレーション
管理アクティビティ
  • cloudkms.projects.locations.keyRings.create
  • cloudkms.projects.locations.keyRings.setIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.create
  • cloudkms.projects.locations.keyRings.cryptoKeys.patch
  • cloudkms.projects.locations.keyRings.cryptoKeys.setIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.updatePrimaryVersion
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.create
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.patch
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.restore
データアクセス ADMIN_READ
  • cloudkms.projects.locations.get
  • cloudkms.projects.locations.list
  • cloudkms.projects.locations.keyRings.get
  • cloudkms.projects.locations.keyRings.getIamPolicy
  • cloudkms.projects.locations.keyRings.list
  • cloudkms.projects.locations.keyRings.testIamPermissions
  • cloudkms.projects.locations.keyRings.cryptoKeys.get
  • cloudkms.projects.locations.keyRings.cryptoKeys.list
  • cloudkms.projects.locations.keyRings.cryptoKeys.getIamPolicy
  • cloudkms.projects.locations.keyRings.cryptoKeys.testIamPermissions
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.get
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.list
DATA_READ
  • cloudkms.projects.locations.keyRings.cryptoKeys.decrypt
  • cloudkms.projects.locations.keyRings.cryptoKeys.encrypt
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricDecrypt
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricSign
  • cloudkms.projects.locations.keyRings.cryptoKeys.cryptoKeyVersions.getPublicKey
DATA_WRITE なし

ロギングの構成

デフォルトのロギング

管理アクティビティはデフォルトでログに記録され、ログ取り込み割り当ての計算対象にはなりません。

Cloud KMS でのデータアクセスはデフォルトではログに記録されません。データアクセス オペレーションは大量になり、ログ取り込み割り当ての計算対象になります。

データアクセス ログの有効化

データアクセス オペレーションのログを有効にするには、サービス cloudkms.googleapis.comAuditConfig オブジェクトを更新します。AuditConfig オブジェクトは、プロジェクトや個々のリソース(鍵リングや鍵など)に関連付けられる Cloud Identity and Access Management ポリシーの一部です。ポリシーの読み取りと書き込みは、GetIamPolicySetIamPolicy、および gcloud kms keys get-iam-policygcloud kms keys set-iam-policy などの gcloud コマンドを使用して行うことができます。

ポリシーを更新するときは、最初に getIamPolicy() またはこれに相当する gcloud コマンドを使用してポリシーを取得し、ポリシーを更新した後、setIamPolicy() またはこれに相当する gcloud コマンドを使用してその更新したポリシーを書き込みます。ポリシーを設定するときに etag 値を使用するのは、取得したポリシーに etag 値が含まれている場合に限られます。Cloud Identity and Access Management は、Cloud IAM ポリシーの etag プロパティを使用して、2 つ以上の独立したプロセスがポリシーの書き込みを試みるときの競合を防止します。Cloud IAM ポリシーの etag プロパティの詳細については、ポリシーの設定をご覧ください。

すべてのメンバーに対して暗号化オペレーションと復号オペレーションのログを有効にする場合は、まず既存のポリシーを取得し、次の監査ログの構成を追加します。

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

gcloud コマンドライン ツールを使用して単一の鍵のデータアクセス ログを有効にするには、まず次のコマンドを実行してローカル ファイル /tmp/policy.json のポリシーを取得します。

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

構成のないポリシーには etag 値のみが含まれます(etag の値は異なる場合があります)。

{
  "etag": "ACAB"
}

次に、ポリシーを必要な監査設定で更新します。次に例を示します(ACAB の代わりに etag 値を使用します)。

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

次のコマンドを実行してポリシーを設定できます。

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

詳しくは、データアクセス ログの構成をご覧ください。

ログの形式

Cloud KMS ログの形式は他の Cloud Audit Logging と同じで、AuditLog オブジェクトを使用します。ログには次のものが格納されます。

  • リクエストを行ったユーザー(ユーザーのメールアドレスなど)
  • リクエストが行われたリソース名
  • リクエストの結果

ログへのアクセス

権限

プロジェクトのすべてのユーザーは、管理アクティビティ ログを表示できます。データアクセス ログを表示するには、少なくともオーナーの役割、またはプライベート ログ閲覧者の役割が必要です。これらの構成方法については、Cloud IAM と Cloud KMS の使用をご覧ください。

ログの表示

Cloud Platform Console のアクティビティ ストリームに、プロジェクトの Cloud Audit Logs を表示できます。また、ログビューアで詳細なログを見ることもできます。ログビューアでログをフィルタする方法の詳細については、Cloud Audit Logging のドキュメントを参照してください。

必要に応じて、ログをエクスポートすることもできます。

次のステップ

Cloud KMS リソースのモニタリングで、ログに記録されたアクティビティに対するアラートを作成する方法について学習します。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud KMS ドキュメント