このページでは、Cloud Audit Logs の一部として Apigee ハイブリッドによって作成される監査ログについて説明します。
概要
Google Cloud サービスは、「誰がいつどこで何をしたか」の確認に役立つ監査ログを記録します。Apigee ハイブリッド プロジェクトの監査ログに含まれるのは、そのプロジェクト内に直接存在するリソースのログデータのみです。その他のエンティティ(フォルダ、組織、請求先アカウントなど)の監査ログには、そのエンティティ自体のログデータが含まれます。
Cloud Audit Logs の概要については、Cloud Audit Logs をご覧ください。Cloud Audit Logs の詳細については、監査ログについてをご覧ください。
Cloud Audit Logs では、Google Cloud のプロジェクト、フォルダ、組織ごとに次の 3 つの監査ログが保存されます。
- 管理アクティビティ監査ログ
- データアクセス監査ログ
- システム イベント監査ログ
Apigee ハイブリッドによって書き込まれる管理アクティビティ監査ログには、リソースの構成やメタデータの変更に関するオペレーションが記録されます。管理アクティビティ監査ログは無効にできません。
データアクセス監査ログは、明示的に有効化された場合にのみ Apigee ハイブリッドで作成されます。データアクセス監査ログには、リソースの構成やメタデータを読み取る API 呼び出しが含まれます。データアクセス監査ログは、一般公開されているリソース(すべてのユーザーまたは認証済みのすべてのユーザーが利用可能)や、Google Cloud にログインせずにアクセスできるリソースのデータアクセス操作は記録しません。
Apigee ハイブリッドでは、システム イベント監査ログは記録されません。
監査対象のオペレーション
次の表は、Apigee ハイブリッドの各監査ログタイプに対応する API オペレーションをまとめたものです。
監査ログのカテゴリ | オペレーション |
---|---|
DATA_READ | GET |
ADMIN | CREATE |
監査ログ形式
Stackdriver Logging でログビューア、Stackdriver Logging API、gcloud
コマンドライン ツールを使用して表示できる監査ログエントリには、次のオブジェクトがあります。
- ログエントリ自体。LogEntry 型のオブジェクトです。よく使用されるフィールドは次のとおりです。
logName
: プロジェクト ID と監査ログタイプが格納されます。resource
: 監査対象オペレーションのターゲットが格納されます。timeStamp
: 監査対象オペレーションの時間が格納されます。protoPayload
: 監査情報が格納されます。- 監査ログデータ。ログエントリの
protoPayload
フィールドに保持される AuditLog オブジェクトです。 - サービス固有の監査情報(省略可)。
AuditLog
オブジェクトのserviceData
フィールドに保持されるサービス固有のオブジェクトです。詳細は、サービス固有の監査データをご覧ください。
このようなオブジェクトのその他のフィールドと、それを解釈する方法については、監査ログについてをご覧ください。
ログ名
Cloud Audit Logs のリソース名は、監査ログを所有するプロジェクトまたは他のエンティティを表します。この名前を見ると、ログに管理アクティビティ、データアクセス、システム イベントの監査ログデータが含まれているかどうかがわかります。たとえば、次のログ名はプロジェクトの管理アクティビティ監査ログと組織のデータアクセス監査ログを表しています。
projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access
サービス名
Apigee ハイブリッド監査ログでは、サービス名apigee.googleapis.com
が使用されます。
ロギング サービスの詳細については、サービスとリソースのマッピングをご覧ください。
リソースタイプ
Apigee ハイブリッド監査ログでは、すべての監査ログにリソースタイプaudited_resource
が使用されます。
一覧については、モニタリング対象リソースタイプをご覧ください。
監査ログの有効化
管理アクティビティ監査ログは常に有効になっています。無効にすることはできません。
データアクセス監査ログはデフォルトで無効になっており、明示的に有効にしない限り書き込まれません(例外は BigQuery のデータアクセス監査ログで、これは無効にすることができません)。
データアクセス監査ログの一部または全部を有効にする方法については、データアクセス ログの構成をご覧ください。
データアクセス監査ログを構成すると、Stackdriver のログの料金に影響が及ぶ場合があります。このページの料金を確認してください。
監査ログに関する権限
どの監査ログを表示またはエクスポートできるかは、Cloud Identity and Access Management の権限とロールによって決まります。ログは、プロジェクト内またはその他のエンティティ(組織、フォルダ、請求先アカウントなど)内に存在します。詳しくは、ロールについてをご覧ください。
管理アクティビティ監査ログを表示するには、その監査ログが存在するプロジェクト内で次のいずれかの IAM ロールを持っている必要があります。
- プロジェクト オーナー、プロジェクト編集者、またはプロジェクト閲覧者。
- Logging のログ閲覧者ロール。
- カスタム IAM ロール(
logging.logEntries.list
IAM 権限が付与されていること)。
データアクセス監査ログを表示するには、その監査ログが存在するプロジェクト内で次のいずれかのロールを持っている必要があります。
- プロジェクト オーナー。
- Logging のプライベート ログ閲覧者ロール。
- カスタム IAM ロール(
logging.privateLogEntries.list
IAM 権限が付与されていること)。
組織などのプロジェクト以外のエンティティからの監査ログを使用する場合は、プロジェクトのロールを適切な組織のロールに変更します。
ログの表示
監査ログエントリを表示する方法はいくつかあります。
基本ビューア
GCP Console でログビューアの基本的なインターフェースを使用して、監査ログエントリを取得できます。次の手順に従います。
- GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。
- ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。
- 最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、
Global
を使用してすべてのリソースを選択できます。 - 2 番目のプルダウン メニューで、表示するログの種類として、
activity
(管理アクティビティ監査ログ)、data_access
(データアクセス監査ログ)、system_events
(システム イベント監査ログ)を選択します。このオプションがどれも表示されない場合は、そのタイプの監査ログがプロジェクトに存在しません。
高度なビューア
GCP Console でログビューアの高度なインターフェースを使用して、監査ログエントリを取得できます。次の手順に従います。
- GCP Console の [Stackdriver Logging] > [ログ](ログビューア)ページに移動します。
- ページの上部で既存の Google Cloud プロジェクトを選択するか、新しいプロジェクトを作成します。
- 最初のプルダウン メニューで、監査ログを表示するリソースタイプを選択します。特定のリソースを選択するか、
Global
を使用してすべてのリソースを選択できます。 - 検索クエリボックスの右端にあるプルダウン矢印をクリックし、[高度なフィルタに変換] を選択します。
- 表示するログエントリをさらに詳しく指定するクエリを作成します。プロジェクト内のすべての監査ログを取得するには、次のクエリを追加します。それぞれのログ名の中で有効な [PROJECT_ID] を指定します。
logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events" OR "projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
クエリの詳細については、高度なログクエリをご覧ください。
API
Stackdriver Logging API を使用して監査ログエントリを表示するには:
entries.list
メソッドのドキュメント内の [Try this API] セクションに移動します。- [Try this API] フォームの [Request body] に、次のコードを入力します。この事前入力されたフォームをクリックするとリクエストの本文が自動的に入力されますが、それぞれのログ名に有効な
[PROJECT_ID]
を指定する必要があります。{ "resourceNames": [ "projects/[PROJECT_ID]" ], "pageSize": 5, "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)" }
- [EXECUTE] をクリックします。
gcloud
gcloud
コマンドライン ツールを使用してログエントリを読み取るには、次のコマンドを実行します。それぞれのログ名の中で有効な [PROJECT_ID]
を指定します。
gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
gcloud
コマンドライン ツールの使用法の詳細については、ログエントリを読み取るをご覧ください。
監査ログエントリのサンプルと、その中に記載されている最も重要な情報を見つける方法については、監査ログについてをご覧ください。
監査ログのエクスポート
監査ログは、他の種類のログをエクスポートする場合と同じ方法でエクスポートできます。ログをエクスポートする方法の詳細については、ログのエクスポートをご覧ください。監査ログのエクスポートに関する応用例の一部を以下に示します。
- 監査ログを長期間保持する、またはより強力な検索機能を使用するには、監査ログのコピーを Cloud Storage、BigQuery、または Pub/Sub にエクスポートします。Pub/Sub を使用すると、他のアプリケーション、他のリポジトリ、サードパーティ製品にエクスポートできます。
- 組織全体の監査ログを管理するには、組織内の一部またはすべてのプロジェクトからログをエクスポートできる集約エクスポート シンクを作成します。
- 有効にしたデータアクセス監査ログが原因でプロジェクトのログ割り当て量を超過した場合は、データアクセス監査ログをエクスポートして Logging から除外できます。詳しくは、ログの除外をご覧ください。
料金
Stackdriver Logging の無効にできない監査ログ(すべての管理アクティビティ監査ログを含む)は無料です。
明示的にリクエストしたデータアクセス監査ログについては課金されます。