このドキュメントでは、Cloud Audit Logs の概要について説明します。
Cloud de Confiance by S3NS サービスでは、管理アクティビティと、 Cloud de Confiance リソース内のアクセスを記録する監査ログを書き込みます。監査ログにより、 Cloud de Confiance リソース内でオンプレミス環境と同じレベルの透明性を確保しながら「いつ誰がどこで何をしたか」という問いに答えることができます。監査ログを有効にすると、セキュリティ、監査、コンプライアンス エンティティがCloud de Confiance のデータとシステムをモニタリングして、脆弱性や外部データの不正使用の可能性を確認できます。
監査ログを生成するCloud de Confiance by S3NS サービス
監査ログを提供する Cloud de Confiance サービスの一覧については、監査ログを備えたCloud de Confiance by S3NS サービスをご覧ください。最終的には、すべてのCloud de Confiance サービスが監査ログを提供するようになります。
必要なロール
監査ログを表示するには、適切な 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 では、Cloud de Confiance プロジェクト、フォルダ、組織ごとに以下の監査ログが保存されます。
管理アクティビティ監査ログ
管理アクティビティ監査ログは、リソースの構成やメタデータを変更するユーザー主導の API 呼び出しやその他のアクションによって書き込まれるログエントリです。これらのログは、たとえば、ユーザーが VM インスタンスを作成したときや Identity and Access Management 権限を変更したときに記録されます。
管理アクティビティの監査ログは必ず記録されます。構成、除外、無効化はできません。Cloud Logging API を無効にしても、管理アクティビティ監査ログは生成されます。
管理アクティビティ監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたCloud de Confiance by S3NS サービスをご覧ください。
データアクセス監査ログ
データアクセス監査ログは、リソースの構成やメタデータを読み取る API 呼び出しによって書き込まれるログエントリです。ユーザー提供のリソースデータの作成、変更、読み取りを行うユーザー主導の API 呼び出しによっても書き込まれます。
Identity and Access Management ポリシー allAuthenticatedUsers
または allUsers
を使用する一般公開されたリソースでは、監査ログは生成されません。 Cloud de Confiance にログインせずにアクセスできるリソースでは、監査ログは生成されません。これにより、エンドユーザー ID と情報が保護されます。
監査ログはデータサイズが非常に大きくなる可能性があるため、BigQuery データアクセス監査ログを除き、データアクセス監査ログはデフォルトで無効になっています。BigQuery 以外の Cloud de Confiance サービスのデータアクセス監査ログを書き込むには、これらのログを明示的に有効にする必要があります。ログを有効にすると、 Cloud de Confiance プロジェクトに対して追加のログ使用料が請求される可能性があります。データアクセス監査ログを有効にして構成する手順については、データアクセス監査ログを有効にするをご覧ください。
データアクセス監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたCloud de Confiance by S3NS サービスをご覧ください。
別の場所に転送されない限り、データアクセス監査ログは、_Default
ログバケットに保存されます。詳細については、このページの監査ログの保存とルーティングをご覧ください。
システム イベント監査ログ
システム イベント監査ログは、リソースの構成を変更する Cloud de Confiance システムによって書き込まれるログエントリです。システム イベント監査ログは、ユーザーの直接的なアクションによって生成されることはありません。たとえば、自動スケーリングによりマネージド インスタンス グループ(MIG)に対して VM が自動的に追加または削除されると、システム イベント監査ログが書き込まれます。
システム イベント監査ログは常に書き込まれます。構成したり、除外したり、無効にすることはできません。
システム イベント監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたCloud de Confiance by S3NS サービスをご覧ください。
ポリシー拒否監査ログ
ポリシー拒否監査ログは、セキュリティ ポリシー違反が原因で Cloud de Confiance by S3NS サービスがユーザー アカウントまたはサービス アカウントのアクセスを拒否した場合に書き込まれるログエントリです。
ポリシー拒否監査ログはデフォルトで生成され、Cloud de Confiance プロジェクトにはログストレージの料金が発生します。ポリシー拒否監査ログを無効にすることはできませんが、除外フィルタを使用して、ポリシー拒否監査ログの Cloud Logging への保存を防ぐことはできます。
ポリシー拒否監査ログを書き込むサービスのリストと、それらのログを生成するアクティビティの詳細については、監査ログを備えたCloud de Confiance by S3NS サービスをご覧ください。
監査ログエントリの構造
Cloud Logging では、監査ログエントリはすべて LogEntry
タイプのオブジェクトになります。監査ログエントリと他のログエントリを区別するのは、protoPayload
フィールドです。このフィールドには、監査ロギングデータを格納する AuditLog
オブジェクトが含まれています。
監査ログエントリの読み取りと解釈の方法と、監査ログエントリのサンプルについては、監査ログについてをご覧ください。
ログ名
Cloud Audit Logs のログ名は次のとおりです。
監査ログを所有する Cloud de Confiance プロジェクトまたは他の Cloud de Confiance エンティティを示すリソース識別子。
文字
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
監査ログには、ログに記録されたオペレーションをCloud de Confiance リソースに対して実行した ID が記録されます。呼び出し元の ID は、AuditLog
オブジェクトの AuthenticationInfo
フィールドに保持されます。
成功したアクセスや書き込みオペレーションの呼び出し元のメールアドレスは、監査ロギングによって編集されません。
「権限が拒否されました」というエラーで失敗した読み取り専用オペレーションの場合、Audit Logging で呼び出し元の主要メールアドレスを秘匿化する必要があります(呼び出し元がサービス アカウントである場合を除く)。
特定のCloud de Confiance サービスには、上記の条件に加えて以下が適用されます。
BigQuery: 特定の条件が満たされない限り、発信者の ID と IP アドレスに加えて、一部のリソース名が監査ログから削除されます。
Cloud Storage: Cloud Storage の使用状況ログが有効になっている場合、Cloud Storage は Cloud Storage バケットに使用状況データを書き込みます。これにより、バケットのデータアクセスの監査ログが生成されます。生成されたデータアクセスの監査ログには、呼び出し元の ID が含まれます。
- 組織のポリシー: 発信者のメールアドレスの一部が秘匿化されて、3 つのピリオド文字
...
に置き換えられます。
監査ログの呼び出し元の IP アドレス
呼び出し元の IP アドレスは、AuditLog
オブジェクトの RequestMetadata.callerIp
フィールドに保持されます。
- インターネットからの呼び出し元の場合、このアドレスはパブリック IPv4 またはパブリック IPv6 アドレスです。
- 内部の本番環境ネットワーク内で 1 つのCloud de Confiance 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 ネットワークの概要をご覧ください。
監査ログの表示
すべての監査ログに対してクエリを実行することも、監査ログ名でログをクエリすることもできます。監査ログ名には、監査ロギング情報を表示する Cloud de Confiance プロジェクト、フォルダ、請求先アカウント、または組織のリソース識別子が含まれています。クエリでは、インデックス付きの LogEntry
フィールドを指定できます。ログのクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。
ほとんどの監査ログは、Cloud de Confiance コンソール、Google Cloud CLI、または Logging API を使用して Cloud Logging で表示できます。ただし、課金に関連する監査ログの場合は、Google Cloud CLI または Logging API のみを使用できます。
コンソール
Cloud de Confiance コンソールでは、ログ エクスプローラを使用して、 Cloud de Confiance プロジェクト、フォルダ、または組織の監査ログエントリを取得できます。
-
Cloud de Confiance コンソールで [ログ エクスプローラ] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。
既存の Cloud de Confiance プロジェクト、フォルダ、または組織を選択します。
すべての監査ログを表示するには、次のいずれかのクエリを [クエリエディタ] フィールドに入力し、[クエリを実行] をクリックします。
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
特定のリソースと監査ログタイプの監査ログを表示するには、[クエリビルダー] ペインで次の操作を行います。
[リソースタイプ] で、表示する監査ログを含む Cloud de Confiance リソースを選択します。
[ログ名] で、表示する監査ログタイプを選択します。
- 管理アクティビティ監査ログの場合は、[activity] を選択します。
- データアクセス監査ログの場合は、[data_access] を選択します。
- システム イベント監査ログの場合は、[system_event] を選択します。
- ポリシー拒否監査ログの場合は、[policy] を選択します。
[クエリを実行] をクリックします。
これらのオプションが表示されない場合、 Cloud de Confiance プロジェクト、フォルダ、または組織で利用可能なその種類の監査ログは存在しないことを意味します。
ログ エクスプローラでログを表示する際に問題が発生した場合は、トラブルシューティングの情報をご覧ください。
ログ エクスプローラを使用したクエリの詳細については、ログ エクスプローラでクエリを作成するをご覧ください。
gcloud
Google Cloud CLI は、Logging API へのコマンドライン インターフェースを提供します。ログ名ごとに有効なリソース識別子を指定します。たとえば、クエリに PROJECT_ID が含まれている場合、指定するプロジェクト ID は、現在選択されたCloud de Confiance プロジェクトを参照している必要があります。
Cloud de Confiance プロジェクト レベルの監査ログエントリを読み取るには、次のコマンドを実行します。
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 では、ログデータを保存して整理するためのコンテナとしてログバケットを使用します。請求先アカウント、Cloud de Confiance プロジェクト、フォルダ、組織ごとに、Logging によって自動的に _Required
と _Default
という 2 つのログバケットと、対応する名前のシンクが作成されます。
Cloud Logging の _Required
バケットには、管理アクティビティ監査ログとシステム イベント監査ログが保存されます。管理アクティビティまたはシステム イベントの監査ログの保存を無効にすることはできません。また、ログエントリを _Required
バケットに転送するシンクを構成することもできません。
管理アクティビティ監査ログとシステム イベント監査ログは常に、ログが生成されたプロジェクトの _Required
バケットに保存されます。
管理アクティビティ監査ログとシステム イベント監査ログを別のプロジェクトにルーティングすると、それらのログは、宛先プロジェクトの _Default
シンクまたは _Required
シンクをパススルーしません。したがって、これらのログは、宛先プロジェクトの _Default
ログバケットまたは _Required
ログバケットに保存されません。これらのログを保存するには、宛先プロジェクトにログシンクを作成します。詳細については、サポートされている宛先にログをルーティングするをご覧ください。
_Default
バケットは、デフォルトで有効なデータアクセス監査ログとポリシー拒否監査ログを保存します。データアクセス監査ログが _Default
バケットに保存されないようにするには、ログを無効にします。ポリシー拒否監査ログが _Default
バケットに保存されないようにするには、シンクのフィルタを変更してポリシー拒否監査ログを除外します。
監査ログエントリを、 Cloud de Confiance プロジェクト レベルでユーザー定義の Cloud Logging バケットに転送したり、シンクを使用して Logging の外部でサポートされている宛先に転送することもできます。ログの転送手順については、サポートされている宛先にログを転送するをご覧ください。
ログシンクのフィルタを構成するときは、転送する監査ログの種類を指定する必要があります。フィルタリング例については、セキュリティ ロギングのクエリをご覧ください。
Cloud de Confiance 組織、フォルダ、請求先アカウントとその子に対する監査ログエントリを転送する場合は、集約シンクの概要をご覧ください。
監査ログの保持期間
Logging でログエントリが保持される期間の詳細については、割り当てと上限: ログの保持期間で保持情報をご覧ください。
アクセス制御
IAM の権限とロールによって、Logging API、ログ エクスプローラ、Google Cloud CLI内の監査ログデータにアクセス可能かどうか判断されます。
必要となる IAM の権限とロールの詳細については、IAM によるアクセス制御をご覧ください。
割り当てと上限
監査ログの最大サイズを含む、ロギングの使用量上限について詳しくは、割り当てと上限をご覧ください。
次のステップ
- 監査ログの読み取りと理解の方法を学習する。
- データアクセス監査ログを有効にする方法を学習する。
- Cloud Audit Logs のベスト プラクティスを確認する。