本頁說明 Identity and Access Management (IAM) 角色,也就是 IAM 權限的集合。
角色包含一組權限,可讓您對Google Cloud 資源執行特定動作。如要讓主體 (包括使用者、群組和服務帳戶) 取得權限,請將角色授予主體。
事前準備
- 瞭解身分與存取權管理 (IAM) 的基本概念。
角色類型
IAM 中有三種角色:
- 基本角色:提供資源的廣泛存取權 Google Cloud 。
- 預先定義的角色:針對特定服務提供精細的存取權限,且是由 Google Cloud管理。
- 自訂角色:根據使用者指定的權限清單,提供精細的存取權限。
如要判斷某個權限是否包含在基本、預先定義或自訂角色中,請利用下列其中一種方式:
在 Google Cloud 控制台中查看角色。
執行
gcloud iam roles describe
指令。使用適當的 REST API 方法取得角色:
- 如為預先定義的角色,請使用
roles.get()
。 - 如為專案層級的自訂角色,請使用
projects.roles.get()
。 - 如要使用機構層級的自訂角色,請使用
organizations.roles.get()
。
- 如為預先定義的角色,請使用
僅適用於基本和預先定義的角色:搜尋權限參考資料,查看角色是否授予該權限。
僅限預先定義角色:搜尋預先定義角色說明,查看角色包含哪些權限。
如需特定角色類型的使用時機指引,請參閱「選擇要使用的角色類型」。
角色元件
每個角色都包含下列元件:
- 名稱:使用者可理解的角色名稱。角色名稱是用來在 Google Cloud 控制台中識別角色。
名稱:角色 ID,格式如下:
- 預先定義的角色:
roles/SERVICE.IDENTIFIER
- 專案層級自訂角色:
projects/PROJECT_ID/roles/IDENTIFIER
- 機構層級的自訂角色:
organizations/ORG_ID/roles/IDENTIFIER
角色名稱用於在允許政策中識別角色。
- 預先定義的角色:
ID:角色的專屬 ID。如果是基本角色和預先定義角色,ID 會與角色名稱相同。如果是自訂角色,ID 是角色名稱中
roles/
後方的所有內容。說明:使用者可理解的角色說明。
階段:角色在推出生命週期中的階段,例如
ALPHA
、BETA
或GA
。如要進一步瞭解推出階段,請參閱「測試及部署」。權限:角色包含的權限。主體必須具備權限,才能對 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 控制台中查看角色詳細資料: |
管理員 (roles/admin ) |
Writer 角色的所有權限,以及下列動作的權限:
管理員角色不包含所有資源的所有權限。 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 ) |
所有編輯者權限,以及下列動作的權限:
「擁有者」角色不具備所有資源的所有權限。 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 個位元組,且由大寫與小寫英數字元和符號組成。
建立自訂角色時,也請留意權限依附元件。
如要瞭解如何根據預先定義的角色建立自訂角色,請參閱「建立及管理自訂角色」。
啟動
自訂角色會將推出階段納入角色中繼資料。自訂角色最常見的推出階段為 ALPHA
、BETA
和 GA
。這些發布階段僅供參考,可協助您追蹤各角色是否已準備好廣泛使用。另一個常見的發布階段是 DISABLED
。在這個發布階段,您可以停用自訂角色。
建議您使用發布階段,傳達有關角色的下列資訊:
EAP
或ALPHA
:角色仍在開發或測試中,或包含尚未公開的 Google Cloud 服務或功能權限。目前不適合廣泛使用。BETA
:這個角色經過有限的測試,或包含 Google Cloud 服務或功能的權限,但這些服務或功能尚未正式發布。GA
:這個角色經過廣泛測試,所有權限都適用於正式發布的Google Cloud 服務或功能。DEPRECATED
:這個角色已無法使用。
如要瞭解如何變更角色的發布階段,請參閱編輯現有的自訂角色。
維護
您有責任維護自訂角色。包括在使用者職責變更時更新角色,以及更新角色,讓使用者存取需要額外權限的新功能。
如果自訂角色是以預先定義的角色為基礎,建議您定期檢查這些預先定義的角色,確認權限是否有所變更。追蹤這些變更,有助於判斷更新自訂角色的時機和方式。舉例來說,您可能會發現預先定義的角色已更新,具備使用新版「預覽」功能的權限,因此決定將這些權限新增至自訂角色。
為方便查看要監控的預先定義角色,建議您在自訂角色的說明欄位中,列出自訂角色所依據的預先定義角色。如果您使用 Google Cloud 控制台,根據預先定義的角色建立自訂角色, Google Cloud 控制台會自動執行這項操作。
如要瞭解如何更新自訂角色的權限和說明,請參閱「編輯現有自訂角色」。
請參閱權限變更記錄,瞭解最近變更的角色和權限。
停用中
如果不想再讓貴機構中的任何主體使用自訂角色,可以停用該角色。如要停用角色,請將發布階段變更為 DISABLED
。
停用的角色仍會顯示在 IAM 政策中,且可授予主體,但不會生效。
如要瞭解如何停用自訂角色,請參閱停用自訂角色。
後續步驟
- 瞭解如何將 IAM 角色授予主體。
- 瞭解如何選擇最合適的預先定義角色。
- 瞭解如何建立自訂角色。
- 瞭解特定角色類型的用途。
- 使用政策疑難排解工具,瞭解使用者為何有權存取資源或呼叫 API,或為何沒有這些權限。