アクセス制御ガイド

Stackdriver Logging は、Cloud IAM を使用して、プロジェクト、組織、フォルダ、請求先アカウントのロギングデータへのアクセスを制御します。Stackdriver アカウントのサービス階層がロギング アクセスに与える影響の詳細については、このページのサービス階層をご覧ください。

概要

Cloud IAM の権限と役割によって、Stackdriver Logging API とログビューアの使用方法が決まります。

ログは、プロジェクト、組織、フォルダ、請求先アカウントに存在します。これらのリソースはそれぞれ、独自のメンバーセットと独自のロギングの役割セットを持つことができます。

プロジェクトのロギングデータに Stackdriver Logging を使用するには、プロジェクト メンバーであること、かつ、Stackdriver Logging を使用する権限を付与する Cloud IAM の役割を持っていることが必要です。Stackdriver Logging には、次の Cloud IAM の役割が適用されます。

  • roles/logging.viewer(ログ閲覧者)によって、Stackdriver Logging のすべての機能に対する読み取り専用アクセス権が付与されます。ただし、データアクセス監査ログを除きます。

  • roles/logging.privateLogViewer(プライベート ログ閲覧者)には、roles/logging.viewer とプライベート ログの読み取り権限が含まれます。

  • roles/logging.logWriter(ログ書き込み)をサービス アカウントに付与して、ログの書き込みに十分な権限のみをアプリケーションに付与できます。この役割は、ログビューアへのアクセスを許可しません。

  • roles/logging.configWriter(ログ設定書き込み)によって、ログベースの指標とエクスポート シンクの作成権限が付与されます。ログビューアを使用するには、roles/logging.viewer を追加します。

  • roles/logging.admin(ロギング管理者)によって、Stackdriver Logging に関連するすべての権限が付与されます。

  • roles/viewer(プロジェクト閲覧者)は、roles/logging.viewer と同じです。この役割によって、Stackdriver Logging のすべての機能(プライベート ログを除く)に対する読み取り専用アクセス権が付与されます。

  • roles/editor(プロジェクト編集者)には、roles/logging.viewer の権限、ログエントリの書き込み権限、ログの削除権限、ログベースの指標の作成権限が含まれます。この役割では、エクスポート シンクの作成や、プライベート ログの読み取りを行うことはできません。

  • roles/owner(プロジェクト オーナー)によって、Stackdriver Logging に対する完全アクセス権(プライベート ログを含む)が付与されます。

Stackdriver Logging の役割と権限の詳細については、このページの権限と役割をご覧ください。

サービス階層

Stackdriver Logging では、Stackdriver アカウントのサービス階層に基づいて、できることが制限されます。

  • プロジェクトが Stackdriver アカウントに関連付けられていない場合や、Stackdriver アカウントが無料の基本階層にある場合は、GCP ログの Stackdriver Logging への完全アクセス権が付与されます。AWS ログにはアクセスできません。ログエントリは 7 日間保持されます。

  • 有料のプレミアム階層では、GCP と AWS のログへの完全アクセス権が付与されます。無料ログの割り当て量が多くなり、ログは 30 日間保持されます。

詳細については、料金をご覧ください。

API 権限

Stackdriver Logging API メソッドでは、特定の Cloud IAM の権限が必要になります。次の表に、API メソッドで必要な権限を示します。

ロギング方法 必要な権限 リソースの種類
billingAccounts.logs.* logging.logs.*projects.logs.* をご覧ください) 請求先アカウント
billingAccounts.sinks.* logging.sinks.*projects.sinks.* をご覧ください) 請求先アカウント
entries.list logging.logEntries.list または
logging.privateLogEntries.list
プロジェクト、組織、
フォルダ、請求先アカウント
entries.write logging.logEntries.create プロジェクト、組織、
フォルダ、請求先アカウント
folders.logs.* logging.logs.*projects.logs.* をご覧ください) フォルダ
folders.sinks.* logging.sinks.*projects.sinks.* をご覧ください) フォルダ
monitoredResourceDescriptors.list (なし) (なし)
organizations.logs.* logging.logs.*projects.logs.* をご覧ください) 組織
organizations.sinks.* logging.sinks.*projects.sinks.* をご覧ください) 組織
projects.exclusions.create logging.exclusions.create プロジェクト
projects.exclusions.delete logging.exclusions.delete プロジェクト
projects.exclusions.get logging.exclusions.get プロジェクト
projects.exclusions.list logging.exclusions.list プロジェクト
projects.exclusions.patch logging.exclusions.<b>update<b> プロジェクト
projects.logs.list logging.logs.list プロジェクト
projects.logs.delete logging.logs.delete プロジェクト
projects.sinks.list logging.sinks.list プロジェクト
projects.sinks.get logging.sinks.get プロジェクト
projects.sinks.create logging.sinks.create プロジェクト
projects.sinks.update logging.sinks.update プロジェクト
projects.sinks.delete logging.sinks.delete プロジェクト
projects.metrics.list logging.logMetrics.list プロジェクト
projects.metrics.get logging.logMetrics.get プロジェクト
projects.metrics.create logging.logMetrics.create プロジェクト
projects.metrics.update logging.logMetrics.update プロジェクト
projects.metrics.delete logging.logMetrics.delete プロジェクト

コンソール権限

次の表に、ログビューアの使用に必要な権限を示します。

表の a.b.{x,y}a.b.xa.b.y を意味します。

コンソール アクティビティ 必要な権限
最小限の読み取り専用アクセス logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
ログベースの指標を表示できるようにする logging.logMetrics.{list, get} を追加します
エクスポートを表示できるようにする logging.sinks.{list, get} を追加します
ログ使用量を表示できるようにする logging.usage.get を追加します
ログを除外できるようにする logging.exclusions.{list, create, get, update, delete} を追加します
ログをエクスポートできるようにする logging.sinks.{list, create, get, update, delete} を追加します
ログベースの指標を作成できるようにする logging.logMetrics.{list, create, get, update, delete} を追加します

権限と役割

次の表に、Stackdriver Logging へのアクセスを許可する Cloud IAM の役割を示します。各役割には、特定のロギングの権限セットがあります。役割は、一覧表示されたリソースの種類のメンバーである個人やサービス アカウントに割り当てることができます。

表の a.b.{x,y}a.b.xa.b.y を意味します。

役割名 役割のタイトル ロギングの権限 リソースの種類
roles/
logging.viewer
ログ閲覧者 logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
logging.usage.get
resourcemanager.projects.get
プロジェクト、組織、
フォルダ、請求先アカウント
roles/
logging.privateLogViewer
プライベート ログ閲覧者 roles/logging.viewer 権限に加え
logging.privateLogEntries.list
プロジェクト、組織、
フォルダ、請求先アカウント
roles/
logging.logWriter
ログ書き込み logging.logEntries.create プロジェクト、組織、
フォルダ、請求先アカウント
roles/
logging.configWriter
ログ設定書き込み logging.exclusions.{list, create, get, update, delete}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.get
プロジェクト、組織、
フォルダ、請求先アカウント
roles/
logging.admin
ロギング管理者 logging.exclusions.{list, create, get, update, delete}
logging.logEntries.create
logging.logEntries.list
logging.logMetrics.{list, create, get, update, delete}
logging.logs.delete
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.privateLogEntries.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.get
プロジェクト、組織、
フォルダ、請求先アカウント
roles/viewer 閲覧者 logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
resourcemanager.projects.get
プロジェクト
roles/editor 編集者 roles/viewer ロギングの権限に加え
logging.logEntries.create
logging.logMetrics.{create, update, delete}
logging.logs.delete
プロジェクト
roles/owner オーナー roles/editor ロギングの権限に加え
logging.privateLogEntries.list
logging.sinks.{create, update, delete}
プロジェクト

カスタムの役割

Stackdriver Logging の権限を含むカスタムの役割を作成するには、次の手順に従います。

  • Stackdriver Logging API の権限のみを付与する役割の場合は、前の API 権限から権限を選択します。

  • ログビューアを使用する権限を付与する役割の場合は、前のコンソール権限の権限グループから選択します。

  • ロギングデータを書き込む権限を付与するには、権限と役割の役割 roles/logging.logWriter の権限を含めます。

カスタムの役割の詳細については、IAM のカスタムの役割についてをご覧ください。

エクスポートされたログへのアクセス

ログをエクスポートするためにシンクを作成するには、roles/logging.configWriterroles/logging.adminroles/owner の権限が必要です。

シンクは、ログのエクスポートを開始すると、受信したすべてのログエントリへの完全アクセス権が付与されます。シンクはプライベート ログエントリをエクスポートできます。

ログエントリがエクスポートされると、エクスポートされたコピーへのアクセスは、エクスポート先の Cloud Storage、BigQuery、Cloud Pub/Sub の Cloud IAM の権限と役割によって完全に制御されます。

Stackdriver Logging アクセス スコープ

アクセス スコープは、Compute Engine VM インスタンスの権限を指定するレガシーな方法です。Stackdriver Logging API には次のアクセス スコープが適用されます。

アクセス スコープ 付与される権限
https://www.googleapis.com/auth/logging.read role/logging.viewer
https://www.googleapis.com/auth/logging.write roles/logging.logWriter
https://www.googleapis.com/auth/logging.admin Stackdriver Logging API への完全アクセス権。
https://www.googleapis.com/auth/cloud-platform Stackdriver Logging API と他の有効なすべての Google Cloud API への完全アクセス権。

おすすめの方法

これで Cloud IAM の役割を使用できるようになりました。すべての VM インスタンスに「有効なすべての Google Cloud API に対する完全アクセス権」スコープを設定することをおすすめします。

https://www.googleapis.com/auth/cloud-platform

VM インスタンスのサービス アカウントに特定の Cloud IAM の役割を付与して、特定の API へのアクセスを制限できます。詳しくは、サービス アカウント権限をご覧ください。

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

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