IAM によるアクセス制御

Monitoring を使用するには、適切な Identity and Access Management(IAM)権限が必要です。一般に、API の各 REST メソッドには権限が関連付けられています。このメソッドを使用する、またはメソッドに依存するコンソール機能を使用するには、対応するメソッドを使用する権限が必要です。権限はユーザーに直接付与されるのではなく、ロールを通して間接的に付与されます。ロールは、複数の権限をグループ化して管理しやすいようにしたものです。

一般的な権限の組み合わせに対するロールは事前に定義されています。ただし、IAM カスタムロールを作成して、独自の権限の組み合わせを作成することもできます。

ベスト プラクティス

Google Cloud プロジェクトへのアクセスを管理するには、Google グループを作成することをおすすめします。

VPC Service Controls

モニタリング データへのアクセス制御を強化するには、IAM に加えて VPC Service Controls を使用します。

VPC Service Controls により、Cloud Monitoring のセキュリティを強化して、データ漏洩のリスクを低減できます。VPC Service Controls を使用すると、サービス境界に指標スコープを追加して、境界の外部で発生するリクエストから Cloud Monitoring のリソースとサービスを保護できます。

サービス境界の詳細については、VPC Service Controls Service Perimeter 構成のドキュメントをご覧ください。

既知の制限など、VPC Service Controls に対する Monitoring のサポートについては、Monitoring VPC Service Controls ドキュメントを参照してください。

Cloud Monitoring へのアクセス権を付与する

プリンシパルの IAM ロールを管理するには、Google Cloud コンソールの [Identity and Access Management] ページまたは Google Cloud CLI を使用します。ただし、Cloud Monitoring には Monitoring 固有のロール、プロジェクト レベルのロール、Cloud Logging と Cloud Trace の一般的なロールを管理できるシンプルなインターフェースが用意されています。

プリンシパルに Monitoring、Cloud Logging、Cloud Trace へのアクセス権を付与するか、プロジェクト レベルのロールを付与するには、次のようにします。

Console

  1. Google Cloud コンソールで、 [権限] ページに移動します。

    [権限] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

    [権限] ページには、すべてのプリンシパルが表示されるわけではありません。プロジェクト レベルのロールを持つプリンシパル、または Monitoring、Logging、Trace に固有のロールのみが一覧表示されます。

    このページのオプションを使用すると、ロールに Monitoring 権限が含まれるすべてのプリンシパルを表示できます。

  2. [ アクセスを許可] をクリックします。

  3. [新しいプリンシパル] をクリックし、プリンシパルのユーザー名を入力します。複数のプリンシパルを追加できます。

  4. [ロールを選択] を展開して、[プロダクトまたはサービス] メニューから値を選択してから、[ロール] メニューからロールを選択します。

    プロダクトまたはサービスごとの選択 ロールの選択 説明
    モニタリング モニタリング閲覧者 Monitoring のデータと構成情報を表示します。 たとえば、このロールを持つプリンシパルは、カスタム ダッシュボードアラート ポリシーを表示できます。
    モニタリング モニタリング編集者 Monitoring データの表示、構成の作成と編集を行います。たとえば、このロールを持つプリンシパルは、カスタム ダッシュボードアラート ポリシーを作成できます。
    モニタリング モニタリング管理者 Monitoring データの表示、構成の作成と編集、指標のスコープの変更を行います。
    Cloud Trace Cloud Trace ユーザー Trace コンソールへの完全アクセス、トレースへの読み取りアクセス、シンクへの読み取り / 書き込みアクセス。詳細については、トレースのロールをご覧ください。
    Cloud Trace Cloud Trace 管理者 Trace コンソールへの完全アクセス、トレースへの読み取り/書き込みアクセス、シンクへの読み取り/書き込みアクセス。詳細については、トレースのロールをご覧ください。
    ロギング ログ閲覧者 ログに対する表示アクセス権。詳しくは、Logging のロールをご覧ください。
    ロギング Logging 管理者 Cloud Logging のすべての機能に対する完全アクセス権。詳しくは、Logging のロールをご覧ください。
    プロジェクト 閲覧者 ほとんどの Google Cloud リソースに対する閲覧権限。
    プロジェクト 編集者 ほとんどの Google Cloud リソースを表示、作成、更新、削除します。
    プロジェクト オーナー ほとんどの Google Cloud リソースに対する完全アクセス権。
  5. 省略可: 同じプリンシパルに別のロールを付与するには、[別のロールを追加] をクリックして前の手順を繰り返します。

  6. [保存] をクリックします。

上記の手順では、Google Cloud コンソールで Monitoring ページを使用して、プリンシパルに特定のロールを付与する方法について説明しています。これらのロールについて、このページでは編集および削除オプションもサポートされます。

  • プリンシパルのロールを削除するには、プリンシパルの横にあるチェックボックスをオンにして、 [アクセス権を削除] をクリックします。

  • プリンシパルのロールを編集するには、 [編集] をクリックします。設定を更新したら、[保存] をクリックします。

gcloud

gcloud projects add-iam-policy-binding コマンドを使用して monitoring.viewer または monitoring.editor 役割を付与します。

次に例を示します。

export PROJECT_ID="my-test-project"
export EMAIL_ADDRESS="myuser@gmail.com"
gcloud projects add-iam-policy-binding \
      $PROJECT_ID \
      --member="user:$EMAIL_ADDRESS" \
      --role="roles/monitoring.editor"

付与された役割は、gcloud projects get-iam-policy コマンドを使用して確認できます。

export PROJECT_ID="my-test-project"
gcloud projects get-iam-policy $PROJECT_ID

事前定義ロール

このセクションでは、Cloud Monitoring で事前定義されている IAM ロールのサブセットを示します。

Monitoring のロール

以下の役割は、モニタリングに関する一般的な権限を付与します。

名前
役割の名称
含まれている権限
roles/monitoring.viewer
モニタリング閲覧者
Google Cloud コンソールと Cloud Monitoring API の Monitoring への読み取り専用アクセス権を付与します。
roles/monitoring.editor
モニタリング編集者
Google Cloud コンソールと Cloud Monitoring API の Monitoring への読み取り / 書き込みアクセス権を付与します。
roles/monitoring.admin
モニタリング管理者
Google Cloud コンソールと Cloud Monitoring API の Monitoring への完全アクセス権を付与します。

サービス アカウントでは、書き込み専用アクセス権として以下の役割を使用します。

名前
役割の名称
説明
roles/monitoring.metricWriter
モニタリング指標の書き込み

このロールはサービス アカウントとエージェント用です。
Google Cloud コンソールで Monitoring へのアクセスを許可しないでください。
モニタリング データを指標スコープに書き込むことを許可します。

アラート ポリシーのロール

次のロールは、アラート ポリシーに関する権限を付与します。

名前
役割の名称
説明
roles/monitoring.alertPolicyViewer
Monitoring AlertPolicy 閲覧者
アラート ポリシーへの読み取り専用アクセス権を付与します。
roles/monitoring.alertPolicyEditor
Monitoring AlertPolicy 編集者
アラート ポリシーへの読み取り / 書き込みアクセス権を付与します。

ダッシュボードのロール

以下の役割は、ダッシュボードに関する権限のみを付与します。

名前
役割の名称
説明
roles/monitoring.dashboardViewer
モニタリング ダッシュボード構成の閲覧者
ダッシュボード構成に対する読み取り専用アクセス権を付与します。
roles/monitoring.dashboardEditor
モニタリング ダッシュボード構成の編集者
ダッシュボードの設定への読み取り / 書き込みアクセス権を付与します。

インシデントのロール

以下のロールは、インシデントに関する権限のみを付与します。

名前
役割の名称
説明
roles/monitoring.cloudConsoleIncidentViewer
Cloud コンソールのインシデントのモニタリング閲覧者
Google Cloud コンソールを使用してインシデントを表示するアクセス権を付与します。
roles/monitoring.cloudConsoleIncidentEditor
Cloud コンソールのインシデントのモニタリング編集者
Google Cloud コンソールを使用してインシデントを表示、確認、閉じるためのアクセス権を付与します。

インシデントを表示する際の IAM 権限エラーを解決する方法については、権限エラーのため、インシデントの詳細を表示できないをご覧ください。

通知チャネルのロール

以下の役割は、通知チャネルに関する権限のみを付与します。

名前
役割の名称
説明
roles/monitoring.notificationChannelViewer
モニタリング通知チャネルの閲覧者
通知チャネルへの読み取り専用アクセス権をふよします。
roles/monitoring.notificationChannelEditor
モニタリング通知チャネルの編集者
通知チャネルへの読み取り / 書き込みアクセス権を付与します。

通知のロールをスヌーズする

以下のロールは、通知をスヌーズする権限を付与します。

名前
役割の名称
説明
roles/monitoring.snoozeViewer
モニタリング スヌーズ閲覧者の
スヌーズに対する読み取り専用アクセス権を付与します。
roles/monitoring.snoozeEditor
モニタリング スヌーズ編集者
スヌーズに対する読み取り / 書き込みアクセス権を付与します。

サービス モニタリングのロール

以下の役割は、サービスを管理するための権限を付与します。

名前
役割の名称
説明
roles/monitoring.servicesViewer
モニタリング サービス閲覧者
サービスに対する読み取り専用アクセス権を付与します。
roles/monitoring.servicesEditor
モニタリング サービス編集者
サービスに対する読み取り / 書き込みアクセス権を付与します。

サービス モニタリングの詳細については、SLO モニタリングをご覧ください。

稼働時間チェック構成のロール

以下の役割は、稼働時間チェック構成に関する権限のみを付与します。

名前
役割の名称
説明
roles/monitoring.uptimeCheckConfigViewer
稼働時間チェック構成のモニタリングの閲覧者
稼働時間チェック構成への読み取り専用アクセス権を付与します。
roles/monitoring.uptimeCheckConfigEditor
稼働時間チェック構成のモニタリングの編集者
稼働時間チェック構成への読み取り / 書き込みアクセス権を付与します。

指標スコープ構成のロール

以下のロールは、指標のスコープに対する一般的な権限を付与します。

名前
役割の名称
説明
roles/monitoring.metricsScopesViewer
モニタリング指標スコープ閲覧者
指標スコープに対する読み取り専用アクセス権を付与します。
roles/monitoring.metricsScopesAdmin
モニタリング指標スコープ管理者
指標スコープに対する読み取り / 書き込みアクセス権を付与します。

事前定義ロールの権限

このセクションでは、Monitoring に関連する事前定義ロールに割り当てられた権限を示します。

事前定義ロールの詳細については、IAM: ロールと権限をご覧ください。 最適な事前定義ロールを選択する方法については、事前定義ロールの選択をご覧ください。

Monitoring のロールの権限

Role Permissions

(roles/monitoring.admin)

Provides full access to Cloud Monitoring.

Lowest-level resources where you can grant this role:

  • Project

cloudnotifications.activities.list

monitoring.*

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.get
  • monitoring.alertPolicies.list
  • monitoring.alertPolicies.update
  • monitoring.dashboards.create
  • monitoring.dashboards.delete
  • monitoring.dashboards.get
  • monitoring.dashboards.list
  • monitoring.dashboards.update
  • monitoring.groups.create
  • monitoring.groups.delete
  • monitoring.groups.get
  • monitoring.groups.list
  • monitoring.groups.update
  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.delete
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list
  • monitoring.metricsScopes.link
  • monitoring.monitoredResourceDescriptors.get
  • monitoring.monitoredResourceDescriptors.list
  • monitoring.notificationChannelDescriptors.get
  • monitoring.notificationChannelDescriptors.list
  • monitoring.notificationChannels.create
  • monitoring.notificationChannels.delete
  • monitoring.notificationChannels.get
  • monitoring.notificationChannels.getVerificationCode
  • monitoring.notificationChannels.list
  • monitoring.notificationChannels.sendVerificationCode
  • monitoring.notificationChannels.update
  • monitoring.notificationChannels.verify
  • monitoring.services.create
  • monitoring.services.delete
  • monitoring.services.get
  • monitoring.services.list
  • monitoring.services.update
  • monitoring.slos.create
  • monitoring.slos.delete
  • monitoring.slos.get
  • monitoring.slos.list
  • monitoring.slos.update
  • monitoring.snoozes.create
  • monitoring.snoozes.get
  • monitoring.snoozes.list
  • monitoring.snoozes.update
  • monitoring.timeSeries.create
  • monitoring.timeSeries.list
  • monitoring.uptimeCheckConfigs.create
  • monitoring.uptimeCheckConfigs.delete
  • monitoring.uptimeCheckConfigs.get
  • monitoring.uptimeCheckConfigs.list
  • monitoring.uptimeCheckConfigs.update

opsconfigmonitoring.*

  • opsconfigmonitoring.resourceMetadata.list
  • opsconfigmonitoring.resourceMetadata.write

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.enable

serviceusage.services.get

stackdriver.*

  • stackdriver.projects.edit
  • stackdriver.projects.get
  • stackdriver.resourceMetadata.list
  • stackdriver.resourceMetadata.write

(roles/monitoring.alertPolicyEditor)

Read/write access to alerting policies.

monitoring.alertPolicies.*

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.get
  • monitoring.alertPolicies.list
  • monitoring.alertPolicies.update

(roles/monitoring.alertPolicyViewer)

Read-only access to alerting policies.

monitoring.alertPolicies.get

monitoring.alertPolicies.list

(roles/monitoring.cloudConsoleIncidentEditor)

Read/write access to incidents from Cloud Console.

(roles/monitoring.cloudConsoleIncidentViewer)

Read access to incidents from Cloud Console.

(roles/monitoring.dashboardEditor)

Read/write access to dashboard configurations.

monitoring.dashboards.*

  • monitoring.dashboards.create
  • monitoring.dashboards.delete
  • monitoring.dashboards.get
  • monitoring.dashboards.list
  • monitoring.dashboards.update

(roles/monitoring.dashboardViewer)

Read-only access to dashboard configurations.

monitoring.dashboards.get

monitoring.dashboards.list

(roles/monitoring.editor)

Provides full access to information about all monitoring data and configurations.

Lowest-level resources where you can grant this role:

  • Project

cloudnotifications.activities.list

monitoring.alertPolicies.*

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.get
  • monitoring.alertPolicies.list
  • monitoring.alertPolicies.update

monitoring.dashboards.*

  • monitoring.dashboards.create
  • monitoring.dashboards.delete
  • monitoring.dashboards.get
  • monitoring.dashboards.list
  • monitoring.dashboards.update

monitoring.groups.*

  • monitoring.groups.create
  • monitoring.groups.delete
  • monitoring.groups.get
  • monitoring.groups.list
  • monitoring.groups.update

monitoring.metricDescriptors.*

  • monitoring.metricDescriptors.create
  • monitoring.metricDescriptors.delete
  • monitoring.metricDescriptors.get
  • monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

  • monitoring.monitoredResourceDescriptors.get
  • monitoring.monitoredResourceDescriptors.list

monitoring.notificationChannelDescriptors.*

  • monitoring.notificationChannelDescriptors.get
  • monitoring.notificationChannelDescriptors.list

monitoring.notificationChannels.create

monitoring.notificationChannels.delete

monitoring.notificationChannels.get

monitoring.notificationChannels.list

monitoring.notificationChannels.sendVerificationCode

monitoring.notificationChannels.update

monitoring.notificationChannels.verify

monitoring.services.*

  • monitoring.services.create
  • monitoring.services.delete
  • monitoring.services.get
  • monitoring.services.list
  • monitoring.services.update

monitoring.slos.*

  • monitoring.slos.create
  • monitoring.slos.delete
  • monitoring.slos.get
  • monitoring.slos.list
  • monitoring.slos.update

monitoring.snoozes.*

  • monitoring.snoozes.create
  • monitoring.snoozes.get
  • monitoring.snoozes.list
  • monitoring.snoozes.update

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

monitoring.uptimeCheckConfigs.*

  • monitoring.uptimeCheckConfigs.create
  • monitoring.uptimeCheckConfigs.delete
  • monitoring.uptimeCheckConfigs.get
  • monitoring.uptimeCheckConfigs.list
  • monitoring.uptimeCheckConfigs.update

opsconfigmonitoring.*

  • opsconfigmonitoring.resourceMetadata.list
  • opsconfigmonitoring.resourceMetadata.write

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.enable

serviceusage.services.get

stackdriver.*

  • stackdriver.projects.edit
  • stackdriver.projects.get
  • stackdriver.resourceMetadata.list
  • stackdriver.resourceMetadata.write

(roles/monitoring.metricWriter)

Provides write-only access to metrics. This provides exactly the permissions needed by the Cloud Monitoring agent and other systems that send metrics.

Lowest-level resources where you can grant this role:

  • Project

monitoring.metricDescriptors.create

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

  • monitoring.monitoredResourceDescriptors.get
  • monitoring.monitoredResourceDescriptors.list

monitoring.timeSeries.create

(roles/monitoring.metricsScopesAdmin)

Access to add and remove monitored projects from metrics scopes.

monitoring.metricsScopes.link

resourcemanager.projects.get

resourcemanager.projects.list

(roles/monitoring.metricsScopesViewer)

Read-only access to metrics scopes and their monitored projects.

resourcemanager.projects.get

resourcemanager.projects.list

(roles/monitoring.notificationChannelEditor)

Read/write access to notification channels.

monitoring.notificationChannelDescriptors.*

  • monitoring.notificationChannelDescriptors.get
  • monitoring.notificationChannelDescriptors.list

monitoring.notificationChannels.create

monitoring.notificationChannels.delete

monitoring.notificationChannels.get

monitoring.notificationChannels.list

monitoring.notificationChannels.sendVerificationCode

monitoring.notificationChannels.update

monitoring.notificationChannels.verify

(roles/monitoring.notificationChannelViewer)

Read-only access to notification channels.

monitoring.notificationChannelDescriptors.*

  • monitoring.notificationChannelDescriptors.get
  • monitoring.notificationChannelDescriptors.list

monitoring.notificationChannels.get

monitoring.notificationChannels.list

(roles/monitoring.servicesEditor)

Read/write access to services.

monitoring.services.*

  • monitoring.services.create
  • monitoring.services.delete
  • monitoring.services.get
  • monitoring.services.list
  • monitoring.services.update

monitoring.slos.*

  • monitoring.slos.create
  • monitoring.slos.delete
  • monitoring.slos.get
  • monitoring.slos.list
  • monitoring.slos.update

(roles/monitoring.servicesViewer)

Read-only access to services.

monitoring.services.get

monitoring.services.list

monitoring.slos.get

monitoring.slos.list

(roles/monitoring.snoozeEditor)

monitoring.snoozes.*

  • monitoring.snoozes.create
  • monitoring.snoozes.get
  • monitoring.snoozes.list
  • monitoring.snoozes.update

(roles/monitoring.snoozeViewer)

monitoring.snoozes.get

monitoring.snoozes.list

(roles/monitoring.uptimeCheckConfigEditor)

Read/write access to uptime check configurations.

monitoring.uptimeCheckConfigs.*

  • monitoring.uptimeCheckConfigs.create
  • monitoring.uptimeCheckConfigs.delete
  • monitoring.uptimeCheckConfigs.get
  • monitoring.uptimeCheckConfigs.list
  • monitoring.uptimeCheckConfigs.update

(roles/monitoring.uptimeCheckConfigViewer)

Read-only access to uptime check configurations.

monitoring.uptimeCheckConfigs.get

monitoring.uptimeCheckConfigs.list

(roles/monitoring.viewer)

Provides read-only access to get and list information about all monitoring data and configurations.

Lowest-level resources where you can grant this role:

  • Project

cloudnotifications.activities.list

monitoring.alertPolicies.get

monitoring.alertPolicies.list

monitoring.dashboards.get

monitoring.dashboards.list

monitoring.groups.get

monitoring.groups.list

monitoring.metricDescriptors.get

monitoring.metricDescriptors.list

monitoring.monitoredResourceDescriptors.*

  • monitoring.monitoredResourceDescriptors.get
  • monitoring.monitoredResourceDescriptors.list

monitoring.notificationChannelDescriptors.*

  • monitoring.notificationChannelDescriptors.get
  • monitoring.notificationChannelDescriptors.list

monitoring.notificationChannels.get

monitoring.notificationChannels.list

monitoring.services.get

monitoring.services.list

monitoring.slos.get

monitoring.slos.list

monitoring.snoozes.get

monitoring.snoozes.list

monitoring.timeSeries.list

monitoring.uptimeCheckConfigs.get

monitoring.uptimeCheckConfigs.list

opsconfigmonitoring.resourceMetadata.list

resourcemanager.projects.get

resourcemanager.projects.list

stackdriver.projects.get

stackdriver.resourceMetadata.list

Ops 構成のモニタリングのロールの権限

Role Permissions

(roles/opsconfigmonitoring.resourceMetadata.viewer)

Read-only access to resource metadata.

opsconfigmonitoring.resourceMetadata.list

(roles/opsconfigmonitoring.resourceMetadata.writer)

Write-only access to resource metadata. This provides exactly the permissions needed by the Ops Config Monitoring metadata agent and other systems that send metadata.

opsconfigmonitoring.resourceMetadata.write

Stackdriver のロールの権限

Role Permissions

(roles/stackdriver.accounts.editor)

Read/write access to manage Stackdriver account structure.

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.services.enable

serviceusage.services.get

stackdriver.projects.*

  • stackdriver.projects.edit
  • stackdriver.projects.get

(roles/stackdriver.accounts.viewer)

Read-only access to get and list information about Stackdriver account structure.

resourcemanager.projects.get

resourcemanager.projects.list

stackdriver.projects.get

(roles/stackdriver.resourceMetadata.writer)

Write-only access to resource metadata. This provides exactly the permissions needed by the Stackdriver metadata agent and other systems that send metadata.

stackdriver.resourceMetadata.write

Google Cloud ロールに含まれる Monitoring の権限

Google Cloud 関連の役割には以下の権限が含まれます。

名前
役割の名称
含まれている権限
roles/viewer
閲覧者
モニタリング権限は、roles/monitoring.viewer の権限と同じです。
roles/editor
編集者

Monitoring の権限は、stackdriver.projects.edit 権限を除き、roles/monitoring.editor の権限と同じです。ロール roles/editor には stackdriver.projects.edit 権限は含まれていません。

このロールでは、指標のスコープを変更する権限は付与されません。API の使用時に指標のスコープを変更するには、ロールに権限 monitoring.metricsScopes.link を含める必要があります。Google Cloud コンソールの使用時に指標スコープを変更するには、ロールに権限 monitoring.metricsScopes.link を含めるか、ロール roles/monitoring.editor が必要です。

roles/owner
オーナー
モニタリング権限は、roles/monitoring.admin の中の権限と同じです。

カスタムロール

事前定義ロールで付与される権限よりも制限された一連の権限をプリンシパルに付与する場合は、カスタムロールを作成します。たとえば、データ所在地または影響レベル 4(IL4)の要件があるために Assured Workloads を設定した場合は、稼働時間チェックを使用しないでください。稼働時間チェックのデータは、特定の地理的ロケーションに保持されることが保証されません。稼働時間チェックの使用を防ぐには、接頭辞 monitoring.uptimeCheckConfigs が付いた権限を含まないロールを作成します。

Monitoring 権限を持つカスタムの役割を作成するには、次のようにします。

  • Monitoring API に関する権限のみを付与するロールの場合は、権限と事前定義のロールの権限から選択します。

  • Google Cloud コンソールで Monitoring の権限を付与するロールについては、Monitoring のロールのセクションにある権限グループから選択します。

  • モニタリング データの書き込み権限を付与するには、権限と事前定義のロール セクションにあるロール roles/monitoring.metricWriter の権限を含めます。

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

Compute Engine のアクセス スコープ

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

アクセス スコープ 付与される権限
https://www.googleapis.com/auth/monitoring.read roles/monitoring.viewer に含まれる権限と同じ。
https://www.googleapis.com/auth/monitoring.write roles/monitoring.metricWriter に含まれる権限と同じ。
https://www.googleapis.com/auth/monitoring Monitoring に対する完全アクセス権です。
https://www.googleapis.com/auth/cloud-platform 有効にされているすべての Cloud API に対する完全アクセス権です。

詳しくは、アクセス スコープをご覧ください。

ベスト プラクティス。 VM インスタンスに最も強力なアクセス スコープ(cloud-platform)を付与し、次に IAM ロールを使用して特定の API やオペレーションへのアクセスを制限することをおすすめします。詳しくは、サービス アカウント権限をご覧ください。