このドキュメントでは、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:
|
|
SQL Alert Writer Beta( Ability to write SQL Alerts. |
|
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 ロールを付与します。ユーザーが特定のログビューのログのみを読み取るには、次の 2 つの方法があります。
ログビューの IAM ポリシーを作成し、プリンシパルにログビューへのアクセス権を付与する IAM バインディングをそのポリシーに追加します。
ログビューを含むプロジェクトに対する
roles/logging.viewAccessor
の IAM ロールをプリンシパルに付与します。ただし、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 のカスタムの役割についてをご覧ください。
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 , getShared , updateShared , deleteShared , listShared } を追加します |
最近のクエリを使用できる機能を追加する | 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 によるアクセス制御をご覧ください。
クエリを保存する権限
このセクションでは、[ログ エクスプローラ] ページまたは [ログ分析] ページでクエリの保存、共有、使用を行うための事前定義ロールと権限について説明します。自分だけが参照できる非公開の保存済みクエリを使用する場合と、Google Cloud プロジェクトの他のメンバーと共有されている保存済みクエリを使用する場合で、必要な権限が異なります。
-
非公開の保存クエリを使用するために必要な権限を取得するには、プロジェクトに対するログビューア(
roles/logging.viewer
)の IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、非公開の保存済みクエリを使用するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
非公開の保存済みクエリを使用するには、次の権限が必要です。
-
logging.queries.list
-
logging.queries.create
-
logging.queries.get
-
logging.queries.update
-
logging.queries.delete
-
-
共有クエリの作成、更新、削除を行うために必要な権限を取得するには、プロジェクトに対する Logging 管理者(
roles/logging.admin
)の IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、共有クエリの作成、更新、削除を行うために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
共有クエリの作成、更新、削除を行うには、次の権限が必要です。
-
logging.queries.share
-
logging.queries.updateShared
-
logging.queries.deleteShared
-
-
共有クエリを一覧表示して取得するために必要な権限を取得するには、プロジェクトに対するログビューア(
roles/logging.viewer
)の IAM ロールを付与するよう管理者に依頼してください。この事前定義ロールには、共有クエリを一覧表示して取得するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
共有クエリを一覧表示して取得するには、次の権限が必要です。
-
logging.queries.listShared
-
logging.queries.getShared
-
ログ ルーティングに対する権限
シンクを作成して管理し、ログをルーティングする際のアクセス制御の設定方法については、エクスポート先の権限を設定するをご覧ください。
除外フィルタの管理は、シンクの構成と統合されています。除外フィルタの設定など、シンクの管理に関連するすべての権限は 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 ロールを付与するよう管理者に依頼してください。この事前定義ロールには、ログの読み取りと Logging 通知ルールの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
ログの読み取りと Logging 通知ルールの管理には、次の権限が必要です。
-
logging.queries.listShared
-
logging.queries.getShared
-
-
ログベースのアラート ポリシーと通知チャンネルを管理するために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。
-
Monitoring AlertPolicy 編集者(
roles/monitoring.alertPolicyEditor
) -
Monitoring NotificationChannel 編集者(
roles/monitoring.notificationChannelEditor
)
これらの事前定義ロールには、ログベースのアラート ポリシーと通知チャネルの管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
ログベースのアラート ポリシーとその通知チャネルを管理するには、次の権限が必要です。
-
logging.queries.listShared
-
logging.queries.getShared
-
Monitoring AlertPolicy 編集者(
-
Google Cloud CLI でアラート ポリシーを作成するために必要な権限を取得するには、プロジェクトに対する Service Usage ユーザー(
roles/serviceusage.serviceUsageConsumer
)の IAM ロールの付与を管理者に依頼してください。この事前定義ロールには、Google Cloud CLI でアラート ポリシーを作成するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
Google Cloud CLI でアラート ポリシーを作成するには、次の権限が必要です。
-
logging.queries.listShared
-
logging.queries.getShared
-
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 への完全アクセス権。 |
この従来の方法を使用してサービス アカウントのアクセス レベルを設定する方法については、サービス アカウントの権限をご覧ください。