本頁面說明 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()。
- 如果是預先定義的角色,請使用
僅限基本和預先定義的角色:搜尋權限參考資料,查看角色是否授予權限。
僅限預先定義的角色:搜尋預先定義的角色說明,查看角色包含哪些權限。
如需特定角色類型的使用時機指引,請參閱「選擇要使用的角色類型」。
角色元件
每個角色都包含下列元件:
- Title:人類可讀的角色名稱。角色職稱用於在 Google Cloud 控制台中識別角色。
Name:角色的 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 服務的數千項權限。在正式環境中,除非沒有其他替代方案,否則請勿授予基本角色,而是根據需求,授予權限最小的預先定義角色或自訂角色。
在測試環境中,建議使用「管理員」、「寫入者」和「讀取者」角色,而非舊版基本角色。雖然這兩組角色都會主動維護,但管理員、寫入者和讀取者角色支援其他功能,例如使用 IAM 條件。
下表摘要列出管理員、寫入者和讀取者在所有 Google Cloud 服務中授予主體的權限:
| 基本角色 | 權限 |
|---|---|
讀取者 (roles/reader) |
不會影響狀態的唯讀操作權限,例如檢視 (但不修改) 現有的資源或資料。 如要查看「讀取者」角色包含的權限清單,請前往 Google Cloud 控制台查看角色詳細資料: |
寫入者 (roles/writer) |
「讀取者」角色的所有權限,加上會修改狀態的操作權限,例如變更現有資源。 「Writer」角色具備的權限可讓您建立及刪除大多數 Google Cloud 服務的資源。不過,Writer 角色不包含對所有服務執行所有動作的權限。如要進一步瞭解如何確認角色是否具備所需權限,請參閱本頁的「角色類型」一節。 如要查看「Writer」角色包含的權限清單,請前往 Google Cloud 控制台查看角色詳細資料: |
管理員 (roles/admin) |
具備寫入者角色的所有權限,以及執行下列動作的權限:
管理員角色不包含所有 Google Cloud 資源的所有權限。舉例來說,這項角色不含修改 Cloud Billing 付款資訊或建立 IAM 拒絕政策的權限。 如要查看管理員角色的權限清單,請前往 Google Cloud 控制台查看角色詳細資料: |
您無法使用 Google Cloud 控制台授予「讀取者」、「寫入者」或「管理員」角色。請改用 API 或 gcloud CLI。您也可以使用 Privileged Access Manager 為這些角色建立授權。
如需操作說明,請參閱「授予、變更及撤銷存取權」。
舊版基本角色
舊版基本角色在 IAM 推出前就已存在。這些角色原先稱為「原始角色」。與其他基本角色不同,您無法為舊版基本角色的角色繫結新增條件。
舊版基本角色包括擁有者 (roles/owner)、編輯者 (roles/editor) 和檢視者 (roles/viewer)。
舊版基本角色仍會持續維護,可供使用。也可用於特定自動化工作流程。舉例來說,使用者建立專案時,系統會自動授予該專案的「擁有者」角色。不過,如果您需要授予基本角色,建議授予「管理員」、「寫入者」或「讀取者」角色,而非舊版基本角色。這是因為較新的角色支援其他功能,例如使用 IAM 條件。
將舊版基本角色授予主體時,主體會取得該角色的所有權限。主體也會取得服務提供給具備舊版基本角色主體的任何權限,例如透過 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 控制台授予擁有者角色:
- 您要授予「擁有者」角色的使用者不屬於您的組織。
- 您要授予擁有者角色的專案不屬於任何組織。
此外,您只能將「擁有者」角色授予下列類型的主體:
- Google 帳戶
- 貴組織中的服務帳戶
- 貴組織的 Google 群組
如要瞭解如何授予角色,請參閱「授予、變更及撤銷存取權」。
預先定義的角色
除了基本角色外,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) 對專案層級自訂角色無效。
權限相依關係
部分權限必須一併授予才會生效。舉例來說,如要更新允許政策,您必須先讀取政策,才能修改及寫入政策。因此,如要更新允許政策,除了 setIamPolicy 權限外,您幾乎一律需要該服務和資源類型的 getIamPolicy 權限。
為確保自訂角色有效,您可以根據具備類似權限的預先定義角色建立自訂角色。預先定義的角色是針對特定工作設計,包含完成這些工作所需的所有權限。查看這些角色,有助於瞭解通常會一併授予哪些權限。接著,您可以使用這項資訊設計有效的自訂角色。
如要瞭解如何根據預先定義的角色建立自訂角色,請參閱「建立及管理自訂角色」。
自訂角色生命週期
以下各節說明自訂角色生命週期各階段的考量重點。您可以根據這項資訊,建立及管理自訂角色。
建立時間
建立自訂角色時,請選擇有助於識別角色的 ID、職稱和說明:
角色 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。