Cloud Audit Logs の概要

このドキュメントでは、Cloud Audit Logs の概要について説明します。

Trusted Cloud by S3NS サービスでは、管理アクティビティと、 Trusted Cloud リソース内のアクセスを記録する監査ログを書き込みます。監査ログにより、 Trusted Cloud リソース内でオンプレミス環境と同じレベルの透明性を確保しながら「いつ誰がどこで何をしたか」という問いに答えることができます。監査ログを有効にすると、セキュリティ、監査、コンプライアンス エンティティがTrusted Cloud のデータとシステムをモニタリングして、脆弱性や外部データの不正使用の可能性を確認できます。

監査ログを生成するTrusted Cloud by S3NS サービス

監査ログを提供する Trusted Cloud サービスの一覧については、監査ログを備えたTrusted Cloud by S3NS サービスをご覧ください。最終的には、すべてのTrusted Cloud サービスが監査ログを提供するようになります。

必要なロール

監査ログを表示するには、適切な Identity and Access Management(IAM)の権限とロールが必要です。

  • 管理アクティビティ、ポリシー拒否、システム イベントの監査ログへの読み取り専用アクセスに必要な権限を取得するには、プロジェクトに対するログ閲覧者roles/logging.viewer)の IAM ロールを付与するように管理者へ依頼してください。

    ログ閲覧者のロール (roles/logging.viewer) しか持っていない場合、_Default バケット内のデータアクセス監査ログを閲覧することはできません。

  • データアクセス ログを含む、_Required バケットと _Default バケットのすべてのログに対するアクセス権の取得に必要な権限を取得するには、プロジェクトに対するプライベート ログ閲覧者roles/logging.privateLogViewer)の IAM ロールを付与するように管理者へ依頼してください。

    プライベート ログ閲覧者のロール (roles/logging.privateLogViewer) には、ログ閲覧者のロール(roles/logging.viewer)に含まれる権限と、_Default バケット内のデータアクセス監査ログの読み取りに必要な権限が含まれます。

監査ログデータに適用される IAM の権限とロールの詳細については、IAM によるアクセス制御をご覧ください。

監査ログの種類

Cloud Audit Logs では、Trusted Cloud プロジェクト、フォルダ、組織ごとに以下の監査ログが保存されます。

管理アクティビティ監査ログ

管理アクティビティ監査ログは、リソースの構成やメタデータを変更するユーザー主導の API 呼び出しやその他のアクションによって書き込まれるログエントリです。これらのログは、たとえば、ユーザーが VM インスタンスを作成したときや Identity and Access Management 権限を変更したときに記録されます。

管理アクティビティの監査ログは必ず記録されます。構成、除外、無効化はできません。Cloud Logging API を無効にしても、管理アクティビティ監査ログは生成されます。

管理アクティビティ監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたTrusted Cloud by S3NS サービスをご覧ください。

データアクセス監査ログ

データアクセス監査ログは、リソースの構成やメタデータを読み取る API 呼び出しによって書き込まれるログエントリです。ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しによっても書き込まれます。

Identity and Access Management ポリシー allAuthenticatedUsers または allUsers を使用する一般公開されたリソースでは、監査ログは生成されません。 Trusted Cloud にログインせずにアクセスできるリソースでは、監査ログは生成されません。これにより、エンドユーザー ID と情報が保護されます。

監査ログはデータサイズが非常に大きくなる可能性があるため、BigQuery データアクセス監査ログを除き、データアクセス監査ログはデフォルトで無効になっています。BigQuery 以外の Trusted Cloud サービスのデータアクセス監査ログを書き込むには、これらのログを明示的に有効にする必要があります。ログを有効にすると、 Trusted Cloud プロジェクトに対して追加のログ使用料が請求される可能性があります。データアクセス監査ログを有効にして構成する手順については、データアクセス監査ログを有効にするをご覧ください。

データアクセス監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたTrusted Cloud by S3NS サービスをご覧ください。

別の場所に転送されない限り、データアクセス監査ログは、_Default ログバケットに保存されます。詳細については、このページの監査ログの保存と転送をご覧ください。

システム イベント監査ログ

システム イベント監査ログは、リソースの構成を変更する Trusted Cloud システムによって書き込まれるログエントリです。システム イベント監査ログは、ユーザーの直接的なアクションによって生成されることはありません。たとえば、自動スケーリングによりマネージド インスタンス グループ(MIG)に対して VM が自動的に追加または削除されると、システム イベント監査ログが書き込まれます。

システム イベント監査ログは常に書き込まれます。構成したり、除外したり、無効にすることはできません。

システム イベント監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたTrusted Cloud by S3NS サービスをご覧ください。

ポリシー拒否監査ログ

ポリシー拒否監査ログは、セキュリティ ポリシー違反が原因で Trusted Cloud by S3NS サービスがユーザー アカウントまたはサービス アカウントのアクセスを拒否した場合に書き込まれるログエントリです。

ポリシー拒否監査ログはデフォルトで生成され、Trusted Cloud プロジェクトにはログストレージの料金が発生します。ポリシー拒否監査ログを無効にすることはできませんが、除外フィルタを使用して、ポリシー拒否監査ログの Cloud Logging への保存を防ぐことはできます。

ポリシー拒否監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたTrusted Cloud by S3NS サービスをご覧ください。

監査ログエントリの構造

Cloud Logging では、監査ログエントリはすべて LogEntry タイプのオブジェクトになります。監査ログエントリと他のログエントリを区別するのは、protoPayload フィールドです。このフィールドには、監査ロギングデータを格納する AuditLog オブジェクトが含まれています。

監査ログエントリの読み取りと解釈の方法と、監査ログエントリのサンプルについては、監査ログについてをご覧ください。

ログ名

Cloud Audit Logs のログ名は次のとおりです。

  • 監査ログを所有する Trusted Cloud プロジェクトまたは他の Trusted Cloud エンティティを示すリソース識別子。

  • 文字 cloudaudit.googleapis.com

  • ログに管理アクティビティ、データアクセス、ポリシー拒否、システム イベントの監査ロギングデータが含まれているかどうかを示す文字列。

リソース識別子の変数を含む監査ログ名は次のとおりです。

   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy

   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event
   organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy

監査ログの呼び出し元 ID

監査ログには、ログに記録されたオペレーションをTrusted Cloud リソースに対して実行した ID が記録されます。呼び出し元の ID は、AuditLog オブジェクトの AuthenticationInfo フィールドに保持されます。

成功したアクセスや書き込みオペレーションの呼び出し元のメールアドレスは、監査ロギングによって編集されません。

「権限が拒否されました」というエラーで失敗した読み取り専用オペレーションの場合、Audit Logging で呼び出し元の主要メールアドレスを秘匿化する必要があります(呼び出し元がサービス アカウントである場合を除く)。

特定のTrusted Cloud サービスには、上記の条件に加えて以下が適用されます。

  • BigQuery: 特定の条件が満たされない限り、発信者の ID と IP アドレスに加えて、一部のリソース名が監査ログから削除されます。

  • Cloud Storage: Cloud Storage の使用状況ログが有効になっている場合、Cloud Storage は Cloud Storage バケットに使用状況データを書き込みます。これにより、バケットのデータアクセスの監査ログが生成されます。生成されたデータアクセスの監査ログには、呼び出し元の ID が含まれます。

  • 組織のポリシー: 発信者のメールアドレスの一部が秘匿化されて、3 つのピリオド文字 ... に置き換えられます。

監査ログの呼び出し元の IP アドレス

呼び出し元の IP アドレスは、AuditLog オブジェクトの RequestMetadata.callerIp フィールドに保持されます。

  • インターネットからの呼び出し元の場合、このアドレスはパブリック IPv4 またはパブリック IPv6 アドレスです。
  • 内部の本番環境ネットワーク内で 1 つのTrusted Cloud by S3NS サービスから他の Google Cloud サービスに対して行われた呼び出しの場合、callerIp は「private」に秘匿化されます。
  • 外部 IP アドレスを持つ Compute Engine VM から呼び出し元を呼び出す場合、callerIp は VM の外部アドレスです。
  • 外部 IP アドレスのない Compute Engine VM からの呼び出し元の場合、VM がアクセス先のリソースと同じ組織またはプロジェクトにあると、callerIp は VM の内部 IPv4 アドレスです。それ以外の場合、callerIp は「gce-internal-ip」に秘匿化されます。詳細については、VPC ネットワークの概要をご覧ください。

監査ログの表示

すべての監査ログに対してクエリを実行することも、監査ログ名でログをクエリすることもできます。監査ログ名には、監査ロギング情報を表示する Trusted Cloud プロジェクト、フォルダ、請求先アカウント、または組織のリソース識別子が含まれています。クエリでは、インデックス付きの LogEntry フィールドを指定できます。ログのクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。

ほとんどの監査ログは、Trusted Cloud コンソール、Google Cloud CLI、または Logging API を使用して Cloud Logging で表示できます。ただし、課金に関連する監査ログの場合は、Google Cloud CLI または Logging API のみを使用できます。

コンソール

Trusted Cloud コンソールでは、ログ エクスプローラを使用して、 Trusted Cloud プロジェクト、フォルダ、または組織の監査ログエントリを取得できます。

  1. Trusted Cloud コンソールで [ログ エクスプローラ] ページに移動します。

    [ログ エクスプローラ] に移動

    このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。

  2. 既存の Trusted Cloud プロジェクト、フォルダ、または組織を選択します。

  3. すべての監査ログを表示するには、次のいずれかのクエリを [クエリエディタ] フィールドに入力し、[クエリを実行] をクリックします。

    logName:"cloudaudit.googleapis.com"
    
    protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
    
  4. 特定のリソースと監査ログタイプの監査ログを表示するには、[クエリビルダー] ペインで次の操作を行います。

    • [リソースタイプ] で、表示する監査ログを含む Trusted Cloud リソースを選択します。

    • [ログ名] で、表示する監査ログタイプを選択します。

      • 管理アクティビティ監査ログの場合は、[activity] を選択します。
      • データアクセス監査ログの場合は、[data_access] を選択します。
      • システム イベント監査ログの場合は、[system_event] を選択します。
      • ポリシー拒否監査ログの場合は、[policy] を選択します。
    • [クエリを実行] をクリックします。

    これらのオプションが表示されない場合、 Trusted Cloud プロジェクト、フォルダ、または組織で利用可能なその種類の監査ログは存在しないことを意味します。

    ログ エクスプローラでログを表示する際に問題が発生した場合は、トラブルシューティングの情報をご覧ください。

    ログ エクスプローラを使用したクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。

gcloud

Google Cloud CLI は、Logging API へのコマンドライン インターフェースを提供します。ログ名ごとに有効なリソース識別子を指定します。たとえば、クエリに PROJECT_ID が含まれている場合、指定するプロジェクト ID は、現在選択されたTrusted Cloud プロジェクトを参照している必要があります。

Trusted Cloud プロジェクト レベルの監査ログエントリを読み取るには、次のコマンドを実行します。

gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \
    --project=PROJECT_ID

フォルダレベルの監査ログエントリを読み取るには、次のコマンドを実行します。

gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \
    --folder=FOLDER_ID

組織レベルの監査ログエントリを読み取るには、次のコマンドを実行します。

gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \
    --organization=ORGANIZATION_ID

Cloud 請求先アカウント レベルの監査ログエントリを読み取るには、次のコマンドを実行します。

gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \
    --billing-account=BILLING_ACCOUNT_ID

1 日以上経過したログを読み取るには、コマンドに --freshness フラグを追加します。

gcloud CLI の使用方法に関する詳細については、gcloud logging read をご覧ください。

REST

Cloud Logging API を使用してログデータをクエリするには、entries.list メソッドを使用します。

監査ログの保存と転送

Cloud Logging では、ログデータを保存して整理するためのコンテナとしてログバケットを使用します。請求先アカウント、Trusted Cloud プロジェクト、フォルダ、組織ごとに、Logging によって自動的に _Required_Default という 2 つのログバケットと、対応する名前のシンクが作成されます。

Cloud Logging の _Required バケットには、管理アクティビティ監査ログとシステム イベント監査ログが保存されます。管理アクティビティまたはシステム イベントの監査ログの保存を無効にすることはできません。また、ログエントリを _Required バケットに転送するシンクを構成することもできません。

管理アクティビティ監査ログとシステム イベント監査ログは常に、ログが生成されたプロジェクトの _Required バケットに保存されます。

管理アクティビティ監査ログとシステム イベント監査ログを別のプロジェクトに転送すると、それらのログは、宛先プロジェクトの _Default シンクまたは _Required シンクをパススルーしません。したがって、これらのログは、宛先プロジェクトの _Default ログバケットまたは _Required ログバケットに保存されません。これらのログを保存するには、宛先プロジェクトにログシンクを作成します。詳細については、サポートされている宛先にログを転送するをご覧ください。

_Default バケットは、デフォルトで有効なデータアクセス監査ログとポリシー拒否監査ログを保存します。データアクセス監査ログが _Default バケットに保存されないようにするには、ログを無効にします。ポリシー拒否監査ログが _Default バケットに保存されないようにするには、シンクのフィルタを変更してポリシー拒否監査ログを除外します。

監査ログエントリを、 Trusted Cloud プロジェクト レベルでユーザー定義の Cloud Logging バケットに転送したり、シンクを使用して Logging の外部でサポートされている宛先に転送することもできます。ログの転送手順については、サポートされている宛先にログを転送するをご覧ください。

ログシンクのフィルタを構成するときは、転送する監査ログの種類を指定する必要があります。フィルタリング例については、セキュリティ ロギングのクエリをご覧ください。

Trusted Cloud 組織、フォルダ、請求先アカウントとその子に対する監査ログエントリを転送する場合は、集約シンクの概要をご覧ください。

監査ログの保持期間

Logging でログエントリが保持される期間の詳細については、割り当てと上限: ログの保持期間で保持情報をご覧ください。

アクセス制御

IAM の権限とロールによって、Logging APIログ エクスプローラGoogle Cloud CLI内の監査ログデータにアクセス可能かどうか判断されます。

必要となる IAM の権限とロールの詳細については、IAM によるアクセス制御をご覧ください。

割り当てと上限

監査ログの最大サイズを含む、ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。

次のステップ