本頁面說明 Cloud de Confiance by S3NS的 Identity and Access Management (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驗證的一或多個身分。
主體原稱為「成員」。某些 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)。您可以授予資源存取權,這些資源本身沒有自己的允許政策。並非所有資源都接受允許政策,但所有資源都會繼承祖先的允許政策。如要授予主體無法擁有專屬允許政策的資源存取權,請在其中一個資源的祖項上授予主體角色。
舉例來說,假設您想授權某人將記錄寫入記錄值區,記錄值區沒有自己的允許政策,因此如要授予使用者這項權限,請改為在含有記錄值區的專案中,授予使用者「記錄值區寫入者」角色 (
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 提供的政策類型,請參閱「政策類型」。