角色和權限

本頁說明 Identity and Access Management (IAM) 角色,也就是 IAM 權限的集合。

角色包含一組權限,可讓您對Google Cloud 資源執行特定動作。如要讓主體 (包括使用者、群組和服務帳戶) 取得權限,請將角色授予主體。

事前準備

角色類型

IAM 中有三種角色:

  • 基本角色:提供資源的廣泛存取權 Google Cloud 。
  • 預先定義的角色:針對特定服務提供精細的存取權限,且是由 Google Cloud管理。
  • 自訂角色:根據使用者指定的權限清單,提供精細的存取權限。

如要判斷某個權限是否包含在基本、預先定義或自訂角色中,請利用下列其中一種方式:

如需特定角色類型的使用時機指引,請參閱「選擇要使用的角色類型」。

角色元件

每個角色都包含下列元件:

  • 名稱:使用者可理解的角色名稱。角色名稱是用來在 Google Cloud 控制台中識別角色。
  • 名稱:角色 ID,格式如下:

    • 預先定義的角色:roles/SERVICE.IDENTIFIER
    • 專案層級自訂角色:projects/PROJECT_ID/roles/IDENTIFIER
    • 機構層級的自訂角色:organizations/ORG_ID/roles/IDENTIFIER

    角色名稱用於在允許政策中識別角色。

  • ID:角色的專屬 ID。如果是基本角色和預先定義角色,ID 會與角色名稱相同。如果是自訂角色,ID 是角色名稱中 roles/ 後方的所有內容。

  • 說明:使用者可理解的角色說明。

  • 階段:角色在推出生命週期中的階段,例如 ALPHABETAGA。如要進一步瞭解推出階段,請參閱「測試及部署」。

  • 權限:角色包含的權限。主體必須具備權限,才能對 Google Cloud 資源執行特定操作。將角色授予主體後,主體就會取得該角色具備的所有權限。

    權限的格式如下:

    SERVICE.RESOURCE.VERB
    

    舉例來說,compute.instances.list 權限可讓使用者列出自己擁有的 Compute Engine 執行個體,而 compute.instances.stop 則能讓使用者停止 VM。

    權限通常 (但並非絕對) 與 REST 方法有 1:1 的對應關係。也就是說,每個 Google Cloud 服務對於擁有的每個 REST 方法,都有關聯的權限。如要呼叫方法,呼叫者需要有相關聯的權限。舉例來說,如要呼叫 Pub/Sub API 的 projects.topics.publish 方法,您需要 pubsub.topics.publish 權限。

  • ETag:角色版本的 ID,有助於防止並行更新相互覆寫。基本和預先定義的角色一律具有 ETag AA==。每次修改自訂角色時,系統都會變更 ETag。

基本角色

基本角色是權限很高的角色,可授予資源的廣泛存取權。Google Cloud

IAM 的基本角色包括管理員 (roles/admin)、寫入者 (roles/writer) 和讀取者 (roles/reader)。IAM 也有三種舊版基本角色,這些角色在 IAM 推出前就已存在:擁有者 (roles/owner)、編輯者 (roles/editor) 和檢視者 (roles/viewer)。如要進一步瞭解這些角色,請參閱本頁面的「舊版基本角色」一節。

下表彙整了管理員、撰寫者和讀者在所有 Google Cloud 服務中授予主體的權限:

基本角色 權限
讀取器 (roles/reader)

不會影響狀態的唯讀操作權限,例如檢視 (但不修改) 現有的資源或資料。

如要查看「讀者」角色包含的權限清單,請在 Google Cloud 控制台中查看角色詳細資料:

前往「讀取者」角色

Writer (roles/writer)

所有讀者角色權限,以及修改狀態的動作權限,像是變更現有的資源。

「寫入者」角色的權限可讓您建立及刪除大部分 Google Cloud 服務的資源。不過,「撰寫者」角色不具備執行所有服務所有動作的權限。如要進一步瞭解如何檢查角色是否具備您所需的權限,請參閱本頁面的「角色類型」。

如要查看「撰寫者」角色中的權限清單,請在 Google Cloud 控制台中查看角色詳細資料:

前往「Writer」角色

管理員 (roles/admin)

Writer 角色的所有權限,以及下列動作的權限:

  • 完成敏感工作,例如管理 Compute Engine 資源的標記繫結
  • 管理專案的角色和權限,以及專案內的所有資源
  • 設定專案帳單

管理員角色包含所有資源的所有權限。 Google Cloud 舉例來說,這項角色不包含修改 Cloud Billing 付款資訊或建立 IAM 拒絕政策的權限。

如要查看管理員角色中的權限清單,請前往 Google Cloud 控制台查看角色詳細資料:

前往管理員角色

您無法使用 Google Cloud 控制台授予讀者、寫手或管理員角色。請改用 API 或 gcloud CLI。您也可以使用 Privileged Access Manager,為這些角色建立權限。

如需操作說明,請參閱「授予、變更及撤銷存取權」。

舊版基本角色

舊版基本角色是在 IAM 推出前就存在的角色。這些角色原先稱為「原始角色」。與其他基本角色不同,您無法為舊版基本角色新增角色繫結的條件

舊版基本角色包括擁有者 (roles/owner)、編輯者 (roles/editor) 和檢視者 (roles/viewer)。

將舊版基本角色授予主體後,主體就會取得該角色中的所有權限。主體也會取得服務提供給具有舊版基本角色的主體的所有權限,例如透過 Cloud Storage 便利值BigQuery 特殊群組成員資格取得的權限。

下表摘要說明舊版基本角色在所有 Google Cloud 服務中授予主體的權限:

舊版基本角色 權限
檢視者 (roles/viewer)

不會影響狀態的唯讀操作權限,例如檢視 (但不修改) 現有的資源或資料。

如要查看檢視者角色中的權限清單,請在 Google Cloud 控制台中查看角色詳細資料:

前往「檢視者」角色

編輯者 (roles/editor)

所有檢視者權限,以及修改狀態的動作權限,像是變更現有的資源。

編輯者角色中的權限可讓您建立及刪除大部分 Google Cloud 服務的資源。不過,「編輯者」角色不具備所有服務的所有操作權限。如要進一步瞭解如何檢查角色是否具備您所需的權限,請參閱本頁面的「角色類型」。

如要查看「編輯者」角色包含的權限清單,請前往 Google Cloud 控制台查看角色詳細資料:

前往編輯者角色

擁有者 (roles/owner)

所有編輯者權限,以及下列動作的權限:

  • 完成敏感工作,例如管理 Compute Engine 資源的標記繫結
  • 管理專案的角色和權限,以及專案內的所有資源
  • 設定專案帳單

「擁有者」角色具備所有資源的所有權限。 Google Cloud 舉例來說,這項角色不包含修改 Cloud Billing 付款資訊或建立 IAM 拒絕政策的權限。

如要查看「擁有者」角色中的權限清單,請在 Google Cloud 控制台中查看角色詳細資料:

前往「擁有者」角色

您可以使用 Google Cloud 控制台、API 和 gcloud CLI 授予舊版基本角色。不過,如要將專案的「擁有者」角色授予貴機構外部的使用者,請務必使用 Google Cloud 控制台,而非 gcloud CLI。如果專案不屬於機構,您必須使用 Google Cloud 控制台授予擁有者角色。

如需操作說明,請參閱「授予、變更及撤銷存取權」。

預先定義的角色

除了基本角色,IAM 也提供其他預先定義角色,可授予特定資源的精細存取權。 Google Cloud這些角色是由 Google 建立及維護。Google 會視需要自動更新權限,例如在Google Cloud 新增功能或服務時。

您可以將多個角色授予同一位使用者,且不限資源階層的層級。例如,同一位使用者可在專案中擁有「Compute 網路管理員」和「記錄檢視者」角色,對於專案中的「Pub/Sub」主題也能具備「Pub/Sub 發布者」角色。如要列出角色包含的權限,請參閱「取得角色中繼資料」。

如需選擇最合適預先定義角色的協助,請參閱「尋找合適的預先定義角色」。

如需預先定義角色清單,請參閱角色參考資料

自訂角色

您也可以使用 IAM 建立自訂 IAM 角色。自訂角色可協助您強制執行最低權限原則,確保貴機構中的主體僅具備所需權限。

自訂角色是由使用者定義,可繫結一或多個支援的權限以滿足特定需求。建立自訂角色時,您必須選擇要在哪個機構或專案中建立角色。然後,您可以在機構或專案,以及該機構或專案中的任何資源,授予自訂角色。每個機構和專案最多只能建立 300 個。

您只能在建立自訂角色的專案或機構中授予該角色。您無法在其他專案或機構,或在其他專案或機構內的資源上授予自訂角色。

將一或多個支援的 IAM 權限結合,即可建立自訂角色。

支援的權限

自訂角色可以包含許多 IAM 權限,但並非所有權限都適用。每項權限在自訂角色中都有下列其中一個支援等級:

支援級別 說明
SUPPORTED 自訂角色完整支援這項權限。
TESTING Google 正在測試這項權限,確認是否與自訂角色相容。您可以在自訂角色中加入這項權限,但可能會遇到非預期行為。不建議用於實際工作環境。
NOT_SUPPORTED 自訂角色不支援這項權限。

機構層級的自訂角色可以包含自訂角色支援的任何 IAM 權限。專案層級的自訂角色可以包含任何支援的權限,只能在機構或資料夾層級使用的權限除外。

您無法在專案層級角色中加入資料夾和機構專屬權限,是因為在專案層級授予這些權限時,這些權限不會有任何作用。這是因為 Google Cloud 中的資源會以階層方式整理。權限會透過資源階層繼承,也就是說,權限會對資源及其所有子項資源生效。不過,在Google Cloud 資源階層中,機構和資料夾一律位於專案上方。因此,您永遠無法使用專案層級的權限存取資料夾或機構。因此,資料夾專屬和機構專屬的權限 (例如 resourcemanager.folders.list) 對專案層級的自訂角色無效。

權限相依關係

某些權限必須同時授予才能生效。舉例來說,如要更新允許政策,您必須先讀取政策,才能修改及寫入政策。因此,如要更新允許政策,您幾乎一律需要該服務和資源類型的 getIamPolicy 權限,以及 setIamPolicy 權限。

如要確保自訂角色有效,可以根據權限類似的預先定義角色建立自訂角色。預先定義的角色是專為特定工作設計,包含完成這些工作所需的所有權限。查看這些角色有助於瞭解通常會一併授予哪些權限。然後,您就可以使用這些資訊設計有效的自訂角色。

如要瞭解如何根據預先定義的角色建立自訂角色,請參閱「建立及管理自訂角色」。

自訂角色生命週期

以下各節說明自訂角色生命週期各階段的重要考量。您可以根據這項資訊,建立及管理自訂角色

建立時間

建立自訂角色時,請選擇有助於識別角色的 ID、標題和說明:

  • 角色 ID:角色的專屬 ID。長度上限為 64 個位元組,且由大寫與小寫英數字元、底線和句點組成。您無法在機構或專案中重複使用角色 ID。

    角色 ID 無法變更,因此請謹慎選擇。您可以刪除自訂角色,但必須等到 44 天的刪除程序完成後,才能在相同機構或專案中,使用相同 ID 建立新的自訂角色。如要進一步瞭解刪除程序,請參閱刪除自訂角色

  • 角色名稱:角色名稱會顯示在Google Cloud 控制台的角色清單中。名稱可以重複,但建議使用不重複且具描述性的名稱,以便區分角色。此外,請考慮在角色名稱中加入角色位於機構層級或專案層級的資訊。

    角色名稱的長度上限為 100 個位元組,且由大寫與小寫英數字元和符號組成。您隨時可以變更角色名稱。

  • 角色說明:角色說明是選填欄位,您可以在其中提供角色的其他資訊。舉例來說,您可以加入角色的預期用途、角色建立或修改日期,以及自訂角色所依據的任何預先定義角色。說明的長度上限為 300 個位元組,且由大寫與小寫英數字元和符號組成。

建立自訂角色時,也請留意權限依附元件

如要瞭解如何根據預先定義的角色建立自訂角色,請參閱「建立及管理自訂角色」。

啟動

自訂角色會將推出階段納入角色中繼資料。自訂角色最常見的推出階段為 ALPHABETAGA。這些發布階段僅供參考,可協助您追蹤各角色是否已準備好廣泛使用。另一個常見的發布階段是 DISABLED。在這個發布階段,您可以停用自訂角色

建議您使用發布階段,傳達有關角色的下列資訊:

  • EAPALPHA:角色仍在開發或測試中,或包含尚未公開的 Google Cloud 服務或功能權限。目前不適合廣泛使用。
  • BETA:這個角色經過有限的測試,或包含 Google Cloud 服務或功能的權限,但這些服務或功能尚未正式發布。
  • GA:這個角色經過廣泛測試,所有權限都適用於正式發布的Google Cloud 服務或功能。
  • DEPRECATED:這個角色已無法使用。

如要瞭解如何變更角色的發布階段,請參閱編輯現有的自訂角色

維護

您有責任維護自訂角色。包括在使用者職責變更時更新角色,以及更新角色,讓使用者存取需要額外權限的新功能。

如果自訂角色是以預先定義的角色為基礎,建議您定期檢查這些預先定義的角色,確認權限是否有所變更。追蹤這些變更,有助於判斷更新自訂角色的時機和方式。舉例來說,您可能會發現預先定義的角色已更新,具備使用新版「預覽」功能的權限,因此決定將這些權限新增至自訂角色。

為方便查看要監控的預先定義角色,建議您在自訂角色的說明欄位中,列出自訂角色所依據的預先定義角色。如果您使用 Google Cloud 控制台,根據預先定義的角色建立自訂角色, Google Cloud 控制台會自動執行這項操作。

如要瞭解如何更新自訂角色的權限和說明,請參閱「編輯現有自訂角色」。

請參閱權限變更記錄,瞭解最近變更的角色和權限。

停用中

如果不想再讓貴機構中的任何主體使用自訂角色,可以停用該角色。如要停用角色,請將發布階段變更為 DISABLED

停用的角色仍會顯示在 IAM 政策中,且可授予主體,但不會生效。

如要瞭解如何停用自訂角色,請參閱停用自訂角色

後續步驟

  • 使用政策疑難排解工具,瞭解使用者為何有權存取資源或呼叫 API,或為何沒有這些權限。