アクセス制御

Cloud Monitoring は、Identity and Access Management(IAM)の役割と権限を使用してワークスペースのモニタリング データへのアクセスを制御します。

VPC Service Controls

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

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

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

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

Monitoring IAM の概要

モニタリングを使用するには、該当する IAM 権限がワークスペースに付与されている必要があります。

一般に、API の各 REST メソッドには権限が関連付けられているので、特定のメソッドを使用するには、それに関連付けられている権限が必要です。権限はユーザーに直接付与されるのではなく、役割を通して間接的に付与されます。役割は、複数の権限をグループ化して管理しやすいようにしたものです。これらのコンセプトの詳細については、アクセス管理に関連するコンセプトをご覧ください。

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

事前定義された役割

Cloud Monitoring では、次の IAM 役割が事前定義されています。これらは Monitoring に関する権限のみを付与します。

モニタリング

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

役割 ID
役割名
説明
roles/monitoring.viewer
モニタリング閲覧者
Google Cloud Console と API の Monitoring への読み取り専用アクセス権を付与します。
roles/monitoring.editor
モニタリング編集者
Google Cloud Console と API で Monitoring に対する読み取りと書き込みのアクセス権を付与し、
ワークスペースを作成できます。
roles/monitoring.admin
モニタリング管理者
Google Cloud Console で Monitoring に対する完全アクセス権を付与し、ワークスペースを作成できます。

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

役割 ID
役割名
説明
roles/monitoring.metricWriter
モニタリング指標の書き込み
モニタリングデータをワークスペースに書き込むことを許可します。Google Cloud Console で Monitoring へのアクセスを許可しません。サービス アカウント用。

アラート ポリシー

以下の役割は、アラート ポリシーに関する権限のみを付与します。

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

ダッシュボード

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

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

通知チャネル

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

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

サービスのモニタリング

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

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

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

稼働時間チェック構成

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

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

ワークスペース

ワークスペースを作成、管理するには、Google Cloud Console を使用する必要があります。ワークスペースの作成に必要なロールについては、事前定義された Monitoring のロールをご覧ください。

Google Cloud

以下の役割は、Monitoring など、Google Cloud の多くのサービスとリソースに対する権限を付与します。

役割 ID
役割名
説明
roles/viewer
プロジェクト閲覧者
Google Cloud Console と API の Monitoring への読み取り専用アクセス権を付与します。
roles/editor
プロジェクト編集者
Google Cloud Console と API で Monitoring に対する読み取りと書き込みのアクセス権を付与し、
既存のワークスペースを使用できます。このロールではワークスペースを作成できません。
roles/owner
プロジェクト オーナー
Google Cloud Console と API で Monitoring に対する完全アクセス権を付与し、
ワークスペースを作成できます。

カスタムの役割

権限のリストを含む独自のカスタム役割を作成することもできます。役割と権限の詳細については、このページの権限と役割カスタムの役割をご覧ください。

権限と役割

このセクションでは、Monitoring に適用される IAM の権限と役割を示します。

API 権限

それぞれの Monitoring API メソッドには、次の表に示す特定の IAM 権限が必要となります。

Monitoring API メソッド 権限 リソースの種類
projects.alertPolicies.create monitoring.alertPolicies.create プロジェクト1
projects.alertPolicies.delete monitoring.alertPolicies.delete AlertPolicy
projects.alertPolicies.get monitoring.alertPolicies.get AlertPolicy
projects.alertPolicies.list monitoring.alertPolicies.list プロジェクト1
projects.alertPolicies.patch monitoring.alertPolicies.update AlertPolicy
projects.dashboards.create monitoring.dashboards.create プロジェクト1
projects.dashboards.delete monitoring.dashboards.delete プロジェクト1
projects.dashboards.get monitoring.dashboards.get プロジェクト1
projects.dashboards.list monitoring.dashboards.list プロジェクト1
projects.dashboards.patch monitoring.dashboards.update プロジェクト1
projects.groups.create monitoring.groups.create プロジェクト1
projects.groups.delete monitoring.groups.delete Group
projects.groups.get monitoring.groups.get Group
projects.groups.list monitoring.groups.list プロジェクト1
projects.groups.update monitoring.groups.update Group
projects.groups.members.list monitoring.groups.get Group
projects.metricDescriptors.create monitoring.metricDescriptors.create プロジェクト
projects.metricDescriptors.delete monitoring.metricDescriptors.delete MetricDescriptor
projects.metricDescriptors.get monitoring.metricDescriptors.get MetricDescriptor
projects.metricDescriptors.list monitoring.metricDescriptors.list プロジェクト
projects.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.get MonitoredResourceDescriptor
projects.monitoredResourceDescriptors.list monitoring.monitoredResourceDescriptors.list プロジェクト
projects.notificationChannelDescriptors.get monitoring.notificationChannelDescriptors.get NotificationChannelDescriptor
projects.notificationChannelDescriptors.list monitoring.notificationChannelDescriptors.list プロジェクト1
projects.notificationChannels.create monitoring.notificationChannels.create プロジェクト1
projects.notificationChannels.delete monitoring.notificationChannels.delete NotificationChannel
projects.notificationChannels.get monitoring.notificationChannels.get NotificationChannel
projects.notificationChannels.getVerificationCode monitoring.notificationChannels.getVerificationCode NotificationChannel
projects.notificationChannels.list monitoring.notificationChannels.list プロジェクト1
projects.notificationChannels.patch monitoring.notificationChannels.update NotificationChannel
projects.notificationChannels.sendVerificationCode monitoring.notificationChannels.sendVerificationCode NotificationChannel
projects.notificationChannels.verify monitoring.notificationChannels.verify NotificationChannel
projects.services.create monitoring.services.create プロジェクト1
projects.services.delete monitoring.services.delete Service
projects.services.get monitoring.services.get Service
projects.services.list monitoring.services.list プロジェクト1
projects.services.patch monitoring.services.update Service
projects.services.serviceLevelObjectives.create monitoring.slos.create プロジェクト1
projects.services.serviceLevelObjectives.delete monitoring.slos.delete ServiceLevelObjective
projects.services.serviceLevelObjectives.get monitoring.slos.get ServiceLevelObjective
projects.services.serviceLevelObjectives.list monitoring.slos.list プロジェクト1
projects.services.serviceLevelObjectives.patch monitoring.slos.update ServiceLevelObjective
projects.timeSeries.create monitoring.timeSeries.create プロジェクト
projects.timeSeries.list monitoring.timeSeries.list プロジェクト
projects.timeSeries.query monitoring.timeSeries.list プロジェクト
projects.uptimeCheckConfigs.create monitoring.uptimeCheckConfigs.create UptimeCheckConfig
projects.uptimeCheckConfigs.delete monitoring.uptimeCheckConfigs.delete UptimeCheckConfig
projects.uptimeCheckConfigs.get monitoring.uptimeCheckConfigs.get UptimeCheckConfig
projects.uptimeCheckConfigs.list monitoring.uptimeCheckConfigs.list UptimeCheckConfig
projects.uptimeCheckConfigs.patch monitoring.uptimeCheckConfigs.update UptimeCheckConfig

1 プロジェクトはワークスペース内にある必要があります。

モニタリングのコンソール権限

Google Cloud Console の Monitoring の各機能には、機能の実装に使用する API に対する権限が必要です。たとえば、グループを参照するには、グループやグループ メンバーに適用される list および get メソッドに関する権限が必要です。必要な権限が取り消されると、機能を失う可能性があります。

Google Cloud Console で Monitoring を使用するために必要な権限のリストを次のテーブルに示します。

直接的に示す 必要な権限 リソースタイプ
完全な読み取り専用アクセス roles/monitoring.viewer 役割に含まれる権限のセット プロジェクト 1.
Console への読み書きアクセス roles/monitoring.editor 役割に含まれる権限のセット プロジェクト 1.
Console への完全アクセス roles/monitoring.admin 役割に含まれる権限のセット プロジェクト 1.

1 プロジェクトはワークスペース内にある必要があります。

役割

次の表に、Monitoring に対するアクセス権を付与する IAM のロールと、各ロールに関連付けられた権限を示します。これらの役割の中には累進的なものがあります。たとえば roles/monitoring.editor 役割には、roles/monitoring.viewer 役割に含まれるすべての権限の他に、追加の一連の権限が含まれます。

役割はプロジェクト レベルでのみ割り当てられます。また、プロジェクトはワークスペース内にある必要があります。

モニタリング

モニタリング関連の役割には、以下の権限が含まれています。

役割 ID
役割名
含まれている権限
roles/monitoring.viewer
モニタリング閲覧者
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.get
monitoring.monitoredResourceDescriptors.list
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
monitoring.publicWidgets.get
monitoring.publicWidgets.list
monitoring.services.get
monitoring.services.list
monitoring.slos.get
monitoring.slos.list
monitoring.timeSeries.list
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
resourcemanager.projects.get
resourcemanager.projects.list
stackdriver.projects.get
roles/monitoring.editor
モニタリング編集者
cloudnotifications.activities.list
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.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannels.create
monitoring.notificationChannels.delete
monitoring.notificationChannels.get
monitoring.notificationChannels.list
monitoring.notificationChannels.sendVerificationCode
monitoring.notificationChannels.update
monitoring.notificationChannels.verify
monitoring.publicWidgets.create
monitoring.publicWidgets.delete
monitoring.publicWidgets.get
monitoring.publicWidgets.list
monitoring.publicWidgets.update
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.timeSeries.create
monitoring.timeSeries.list
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update
opsconfigmonitoring.resourceMetadata.write
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.services.enable
stackdriver.projects.edit
stackdriver.projects.get
stackdriver.resourceMetadata.write
roles/monitoring.admin
モニタリング管理者
roles/monitoring.editorに含まれる権限に加えて、以下の権限が含まれます。
monitoring.notificationChannels.getVerificationCode

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

役割 ID
役割名
含まれている権限
roles/monitoring.metricWriter
モニタリング指標の書き込み
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create

アラート ポリシー

アラート ポリシー関連の役割には、以下の権限が含まれています。

役割 ID
役割名
含まれている権限
roles/monitoring.alertPolicyViewer
Monitoring AlertPolicy 閲覧者
monitoring.alertPolicies.get
monitoring.alertPolicies.list
roles/monitoring.alertPolicyEditor
Monitoring AlertPolicy 編集者
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update

ダッシュボード

ダッシュボード関連の役割には以下の権限が含まれます。

役割 ID
役割名
含まれている権限
roles/monitoring.dashboardViewer
モニタリング ダッシュボード構成の閲覧者
monitoring.dashboards.get
monitoring.dashboards.list
roles/monitoring.dashboardEditor
モニタリング ダッシュボード構成の編集者
monitoring.dashboards.get
monitoring.dashboards.list
monitoring.dashboards.create
monitoring.dashboards.delete
monitoring.dashboards.update

通知チャネル

通知チャネル関連の役割には、以下の権限が含まれています。

役割 ID
役割名
含まれている権限
roles/monitoring.notificationChannelViewer
モニタリング通知チャネルの閲覧者
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
roles/monitoring.notificationChannelEditor
モニタリング通知チャネルの編集者
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

サービスのモニタリング

サービス モニタリング関連の役割には以下の権限が含まれます。

役割 ID
役割名
含まれている権限
roles/monitoring.servicesViewer
モニタリング サービス閲覧者
monitoring.services.get
monitoring.services.list
monitoring.slos.get
monitoring.slos.list
roles/monitoring.servicesEditor
モニタリング サービス編集者
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

稼働時間チェック構成

稼働時間チェック構成関連の役割には以下の権限が含まれます。

役割 ID
役割名
含まれている権限
roles/monitoring.uptimeCheckConfigViewer
稼働時間チェック構成のモニタリングの閲覧者
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
roles/monitoring.uptimeCheckConfigEditor
稼働時間チェック構成のモニタリングの編集者
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update

ワークスペースの構成

ワークスペースを作成、管理するには、Google Cloud Console を使用する必要があります。ワークスペースの作成に必要なロールについては、事前定義された Monitoring のロールをご覧ください。

Google Cloud

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

役割 ID
役割名
含まれている権限
roles/viewer
プロジェクト閲覧者
モニタリング権限は、roles/monitoring.viewer の権限と同じです。
roles/editor
プロジェクト編集者
モニタリング権限は、roles/monitoring.editor の権限と同じです。
roles/owner
プロジェクト オーナー
モニタリング権限は、roles/editor の権限と同じです。

IAM の役割の付与

Compute Engine と App Engine のプロジェクト オーナー、編集者、デフォルト サービス アカウントには、必要な権限がすでに割り当てられていますが、他のユーザー アカウントに権限を明示的に付与する必要が生じることがあります。

たとえば、ユーザー アカウントで Monitoring API を使用して指標記述子の読み取りまたは書き込みを行うには、ユーザーに適切な monitoring.metricDescriptors.* IAM 権限が必要です。これを行うには、事前定義されたモニタリング閲覧者roles/monitoring.viewer)とモニタリング編集者roles/monitoring.editor)の役割を付与します。詳しくは、API 権限をご覧ください。

これらの権限を付与するには、Cloud SDK の gcloud コマンドライン ツール、または Google Cloud Console(Cloud Console)を使用します。

Cloud SDK

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 Console

  1. Cloud Console に移動します。

    Cloud Console に移動

  2. 必要に応じて、Google Cloud プロジェクトのプルダウン リストをクリックし、API を有効にするプロジェクトの名前を選択します。

  3. ナビゲーション メニューを展開するには、メニュー をクリックします。

  4. [IAM と管理] をクリックします。

  5. ユーザーがメンバーの場合は、[編集] をクリックして権限を変更します。既存のロールの変更や、別のロールを追加できます。変更を保存するには、[保存] をクリックします。

  6. ユーザーがメンバーでない場合は、次のようにします。

    1. [追加] をクリックします。
    2. [新しいメンバー] テキスト ボックスにユーザ名を入力します。
    3. [役割を選択] で、メニュー アイコン をクリックします。
    4. フィルタバー に適切なロールを入力します。
      • Monitoring Editor は読み取りと書き込みアクセス権を付与します。
      • Monitoring Viewer は読み取り専用アクセス権を付与します。

カスタムの役割

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

  • Monitoring API に関する権限のみを付与する役割の場合は、API 権限セクションにある権限から選択します。

  • Google Cloud Console で Monitoring の権限を付与するロールについては、Monitoring の Console 権限の権限グループから選択してください。

  • モニタリング データの書き込み権限を付与するには、役割セクションにある役割 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 APIs に対する完全アクセス権です。

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

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