存取權控管

Monitoring 可使用 Cloud 身分與存取權管理 (Cloud IAM) 角色與權限,控管在工作區中監控資料的存取權。

總覽

如要使用 Monitoring,您必須在工作區授予適當的 Cloud IAM 權限。

一般而言,API 中的每個 REST 方法都有關聯的權限,您必須具備權限才能使用對應的方法。權限不會直接授予使用者;而是會透過角色間接授予權限,如此可將多個權限分組,使權限管理起來更加容易。如要進一步瞭解這些概念,請參閱 Cloud IAM 說明文件中有關角色、權限與相關概念的說明。

系統已為您預先定義常見權限組合的角色,但您也可以建立 Cloud IAM 自訂角色來建立您自己的權限組合。

預先定義的角色

以下 Cloud IAM 角色由 Monitoring 預先定義。這些角色只為 Monitoring 授予權限。

Monitoring

以下角色為 Monitoring 授予一般權限:

角色 ID
角色名稱
說明
roles/monitoring.viewer
Monitoring 檢視者
讓您唯讀存取 Stackdriver Monitoring 主控台與 API
roles/monitoring.editor
Monitoring 編輯者
讓您讀取/寫入 Stackdriver Monitoring 主控台與 API,並讓您將監控資料寫入工作區
roles/monitoring.admin
Monitoring 管理員
讓您完全存取所有 Monitoring 功能

以下角色由服務帳戶用於唯寫存取:

角色 ID
角色名稱
說明
roles/monitoring.metricWriter
Monitoring 指標寫入者
允許將監控資料寫入工作區;不允許存取 Stackdriver Monitoring 主控台。適用於服務帳戶。

快訊政策

以下角色僅為快訊政策授予權限:

角色 ID
角色名稱
說明
roles/monitoring.alertPolicyViewer
Monitoring AlertPolicy 檢視者
讓您唯讀存取快訊政策
roles/monitoring.alertPolicyEditor
Monitoring AlertPolicy 編輯者
讓您讀寫存取快訊政策

通知管道

以下角色僅為通知管道授予權限:

角色 ID
角色名稱
說明
roles/monitoring.notificationChannelViewer
Monitoring NotificationChannel 檢視者
讓您唯讀存取通知管道
roles/monitoring.notificationChannelEditor
Monitoring NotificationChannel 編輯者
讓您唯寫存取通知管道

Google Cloud Platform

以下角色為 Google Cloud Platform (GCP) 中的許多服務和資源授予權限,包括 Monitoring:

角色 ID
角色名稱
說明
roles/viewer
專案檢視者
讓您唯讀存取 Stackdriver Monitoring 主控台與 API
roles/editor
專案編輯者
讓您唯寫存取 Stackdriver Monitoring 主控台與 API
roles/owner
專案擁有者
讓您完全存取 Stackdriver Monitoring 主控台與 API

自訂角色

您也可以建立您自己的自訂角色,且這些角色包含權限清單。如要進一步瞭解角色與權限,請前往本頁面的權限與角色自訂角色

權限與角色

本節列出適用於 Monitoring 的 Cloud IAM 權限與角色。

API 權限

每個 Monitoring API 方法都需要特定 Cloud 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.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.timeSeries.create monitoring.timeSeries.create 專案
projects.timeSeries.list 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 專案必須是工作區。

Stackdriver Monitoring 主控台權限

Stackdriver Monitoring 主控台的每個功能都要求您具備用於實作該功能之 API 的權限。例如,瀏覽群組的功能要求您具有適用於群組和群組成員之 listget 方法的權限。如果撤銷所需權限,Stackdriver Monitoring 主控台會喪失功能。

下表列出了使用 Stackdriver Monitoring 主控台所需的權限:

Stackdriver Monitoring 主控台活動 所需權限 適用的資源類型
具備完整唯讀權限 roles/monitoring.viewer 角色所包含的權限集 專案1
具備主控台的唯寫權限 roles/monitoring.editor 角色所包含的權限集 專案1
具備主控台的完整權限 roles/monitoring.admin 角色所包含的權限集 專案1

1 專案必須是工作區。

角色

下表列出了授予 Monitoring 存取權的 Cloud IAM 角色及與每個角色相關聯的權限。 其中有一些角色已升級:例如,roles/monitoring.editor 角色包含 roles/monitoring.viewer 角色的所有權限,外加一個權限集。

角色只能在專案層級指派,且專案必須是工作區。

Monitoring

Monitoring 角色包含下列權限:

角色 ID
角色名稱
具備的權限
roles/monitoring.viewer
Monitoring 檢視者
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.analyzedMetrics.get1
monitoring.analyzedMetrics.list1
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.timeSeries.list
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
resourcemanager.projects.get
resourcemanager.projects.list
stackdriver.projects.get
roles/monitoring.editor
Monitoring 編輯者
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update
monitoring.analyzedMetrics.create1
monitoring.analyzedMetrics.delete1
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.timeSeries.create
monitoring.timeSeries.list
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update
resourcemanager.projects.get
resourcemanager.projects.list
stackdriver.projects.edit
stackdriver.projects.get
stackdriver.resourceMetadata.write
roles/monitoring.admin
Monitoring 管理員
roles/monitoring.editor 中的權限,外加下列權限:
monitoring.notificationChannels.getVerificationCode

1 必須具備這些權限,才能支援 Stackdriver Monitoring 主控台。這些權限不能在自訂角色中使用。

以下角色由服務帳戶用於唯寫存取:

角色 ID
角色名稱
具備的權限
roles/monitoring.metricWriter
Monitoring 指標寫入者
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.notificationChannelViewer
Monitoring NotificationChannel 檢視者
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
roles/monitoring.notificationChannelEditor
Monitoring NotificationChannel 編輯者
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

Google Cloud Platform

GCP 角色包含下列權限:

角色 ID
角色名稱
具備的權限
roles/viewer
專案檢視者
Monitoring 權限就是 roles/monitoring.viewer 中的權限。
roles/editor
專案編輯者
Monitoring 權限與 roles/monitoring.editor 中的權限相同。
roles/owner
專案擁有者
Monitoring 權限與 roles/editor 中的權限相同。

授予 Cloud IAM 角色

Compute Engine 和 App Engine 的專案擁有者、編輯者與預設服務帳戶應已具備必要的權限;但是,對於其他使用者帳戶而言,可能需要明確授予這些角色。

例如,為了使用 API 讀取或寫入 MetricDescriptors,該使用者必須具有適當的 monitoring.metricDescriptors.* Cloud IAM 權限。可以藉由授予預先定義的 Monitoring 檢視者 (monitoring.viewer) 和 Monitoring 編輯者 (monitoring.editor) 角色來提供。詳情請參閱 API 權限一文。

可以使用 Cloud SDK gcloud 指令列工具或 Google Cloud Platform Console (GCP 主控台) 來授予這些權限。

Cloud SDK

使用 gcloud projects add-iam-policy-binding 指令以授予 monitoring.viewermonitoring.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

GCP 主控台

  1. 前往 GCP 主控台:

    前往 GCP 主控台

  2. 如有必要,請按一下 GCP 專案的下拉式清單,然後選取要在其中啟用 API 的專案名稱。

  3. 如要展開導覽選單,請按一下 [Menu] (選單) [menu] (選單)

  4. 按一下 [IAM 與管理員]

  5. 如果未出現使用者,請按一下 [Add] (新增) 按鈕,然後按一下 [Select a role] (選取角色) 旁邊的下拉式清單;否則,按一下要編輯其權限之現有使用者旁邊「Role(s)」(角色) 資料欄下方的切換按鈕。

  6. 在「Manage Roles」(管理角色) 窗格中,將指標移至左側,並捲動至「Monitoring」

  7. 在「Manage Roles」(管理角色) 窗格中,將指標移至右側,並選取適當的角色:

    • Monitoring 編輯者可授予讀取/寫入權限。
    • Monitoring 檢視者可授予唯讀權限。

自訂角色

如要建立具有 Monitoring 權限的自訂角色,請執行下列步驟:

如要進一步瞭解自訂角色,請參閱瞭解身分與存取權管理自訂角色一文。

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 的完整權限。

詳情請參閱存取範圍一文。

最佳做法: 由於服務帳戶 Cloud IAM 角色易於設定和變更,因此,最佳做法是為 VM 執行個體提供最強大的存取範圍 (cloud-platform),然後使用 Cloud IAM 角色來限制對特定 API 和作業的存取權。詳情請參閱服務帳戶權限一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Monitoring
需要協助嗎?請前往我們的支援網頁