IAM によるアクセス制御

Identity and Access Management(IAM)ロールを使用して、Cloud Trace リソースの表示、書き込み、管理に対する詳細な権限を付与し、トレースデータへの不正アクセスを防ぐことができます。

ベスト プラクティス

トラブルシューティングを容易にするため、プロジェクトでトレースデータを表示する必要があるすべてのユーザー、グループ、ドメインに Cloud Trace ユーザーロール(roles/cloudtrace.userを付与します。このロールは、トレースデータを表示するために必要な権限をプリンシパルに付与します。

権限と事前定義ロール

IAM のロールには権限が含まれており、ユーザー、グループ、サービス アカウントに割り当てることができます。

Cloud Trace のロール

次の表に、Cloud Trace の事前定義ロールと、それらのロールの権限の一覧を示します。

Role Permissions

(roles/cloudtrace.admin)

Provides full access to the Trace console and read-write access to traces.

Lowest-level resources where you can grant this role:

  • Project

cloudtrace.*

  • cloudtrace.insights.get
  • cloudtrace.insights.list
  • cloudtrace.stats.get
  • cloudtrace.tasks.create
  • cloudtrace.tasks.delete
  • cloudtrace.tasks.get
  • cloudtrace.tasks.list
  • cloudtrace.traceScopes.create
  • cloudtrace.traceScopes.delete
  • cloudtrace.traceScopes.get
  • cloudtrace.traceScopes.list
  • cloudtrace.traceScopes.update
  • cloudtrace.traces.get
  • cloudtrace.traces.list
  • cloudtrace.traces.patch

observability.scopes.get

observability.traceScopes.*

  • observability.traceScopes.create
  • observability.traceScopes.delete
  • observability.traceScopes.get
  • observability.traceScopes.list
  • observability.traceScopes.update

resourcemanager.projects.get

resourcemanager.projects.list

telemetry.traces.write

(roles/cloudtrace.user)

Provides full access to the Trace console and read access to traces.

Lowest-level resources where you can grant this role:

  • Project

cloudtrace.insights.*

  • cloudtrace.insights.get
  • cloudtrace.insights.list

cloudtrace.stats.get

cloudtrace.tasks.*

  • cloudtrace.tasks.create
  • cloudtrace.tasks.delete
  • cloudtrace.tasks.get
  • cloudtrace.tasks.list

cloudtrace.traceScopes.*

  • cloudtrace.traceScopes.create
  • cloudtrace.traceScopes.delete
  • cloudtrace.traceScopes.get
  • cloudtrace.traceScopes.list
  • cloudtrace.traceScopes.update

cloudtrace.traces.get

cloudtrace.traces.list

observability.scopes.get

observability.traceScopes.*

  • observability.traceScopes.create
  • observability.traceScopes.delete
  • observability.traceScopes.get
  • observability.traceScopes.list
  • observability.traceScopes.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/cloudtrace.agent)

For service accounts. Provides ability to write traces by sending the data to Stackdriver Trace.

Lowest-level resources where you can grant this role:

  • Project

cloudtrace.traces.patch

telemetry.traces.write

Telemetry API のロール

次の表に、テレメトリー(OTLP)API の事前定義ロールと、それらのロールの権限の一覧を示します。

Role Permissions

(roles/telemetry.admin)

Admin role for telemetry

resourcemanager.projects.get

resourcemanager.projects.list

telemetry.*

  • telemetry.consumers.getIamPolicy
  • telemetry.consumers.setIamPolicy
  • telemetry.consumers.writeLogs
  • telemetry.consumers.writeMetrics
  • telemetry.consumers.writeTraces
  • telemetry.traces.write

(roles/telemetry.editor)

Editor role for telemetry

resourcemanager.projects.get

resourcemanager.projects.list

telemetry.traces.write

(roles/telemetry.consumerAdmin)

Grants permission management access to consumer resources.

telemetry.consumers.getIamPolicy

telemetry.consumers.setIamPolicy

(roles/telemetry.logsWriter)

Access to write logs.

logging.logEntries.create

(roles/telemetry.metricsWriter)

Access to write metrics.

monitoring.timeSeries.create

(roles/telemetry.serviceLogsWriter)

Allows an onboarded service to write log data to a destination.

telemetry.consumers.writeLogs

(roles/telemetry.serviceMetricsWriter)

Allows an onboarded service to write metrics data to a destination.

telemetry.consumers.writeMetrics

(roles/telemetry.serviceTelemetryWriter)

Allows an onboarded service to write all telemetry data to a destination.

telemetry.consumers.writeLogs

telemetry.consumers.writeMetrics

telemetry.consumers.writeTraces

(roles/telemetry.serviceTracesWriter)

Allows an onboarded service to write trace data to a destination.

telemetry.consumers.writeTraces

(roles/telemetry.tracesWriter)

Access to write trace spans.

telemetry.traces.write

(roles/telemetry.writer)

Full access to write all telemetry data.

logging.logEntries.create

monitoring.timeSeries.create

telemetry.traces.write

カスタムロールを作成する

Cloud Trace 権限を含むカスタムロールを作成するには、次の操作を行います。

  • Cloud Trace API を使用する権限のみを含むロールを作成するには、API 呼び出しに必要な特定の権限を選択します。
  • Cloud Trace API とGoogle Cloud コンソールを使用する権限を含むロールを作成するには、事前定義された Cloud Trace ロールのいずれかから権限グループを選択します。
  • トレースデータを書き込む権限を付与するには、Cloud Trace エージェントのロール(roles/cloudtrace.agent)から権限をコピーします。

カスタムロールの詳細については、カスタムロールの作成と管理をご覧ください。

API メソッドの権限

API 呼び出しの実行に必要な権限については、Cloud Trace API リファレンス ドキュメントをご覧ください。

クロス プロジェクト トレースのロール

アプリケーションは、複数の Google Cloud プロジェクトにトレースデータを保存する場合があります。ただし、次の操作を行うと、このデータを単一のプロジェクトで表示できます。

詳細については、複数のプロジェクトにわたるトレースの表示をご覧ください。