本頁面說明 Cloud de Confiance by S3NS的身分與存取權管理 (IAM) 系統運作方式,以及如何使用該系統管理 Cloud de Confiance中的存取權。
IAM 是管理Cloud de Confiance精細授權的工具,換句話說,您可以控管「哪些人」可以對「哪些資源」執行「哪些操作」。
存取 Cloud de Confiance
Cloud de Confiance 中的每個動作都需要特定權限。當使用者嘗試在 Cloud de Confiance中執行動作 (例如建立 VM 執行個體或查看資料集) 時,IAM 會先檢查使用者是否具備必要權限。如果沒有,IAM 會禁止他們執行該動作。
在 IAM 中授予權限時,需要用到下列三個元件:
- 主體:您要授予權限的人員或系統身分。
- 角色:您要授予主體的權限集合。
- 資源:您要允許主體存取的 Cloud de Confiance 資源。
如要授予主體資源存取權,請為該主體指派資源角色。您可以使用允許政策授予這些角色。
允許政策會直接附加至某些 Cloud de Confiance 資源,這些資源會分層整理,例如專案包含特定服務的資源。也就是說,您可以授予單一資源或資源容器的存取權。
下列各節會進一步說明這些概念。
主體
在 Cloud de Confiance 中,您可以控管「主體」的存取權。主體代表已向 Cloud de Confiance驗證的一或多個身分。
主體原稱為「成員」。某些 API 仍採行這種用法。
IAM 中有各種主體,但大致可分為兩大類:
人類使用者:部分 IAM 主體類型代表人類使用者。您可以使用這些主體類型,管理員工對Cloud de Confiance 資源的存取權。
舉例來說,員工身分集區中的聯合身分代表人類使用者。
工作負載:部分 IAM 主體類型代表工作負載。 管理工作負載對 Cloud de Confiance 資源的存取權時,您會使用這些主體類型。
代表工作負載的主體類型包括服務帳戶,以及 workload identity pool 中的聯合身分。
如要進一步瞭解主體,請參閱「IAM 主體」。
權限與角色
權限可決定哪些作業能對資源執行。在 IAM 中,權限通常以 service.resource.verb 的形式表示。權限通常與 REST API 方法一一對應,例如 resourcemanager.projects.list 權限可讓您列出 Resource Manager 專案。
您無法直接授予主體權限。而是透過授予「角色」,將權限授予主體。
角色是一組權限。將角色授予主體時,您會將該角色中的所有權限授予主體。
角色分為三種:
預先定義的角色:由 Cloud de Confiance 服務管理的角色。 這些角色包含執行各項服務一般工作所需的權限。舉例來說,Pub/Sub 發布者角色 (
roles/pubsub.publisher) 提供將訊息發布至 Pub/Sub 主題的權限。自訂角色:您建立的角色,只包含您指定的權限。您可以完全掌控這些角色的權限。 不過,自訂角色的維護負擔比預先定義的角色更高,而且專案和機構中的自訂角色數量有限。
基本角色:權限非常寬鬆,可廣泛存取Cloud de Confiance 服務。這些角色可用於測試,但不應在正式環境中使用。
如要進一步瞭解角色和權限,請參閱「角色和權限」。
資源
大多數 Cloud de Confiance 服務都有自己的資源。舉例來說,Compute Engine 具有執行個體、磁碟和子網路等資源。
在 IAM 中,您會對資源授予角色。將資源的角色授予主體,表示主體可以使用該角色中的權限存取資源。
您可以對部分 Cloud de Confiance 資源授予角色。如要查看可授予角色的資源完整清單,請參閱接受允許政策的資源類型。
Cloud de Confiance 也包含容器資源,包括專案、資料夾和機構。這些容器資源會以階層方式組織,讓子項資源繼承父項資源的政策。也就是說,如果為主體指派容器資源的角色,主體就能存取容器資源和該容器中的資源。這項功能可讓您透過單一角色授權,管理多項資源的存取權,包括您無法直接授權角色的資源。詳情請參閱本頁面的「政策繼承」一節。
允許政策
您可以使用允許政策將角色授予主體。這些政策先前稱為 IAM 政策。
允許政策是附加至 Cloud de Confiance資源的 YAML 或 JSON 物件。
每項允許政策都包含角色繫結清單,可將 IAM 角色與獲派這些角色的主體建立關聯。
當經過驗證的主體嘗試存取資源時,IAM 會檢查資源的允許政策,判斷主體是否具備必要權限。如果主體位於角色繫結中,且該繫結包含具備必要權限的角色,主體就能存取資源。
如要查看允許政策範例並瞭解其結構,請參閱「瞭解允許政策」。
政策繼承
Cloud de Confiance 提供容器資源 (例如專案、資料夾和機構),讓您以父項/子項階層結構整理資源。這個階層稱為「資源階層」。
Cloud de Confiance 資源階層的結構如下:
- 機構是階層結構中的根節點。
- 資料夾是機構或其他資料夾的子項。
- 專案是機構或資料夾的子項。
- 各項服務的資源是專案的子系。
下圖為 Cloud de Confiance 資源階層的範例:
如果您在容器資源上設定允許政策,該政策也會套用至容器中的所有資源。這個概念稱為「政策沿用」,因為子系資源會沿用祖系資源的允許政策。
政策繼承有下列影響:
您可以使用單一角色繫結,授予多項資源的存取權。 如要授予主體容器中所有資源的存取權,請在容器上授予角色,而非容器中的資源。
舉例來說,如果想讓安全管理員管理機構中所有資源的允許政策,可以授予他們機構的「安全管理員」角色 (
roles/iam.securityAdmin)。您可以授予資源存取權,這些資源本身沒有允許政策。並非所有資源都接受允許政策,但所有資源都會繼承祖先的允許政策。如要授予主體無法擁有專屬允許政策的資源存取權,請在其中一個資源上層授予主體角色。
舉例來說,假設您想授權某人將記錄寫入記錄檔 bucket,記錄值區沒有自己的允許政策,因此如要授予使用者這項權限,請改為在含有記錄值區的專案中,授予使用者「記錄值區寫入者」角色 (
roles/logging.bucketWriter)。如要瞭解誰能存取資源,您也需要查看所有影響資源的允許政策。如要取得有權存取資源的主體完整清單,您需要查看資源的允許政策和資源上層的允許政策。所有這些政策的聯集稱為「有效允許政策」。
如要進一步瞭解允許政策的政策繼承,請參閱「使用資源階層控管存取權」。
進階存取權控管
除了允許政策,IAM 也提供下列存取權控管機制,協助您精確控管哪些人能存取哪些資源:
- 拒絕政策:拒絕政策可防止主體使用特定權限,即使主體獲派具備該權限的角色也一樣。如要進一步瞭解拒絕政策,請參閱「拒絕政策」。
IAM 條件:IAM 條件可讓您定義及強制執行條件式、以屬性為基礎的存取控管。您可以在各種政策類型中使用條件。舉例來說,您可以在允許政策中新增角色繫結的條件,確保只有在符合條件時,系統才會授予角色。
您可以根據要求中的資源和要求時間等屬性編寫條件。
如要進一步瞭解 IAM 條件,請參閱「IAM 條件總覽」。
IAM API 的一致性模型
IAM API 最終會保持一致。換句話說,如果您使用 IAM API 寫入資料,然後立即讀取該資料,讀取作業可能會傳回舊版資料。您所做的變更可能需要一段時間,才會影響存取權檢查。
這種一致性模型會影響 IAM API 的運作方式。舉例來說,如果您建立服務帳戶,然後立即在另一個要求中參照該服務帳戶,IAM API 可能會表示找不到該服務帳戶。這是因為作業最終會保持一致性,因此讀取要求可能需要一段時間,才能看到新的服務帳戶。
後續步驟
- 如要瞭解如何為 Cloud de Confiance設定身分,請參閱 Cloud de Confiance的身分管理。
- 如要瞭解如何授予、變更及撤銷主體的 IAM 角色,請參閱「管理專案、資料夾和機構的存取權」。
- 如要查看可用的 IAM 角色,請參閱「預先定義的角色」。
- 如需選擇最合適預先定義角色的相關說明,請參閱「找出合適的預先定義角色」。
- 如要查看 IAM 中可用的政策類型,請參閱「政策類型」。