角色總覽

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

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

事前準備

角色類型

IAM 中有三種角色:

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

如要判斷基本、預先定義或自訂角色是否包含某項權限,請使用下列任一方法:

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

角色元件

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

  • 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 控制台查看角色詳細資料:

前往「Reader」(讀取者) 角色

寫入者 (roles/writer)

「讀取者」角色的所有權限,加上會修改狀態的操作權限,例如變更現有資源。

「Writer」角色具備的權限可讓您建立及刪除大多數 Google Cloud 服務的資源。不過,Writer 角色不包含對所有服務執行所有動作的權限。如要進一步瞭解如何確認角色是否具備所需權限,請參閱本頁的「角色類型」一節。

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

前往「Writer」(寫入者) 角色

管理員 (roles/admin)

具備寫入者角色的所有權限,以及執行下列動作的權限:

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

管理員角色不包含所有 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)

所有編輯者權限,加上下列操作的權限:

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

擁有者角色「不」包含所有 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 政策中,且可授予主體,但不會生效。

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

後續步驟