このドキュメントでは、Identity and Access Management(IAM)の役割と権限を使用して Logging API、ログ エクスプローラ、Google Cloud CLI でログデータへのアクセスを制御する方法について説明します。
概要
IAM の権限とロールによって、Logging API、ログ エクスプローラ、Google Cloud CLI内のログデータにアクセス可能であるかどうかが判断されます。
ロールとは、一連の権限のことです。プリンシパルに直接権限を付与することはできません。代わりに、ロールを付与します。ロールをプリンシパルに付与する際には、ロールに含まれているすべての権限がプリンシパルに付与されます。同じプリンシパルに複数のロールを付与できます。
Google Cloud プロジェクト、フォルダ、バケット、組織などの Google Cloud リソース内で Logging を使用するには、プリンシパルに適切な権限を含む IAM ロールが必要です。
事前定義されたロール
IAM の事前定義ロールを使用すると、特定の Google Cloud リソースに対してきめ細やかなアクセス権を付与し、他のリソースへの望ましくないアクセスを防ぐことができます。Google Cloud はこれらのロールを作成、維持し、必要に応じて自動的に権限を更新します(Logging に新機能が追加された場合など)。
次の表に、Logging の事前定義ロールの一覧を表示します。ロールごとに、テーブルには、ロールのタイトル、説明、含まれている権限、ロールに付与できる最低レベルのリソースタイプが表示されます。Google Cloud プロジェクト レベルで、またはほとんどの場合に、Google Cloud 階層のそれ以上の任意のタイプで、事前定義されたロールを付与できます。ログ表示アクセス者ロールの範囲をバケットレベルに厳密に制限するには、IAM Conditions のリソース属性を使用します。
ロールに含まれる個々の権限のリストを取得するには、ロール メタデータの取得をご覧ください。
Role | Permissions |
---|---|
Logging Admin( Provides all permissions necessary to use all features of Cloud Logging. Lowest-level resources where you can grant this role:
|
|
Logs Bucket Writer( Ability to write logs to a log bucket. Lowest-level resources where you can grant this role:
|
|
Logs Configuration Writer( Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs. Lowest-level resources where you can grant this role:
|
|
Log Field Accessor( Ability to read restricted fields in a log bucket. Lowest-level resources where you can grant this role:
|
|
Log Link Accessor( Ability to see links for a bucket. |
|
Logs Writer( Provides the permissions to write log entries. Lowest-level resources where you can grant this role:
|
|
Private Logs Viewer( Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs. Lowest-level resources where you can grant this role:
|
|
Logs View Accessor( Ability to read logs in a view. Lowest-level resources where you can grant this role:
|
|
Logs Viewer( Provides access to view logs. Lowest-level resources where you can grant this role:
|
|
以降のセクションでは、プリンシパルのユースケースに適用するロールの決定に役立つ追加情報について説明します。
Logging のロール
ユーザーが Logging のすべての操作を行えるようにするには、Logging 管理者(
roles/logging.admin
)のロールを付与します。ユーザーがシンク、バケット、ビュー、リンク、ログベースの指標、除外などのロギング構成を作成、変更できるようにするには、ログ構成書き込み(
roles/logging.configWriter
)のロールを付与します。ユーザーが
_Required
バケットと_Default
バケットのログを読み取るには、ログ エクスプローラを使用し、[ログ分析] ページを使用して、次のいずれかのロールを付与します。_Required
バケットのすべてのログと_Default
バケットの_Default
ビューにアクセスするには、ログ閲覧者(roles/logging.viewer
)のロールを付与します。- データアクセス ログを含む、
_Required
バケットと_Default
バケットのすべてのログインにアクセスするには、プライベート ログ閲覧者(roles/logging.privateLogViewer
)のロールを付与します。
ユーザーがユーザー定義のバケットに保存されているログを読み取ることができるようにするには、ログビュー アクセサー(
roles/logging.viewAccessor
)のロールを付与します。IAM 条件を使用して、特定のバケットの特定のログビューへの承認を制限できます。ログビューへのアクセス権の付与をご覧ください。特定のバケット内の制限付き
LogEntry
フィールド(もしあれば)へのアクセス権をユーザーに与えるには、ログフィールド アクセサー(roles/logging.fieldAccessor
) ロールを付与します。詳細については、フィールド レベルのアクセスを構成するをご覧ください。ユーザーが Logging API を使用してログを書き込むことができるようにするには、ログ書き込み(
roles/logging.logWriter
)のロールを付与します。このロールでは、閲覧権限は付与されません。シンクのサービス アカウントが別の Google Cloud プロジェクトのバケットにログをルーティングできるようにするには、サービス アカウントにログバケット書き込み(
roles/logging.bucketWriter
)のロールを付与します。サービス アカウントに権限を付与する手順については、エクスポート先の権限を設定するをご覧ください。
Project-level roles
ほとんどの Google Cloud サービスへの閲覧権限を付与するには、閲覧者(
roles/viewer
)のロールを付与します。このロールには、ログ閲覧者(
roles/logging.viewer
)のロールによって付与されるすべての権限が含まれます。ほとんどの Google Cloud サービスへの編集者のアクセス権を付与するには、編集者(
roles/editor
)のロールを付与します。このロールには、ログ閲覧者(
roles/logging.viewer
)のロールによって付与されたすべての権限と、ログエントリの書き込み、ログの削除、ログベース指標の作成を行う権限が含まれています。ただし、このロールを使用して、ユーザーがシンクの作成、_Default
バケット内のデータアクセス監査ログの読み取り、ユーザー定義ログバケット内のログの読み取りを行うことはできません。ほとんどの Google Cloud サービスに対する完全アクセス権を付与するには、オーナー(
roles/owner
)のロールを付与します。
ロールを付与しています
プリンシパルにロールを付与する方法については、アクセス権の付与、変更、取り消しをご覧ください。
1 人のユーザーに複数のロールを付与できます。ロールに含まれる権限のリストを取得するには、ロール メタデータの取得をご覧ください。
Google Cloud リソースにアクセスしようとしたときに必要な権限が不足している場合は、リソースのオーナーとして登録されているプリンシパルにお問い合わせください。
カスタムロール
Logging の権限を含むカスタムロールを作成するには、次の手順に従います。
Logging API の権限を付与するロールの場合は、API 権限から権限を選択し、カスタムロールを作成するの手順を実行します。
ログ エクスプローラを使用する権限を付与するロールの場合は、コンソール権限の権限グループから選択し、カスタムロールを作成するの手順を実行します。
gcloud logging
を使用する権限を付与するロールについては、このページのコマンドラインの権限セクションで確認してから、カスタムロールの作成の手順を実行してください。
カスタム役割の詳細については、IAM のカスタムの役割についてをご覧ください。
Logging API の権限
Logging API メソッドでは、特定の IAM の権限が必要になります。次の表に、API メソッドで必要な権限を示します。
Google Cloud 組織、請求先アカウント、フォルダに保存されているログが必要な場合、これらのリソースには logs
と sinks
のための独自のメソッドがあることにご注意ください。表は、すべてのメソッドを繰り返すのではなく、projects
のメソッドのみを個別に示しています。
ロギングのメソッド | 必要な権限 | リソースの種類 |
---|---|---|
billingAccounts.logs.* |
logging.logs.* (projects.logs.* を参照) |
請求先アカウント |
billingAccounts.sinks.* |
logging.sinks.* (projects.sinks.* を参照) |
請求先アカウント |
billingAccounts.locations.buckets.* |
logging.buckets.* (projects.locations.buckets.* を参照) |
請求先アカウント |
entries.list |
logging.logEntries.list またはlogging.privateLogEntries.list |
プロジェクト、組織、 フォルダ、請求先アカウント |
entries.tail |
logging.logEntries.list またはlogging.privateLogEntries.list |
プロジェクト、組織、 フォルダ、請求先アカウント |
entries.write |
logging.logEntries.create |
プロジェクト、組織、 フォルダ、請求先アカウント |
folders.logs.* |
logging.logs.* (projects.logs.* を参照) |
フォルダ |
folders.sinks.* |
logging.sinks.* (projects.sinks.* を参照) |
フォルダ |
folders.locations.buckets.* |
logging.buckets.* (projects.locations.buckets.* を参照) |
フォルダ |
monitoredResourceDescriptors.list |
(なし) | (なし) |
organizations.logs.* |
logging.logs.* (projects.logs.* を参照) |
組織 |
organizations.sinks.* |
logging.sinks.* (projects.sinks.* を参照) |
組織 |
organizations.locations.buckets.* |
logging.buckets.* (projects.locations.buckets.* を参照) |
組織 |
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.update |
プロジェクト |
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.locations.buckets.list |
logging.buckets.list |
プロジェクト |
projects.locations.buckets.get |
logging.buckets.get |
プロジェクト |
projects.locations.buckets.patch |
logging.buckets.update |
プロジェクト |
projects.locations.buckets.create |
logging.buckets.create |
プロジェクト |
projects.locations.buckets.delete |
logging.buckets.delete |
プロジェクト |
projects.locations.buckets.undelete |
logging.buckets.undelete |
プロジェクト |
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 |
プロジェクト |
Google Cloud コンソールの権限
次の表に、ログ エクスプローラの使用に必要な権限を示します。
表の a.b.{x,y}
は a.b.x
と a.b.y
を意味します。
コンソール アクティビティ | 必要な権限 |
---|---|
最小限の読み取り専用アクセス | logging.logEntries.list logging.logs.list logging.logServiceIndexes.list logging.logServices.list resourcemanager.projects.get |
データアクセス監査ログを表示できるようにする | logging.privateLogEntries.list を追加 |
ログベースの指標を表示できるようにする | 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 } を追加します |
クエリを保存する機能を追加する | logging.queries. {list , create , get , update , delete } を追加します |
クエリを共有する機能を追加する | logging.queries.share を追加 |
最近のクエリを使用できる機能を追加する | logging.queries. {create , list } を追加します |
コマンドラインの権限
gcloud logging
コマンドは、IAM 権限によって制御されます。
gcloud logging
コマンドのいずれかを使用するには、プリンシパルに serviceusage.services.use
権限が必要です。
プリンシパルには、ログのリソースとユースケースに対応する IAM のロールも必要です。詳細については、コマンドライン インターフェースの権限をご覧ください。
リンクされた BigQuery データセットの権限
次のリストは、リンクされた BigQuery データセットを管理するための事前定義ロールと対応する権限を示しています。
Logging 管理者(
roles/logging.admin
)とログ構成書き込み(roles/logging.configWriter
)のロールには次の権限が含まれています。logging.links.list
logging.links.create
logging.links.get
logging.links.delete
ログリンク アクセス者(
roles/logging.linkViewer
)、プライベート ログ閲覧者(roles/logging.privateLogViewer
)、ログビューア(roles/logging.viewer
)のロールには次の権限が含まれています。logging.links.list
logging.links.get
前述のロールと権限は、[Log Analytics] ページなどの Google Cloud Observability ページにのみ適用されます。BigQuery インターフェースを使用してデータセットを管理する場合は、別の BigQuery のロールと権限が必要になる場合があります。詳細については、BigQuery の IAM によるアクセス制御をご覧ください。
ログのルーティングの権限
シンクを作成して管理し、ログをルーティングする際のアクセス制御の設定方法については、エクスポート先の権限を設定するをご覧ください。
除外フィルタの管理は、シンクの設定と統合されています。除外フィルタの設定を含む、シンクの管理に関するすべての権限は、logging.sinks.*
権限に含まれます。除外フィルタを管理する権限を含むカスタム役割を作成する場合、logging.exclusions.*
権限を付与する代わりに、logging.sinks.*
権限をロールに追加します。
ログエントリがサポートされている宛先にルーティングされた後、ログエントリ宛先の Cloud Storage、BigQuery、Pub/Sub に対する IAM 権限とロールによって、ログのコピーへのアクセスは全面的に制御されます。
ログベースの指標の権限
プリンシパルがログベースの指標にアクセスするために必要な一般的なロールと権限の概要は次のとおりです。
ログ構成書き込み(
roles/logging.configWriter
)のロールを使用すると、プリンシパルはログベースの指標をリスト表示、作成、取得、更新、削除できます。ログ閲覧者(
roles/logging.viewer
)のロールには、既存の指標を表示する権限が含まれています。具体的には、既存の指標を表示するには、プリンシパルにlogging.logMetrics.get
権限とlogging.logMetrics.list
権限が必要です。Monitoring 閲覧者(
roles/monitoring.viewer
)のロールには、TimeSeries データを読み取る権限が含まれています。具体的には、プリンシパルに時系列データを読み取るには、monitoring.timeSeries.list
権限が必要です。Logging 管理者(
roles/logging.admin
)、プロジェクト編集者(roles/editor
)、プロジェクト オーナー(roles/owner
)ロールには、ログベースの指標を作成する権限が含まれています。具体的には、プリンシパルにログベースの指標を作成するには、logging.logMetrics.create
権限が必要です。
ログベースのアラート ポリシーの権限
ログベースのアラート ポリシーを作成して管理するには、プリンシパルに次の Logging と Monitoring のロールと権限が必要です。
-
ログの読み取りと Logging 通知ルールの管理に必要な権限を取得するには、Logging 管理者 (
roles/logging.admin
)プロジェクトに対する IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
-
ログベースのアラート ポリシーと通知チャンネルを管理するために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。
-
Monitoring AlertPolicy 編集者(
roles/monitoring.alertPolicyEditor
) -
Monitoring NotificationChannel 編集者(
roles/monitoring.notificationChannelEditor
)
-
Monitoring AlertPolicy 編集者(
-
Google Cloud CLI でアラート ポリシーを作成するために必要な権限を取得するには、プロジェクトに対する Service Usage ユーザー (
roles/serviceusage.serviceUsageConsumer
)IAM ロールの付与を管理者に依頼してください。
Logging のアクセス スコープ
アクセス スコープは、Compute Engine VM インスタンスに対するサービス アカウントの権限を指定する従来からの方法です。
Logging API には次のアクセス スコープが適用されます。
アクセス スコープ | 付与される権限 |
---|---|
https://www.googleapis.com/auth/logging.read | roles/logging.viewer |
https://www.googleapis.com/auth/logging.write | roles/logging.logWriter |
https://www.googleapis.com/auth/logging.admin | Logging API への完全アクセス権。 |
https://www.googleapis.com/auth/cloud-platform | Logging API と他の有効なすべての Google Cloud API への完全アクセス権。 |
この従来の方法を使用してサービス アカウントのアクセス レベルを設定する方法については、サービス アカウントの権限をご覧ください。