存取權控管指南

Stackdriver Logging 使用 Cloud 身分與存取權管理來控管對於專案、機構、資料夾與帳單帳戶中記錄資料的存取權。

總覽

Cloud IAM 權限與角色可決定您能夠如何使用 Logging API記錄檢視器

Cloud IAM 角色是一組權限,您可將這些角色指派給成員。您無法直接為成員指派權限,而是將角色授予成員,這樣可以讓成員獲得該角色中包含的所有權限。

記錄資料位於這些資源類型中:專案、機構、資料夾與帳單帳戶。這裡的每一個資源都有自己的一組成員,而成員也都有自己的 Logging 角色組。

如要在資源內,從 Stackdriver Logging 建立或使用記錄資料,成員必須具有包含適當權限的 Cloud IAM 角色。這些 Cloud IAM 角色與權限的摘要清單如下所示:

  • roles/logging.viewer (記錄檢視者) 賦予成員對 Logging 所有功能的唯讀存取權,但讀取私人記錄的權限除外。

  • roles/logging.privateLogViewer (私密記錄檢視者) 賦予成員可在 roles/logging.viewer 中找到的權限,外加讀取私人記錄的權限。

  • roles/logging.logWriter (記錄寫入者) 可授予是服務帳戶的成員,並讓成員擁有寫入記錄的足夠權限。此角色無法讓您存取記錄檢視器。

  • roles/logging.configWriter (記錄設定寫入者) 授予成員建立記錄指標及匯出接收器的權限。如要使用記錄檢視器,請新增 roles/logging.viewer 角色。

  • roles/logging.admin (Logging 管理員) 授予成員與 Logging 相關的所有權限。如需這些權限的完整清單,請參閱 API 權限一文。

  • roles/viewer (專案檢視者) 在專案層級上授予成員與 roles/logging.viewer 相同的權限。請注意,授予此角色會在專案層級上將權限套用至大多數 GCP 服務,且不限定在使用 Logging 之內。

  • roles/editor (專案編輯者) 在專案層級上授予成員與 roles/logging.viewer 相同的權限,外加寫入記錄項目、刪除記錄及建立記錄指標的權限。角色不會讓您建立匯出接收器或讀取私人記錄。請注意,授予此角色會在專案層級上將權限套用至大多數 GCP 服務,且不限定在使用 Logging 之內。

  • roles/owner (專案擁有者) 可讓您完全存取 Logging,包括私人記錄在內。請注意,授予此角色會在專案層級上將權限套用至大多數 GCP 服務,且不限定在使用 Logging 之內。

除了 BigQuery 資料存取稽核記錄以外,資料存取稽核記錄都是唯一的「私人記錄」。如要讀取這些記錄,成員需要比唯讀權限更大的特定權限。

如需進一步瞭解 Logging 角色與權限,請參閱本頁面的權限與角色

API 權限

Logging API 方法需要特定 Cloud IAM 權限。下表列出了 API 方法需要的權限。

記錄方法 所需權限 資源類型
billingAccounts.logs.* logging.logs.* (請參閱 projects.logs.*) 帳單帳戶
billingAccounts.sinks.* logging.sinks.* (請參閱 projects.sinks.*)。 帳單帳戶
entries.list logging.logEntries.list
logging.privateLogEntries.list
專案、機構、
資料夾、帳單帳戶
entries.write logging.logEntries.create 專案、機構、
資料夾、帳單帳戶
folders.logs.* logging.logs.* (請參閱 projects.logs.*) 資料夾
folders.sinks.* logging.sinks.* (請參閱 projects.sinks.*) 資料夾
monitoredResourceDescriptors.list (無) (無)
organizations.logs.* logging.logs.* (請參閱 projects.logs.*) 機構
organizations.sinks.* logging.sinks.* (請參閱 projects.sinks.*) 機構
projects.exclusions.create logging.exclusions.create 專案
projects.exclusions.delete logging.exclusions.delete 專案
projects.exclusions.get logging.exclusions.get 專案
projects.exclusions.list logging.exclusions.list 專案
projects.exclusions.patch logging.exclusions.<b>update<b> 專案
projects.logs.list logging.logs.list 專案
projects.logs.delete logging.logs.delete 專案
projects.sinks.list logging.sinks.list 專案
projects.sinks.get logging.sinks.get 專案
projects.sinks.create logging.sinks.create 專案
projects.sinks.update logging.sinks.update 專案
projects.sinks.delete logging.sinks.delete 專案
projects.metrics.list logging.logMetrics.list 專案
projects.metrics.get logging.logMetrics.get 專案
projects.metrics.create logging.logMetrics.create 專案
projects.metrics.update logging.logMetrics.update 專案
projects.metrics.delete logging.logMetrics.delete 專案

權限與角色

下表列出授予 Stackdriver Logging 存取權的 Cloud IAM 角色。每個角色都有一組特定的記錄權限。 角色可以指派給列出之資源類型的成員。

在表格中,a.b.{x,y} 是指 a.b.xa.b.y

角色名稱 角色稱號 記錄權限 資源類型
roles/
logging.viewer
記錄檢視者 logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
logging.usage.get
resourcemanager.projects.get
專案、機構、
資料夾、帳單帳戶
roles/
logging.privateLogViewer
私人記錄檢視者 roles/logging.viewer 權限,外加:
logging.privateLogEntries.list
專案、機構、
資料夾、帳單帳戶
roles/
logging.logWriter
記錄寫入者 logging.logEntries.create 專案、機構、
資料夾、帳單帳戶
roles/
logging.configWriter
記錄設定寫入者 logging.exclusions.{list, create, get, update, delete}
logging.logMetrics.{list, create, get, update, delete}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.get
專案、機構、
資料夾、帳單帳戶
roles/
logging.admin
Logging 管理員 logging.exclusions.{list, create, get, update, delete}
logging.logEntries.create
logging.logEntries.list
logging.logMetrics.{list, create, get, update, delete}
logging.logs.delete
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.privateLogEntries.list
logging.sinks.{list, create, get, update, delete}
resourcemanager.projects.get
專案、機構、
資料夾、帳單帳戶
roles/viewer 檢視者 logging.logEntries.list
logging.logMetrics.{list, get}
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
logging.sinks.{list, get}
resourcemanager.projects.get
專案
roles/editor 編輯者 roles/viewer Logging 權限,外加:
logging.logEntries.create
logging.logMetrics.{create, update, delete}
logging.logs.delete
專案
roles/owner 擁有者 roles/editor Logging 權限,外加:
logging.privateLogEntries.list
logging.sinks.{create, update, delete}
專案

自訂角色

如要建立具有 Logging 權限的自訂角色,請執行下列動作:

  • 對於僅為 Logging API 授予權限的角色,請在上一節 API 權限中選擇權限。

  • 對於授予使用記錄檢視器權限的角色,請在下一節主控台權限中選擇權限群組。

如要進一步瞭解自訂角色,請參閱瞭解 Cloud IAM 自訂角色一文。

主控台權限

下表列出了使用記錄檢視器所需的權限。

在表格中,a.b.{x,y} 是指 a.b.xa.b.y

主控台活動 所需權限
最低的唯讀存取權 logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
新增檢視記錄指標的能力 新增 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}

對於匯出記錄的存取權

如要建立接收器,藉以匯出記錄,您必須具有 roles/logging.configWriterroles/logging.adminroles/owner 的權限。

當接收器開始匯出記錄時,接收器可以完全存取所有收到的記錄項目。接收器可以匯出私人記錄項目。

匯出記錄項目之後,對於匯出複本的存取權會完全受到目的地上的 Cloud IAM 權限與角色控制:Cloud Storage、BigQuery 或 Cloud Pub/Sub。

Logging 存取範圍

存取範圍是為 Compute Engine VM 執行個體指定權限的傳統方法。 以下存取範圍適用於 Logging API:

存取範圍 授予的權限
https://www.googleapis.com/auth/logging.read role/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。

最佳做法

現在 Cloud IAM 角色已經可以使用了,接下來合理的做法是賦予所有 VM 執行個體「完全存取所有啟用的 Google Cloud API」範圍:

https://www.googleapis.com/auth/cloud-platform

您可在 VM 執行個體的服務帳戶中授予特定 Cloud IAM 角色,以限制特定 API 的存取權。詳情請參閱服務帳戶權限一節。

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

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

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