アクティビティ ログから監査ログへの移行

Compute Engine のリソースに関するイベントを追跡するために以前のアクティビティ ログを使用している場合は、このガイドをお読みになり、代わりに監査ロギングを使用してログエントリを検索する方法を理解してください。

以前の Compute Engine のアクティビティ ログは、今後のリリースで非推奨となります。一部のアクティビティ ログのエントリは 2020 年 6 月 1 日をもってご利用いただけなくなります。

監査ログには、以前のアクティビティ ログなどと同じ情報が含まれています。ただし、監査ログには、アクティビティ ログとは異なる情報が表示されます。

アクティビティ ログの代わりに監査ログを使用するには、フィルタを適用するようにクエリを調整する必要があります。

アクティビティ ログ エントリと監査ログエントリの区別

監査ログと以前のアクティビティ ログにはそれぞれログ エントリ オブジェクトが含まれます。ただし、その内容は異なります。ログエントリを表示するクエリを発行する場合、アクティビティ ログから監査ログに移行する際にこうした違いを念頭に置いてください。

ログ名ペイロードが異なるログエントリの内容を調べることで、監査ログと以前のアクティビティ ログを区別できます。

ログエントリの例
以前のアクティビティ ログ

{
  insertId:  "1x3bbhjg2wwvz1x"
  jsonPayload: {…}
  labels: {…}
  logName:  "projects/[PROJECT_ID]/logs/compute.googleapis.com%2Factivity_log"
  receiveTimestamp:  "2019-08-26T12:22:44.602794616Z"
  ...
}
監査ログ

{
  insertId:  "-w6o499e22fwk"
  logName:  "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
  protoPayload: {…}
  receiveTimestamp:  "2019-08-26T12:22:46.881198276Z"
  ...
}

以前のアクティビティ ログ フィールドを監査ログフィールドにマッピングする方法については、ログ エントリ フィールドのマッピングをご覧ください。

アクティビティ ログから監査ログへのログ エントリ フィールドのマッピング

監査ログには、アクティビティ ログと同じ情報が含まれています。ただし、ログ エントリ フィールドの名前が異なる可能性があります。また、値が異なる可能性もあります。

フィールド名

次の表を参考にして、以前のアクティビティ ログのフィールド名を監査ログのフィールド名にマッピングしてください。たとえば、以前のアクティビティ ログのクエリに jsonPayload.resource.type に基づくフィルタが含まれていた場合、代わりに resource.type に基づいて新しい監査ログのクエリをフィルタリングする必要があります。

以前のアクティビティ ログのフィールド名 監査ログのフィールド名
insertId insertId
jsonPayload.actor.user protoPayload.authenticationInfo.principalEmail
jsonPayload.event_subtype protoPayload.methodName
jsonPayload.event_timestamp_us resource.timestamp
jsonPayload.request protoPayload.request
jsonPayload.operation operation
jsonPayload.resource.id resource.lablels.instance_id
jsonPayload.resource.name protoPayload.resourceName
jsonPayload.resource.type resource.type
jsonPayload.resource.zone resource.labels.zone
jsonPayload.trace_id operation.id
jsonPayload.user_agent protoPayload.requestMetadata.callerSuppliedUserAgent
labels.compute.googleapis.com/resource_id resource.labels.[RESOURCE_TYPE]_id
labels.compute.googleapis.com/resource_name protoPayload.resourceName
labels.compute.googleapis.com/resource_type resource.type
labels.compute.googleapis.com/resource_zone 次のいずれか:
  • resource.labels.zone
  • resource.labels.region
  • resource.labels.location
logName logName
receiveTimestamp receiveTimestamp
resource.labels resource.labels
severity severity
timestamp timestamp

フィールド値

アクティビティ ログと比較すると、監査ログではログ名ペイロードが異なり、バージョニングされたメソッド名が提供されます。

ログ名

監査ログには、cloudaudit.googleapis.com が含まれる logName があります。

ログ名ログの内容
以前のアクティビティ ログprojects/[PROJECT_ID]/logs/compute.googleapis.com%2Factivity_log管理アクティビティとシステム イベント
監査ログprojects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity管理アクティビティ
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_eventシステム イベント
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_accessデータアクセス

ペイロード

監査ログには、jsonPayload の代わりに protoPayload があります。

ペイロードの種類ペイロードの例
以前のアクティビティ ログjsonPayload

    jsonPayload: {
      actor: {…}
      event_subtype:  "compute.instances.start"
      event_timestamp_us:  "1566404493487248"
      event_type:  "GCE_API_CALL"
      ip_address:  ""
      operation: {…}
      request: {…}
      resource: {…}
      trace_id:  "operation-1566404491560-590a2f74b4705-a1ae0686-d896d772"
      user_agent:  "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"
      version:  "1.2"
    }
監査ログprotoPayload

    protoPayload: {
      @type:  "type.googleapis.com/google.cloud.audit.AuditLog"
      authenticationInfo: {…}
      methodName:  "v1.compute.instances.start"
      request: {…}
      requestMetadata: {…}
      resourceName:  "projects/[PROJECT_ID]/zones/us-central1-a/instances/alert"
      serviceName:  "compute.googleapis.com"
    }

これらのペイロードが互いにどのように関係しているか、以前のアクティビティ ログのフィールドを監査ログのフィールドにマッピングする方法については、ログエントリのフィールドのマッピングをご覧ください。

メソッド名

監査ログでは、API メソッド名(protoPayload.methodName フィールド内)の先頭に、v1.compute.instances.delete などのバージョンが接頭辞として付いています。

フィールドクエリの例
以前のアクティビティ ログjsonPayload.event_subtype[RESOURCE].[METHOD]jsonPayload.event_subtype=compute.instances.delete
監査ログprotoPayload.methodName[API_VERSION].[RESOURCE].[METHOD]protoPayload.methodName=v1.compute.instances.delete
または
protoPayload.methodName=beta.compute.instances.delete
または
protoPayload.methodName:compute.instances.delete

以前のアクティビティ ログのクエリでバージョニングされていない API メソッド名を使用している場合、引き続きそれらを使用できますが、必ず「equals」演算子(=)の代わりに「has」演算子(:)を使用してください。たとえば、protoPayload.methodName:compute.instances.delete はバージョンに関係なく、すべてのインスタンス削除 API 呼び出しを返します。演算子の詳細については、比較をご覧ください。

クエリの例

このセクションでは、アクティビティ ログの代わりに監査ログの使用を開始するためのクエリの例を示します。基本クエリと高度なクエリの詳細については、ログの表示をご覧ください。

最新の管理アクティビティ ログのエントリのクエリ

クエリの例
以前のアクティビティ ログlogName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Factivity_log"
監査ログlogName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"

最新のインスタンス作成ログのエントリのクエリ

クエリの例
以前のアクティビティ ログlogName="projects/[PROJECT_ID]/logs/compute.googleapis.com%2Factivity_log"
jsonPayload.event_subtype=compute.instances.insert
監査ログlogName="projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.methodName:compute.instances.insert

次のステップ