SEC02-BP06 採用使用者群組和屬性
根據使用者群組和屬性定義許可,有助於減少政策的數量並降低複雜性,因而更容易實現最低權限原則。您可以利用使用者群組,根據人員在組織中的職務,從單一位置管理多人的許可。部門、專案或位置這類屬性可在人員職務相似的情況下,針對不同的資源子集提供另一層許可範圍。
預期成果:您可以根據職務,針對執行該職務的所有使用者套用許可變更。群組成員資格和屬性會控管使用者許可,進而減少管理個別使用者層級許可的需求。您在身分提供者 (IdP) 中定義的群組和屬性會自動傳播到您的 AWS 環境。
常見的反模式:
-
管理個別使用者的許可,並且針對許多使用者重複此操作。
-
為群組定義的層級過高,授予的許可範圍過廣。
-
為群組定義的層級過於精細,致使成員資格發生重複和混淆的情形。
-
在可以使用屬性替代的情況下,仍使用在資源子集中具有重複許可的群組。
-
未透過整合在您 AWS 環境中的標準化身分提供者管理群組、屬性和成員資格。
-
使用 AWS IAM Identity Center 工作階段時使用角色鏈結
未建立此最佳實務時的曝險等級:中
實作指引
AWS 許可是在與主體 (例如使用者、群組、角色或資源) 相關聯且稱為政策的文件中定義。您可以根據工作職能、工作負載及 SDLC 環境來組織許可指派 (群組、許可、帳戶),藉此調整許可管理的規模。針對您的員工,這可讓您根據使用者為組織執行的職務,而不是所存取的資源來定義群組。例如,WebAppDeveloper 群組可能已附加政策,用於設定開發帳戶內的 Amazon CloudFront 等服務。AutomationDeveloper
群組可能有部分許可與 WebAppDeveloper
群組重疊。您可在個別政策中擷取這些常用的許可,並讓這些許可同時與這兩個群組相關聯,而不要讓這兩種職務的使用者屬於 CloudFrontAccess
群組。
除了群組之外,您還可以使用屬性來進一步設定存取範圍。例如,您的 WebAppDeveloper
群組中的使用者可能有「專案」屬性,可用來將其專案特定的資源設定至存取範圍內。如果使用此技術,則不需要在所擁有許可相同的情況下,針對處理不同專案的應用程式開發人員建立不同的群組。您在許可政策中參照屬性的方式是根據其來源,無論其定義為聯合通訊協定的一部分 (例如 SAML、OIDC 或 SCIM)、為自訂 SAML 聲明,還是在 IAM Identity Center 內設定。
實作步驟
-
確定您將定義群組和屬性的位置:
-
依照 SEC02-BP04 仰賴集中式身分提供者中的指引,您可以確定是否需要在身分提供者內、IAM Identity Center 內或在特定帳戶中使用 IAM 使用者群組定義群組和屬性。
-
-
定義群組:
-
根據職務和所需的存取範圍確定您的群組。考慮使用階層式結構或命名慣例來有效組織群組。
-
如果在 IAM Identity Center 內定義,請建立群組,並使用許可集關聯所需的存取層級。
-
如果在外部身分提供者內定義,請確定提供者是否支援 SCIM 通訊協定,並考慮在 IAM Identity Center 內啟用自動佈建。此功能可在您的提供者與 IAM Identity Center 之間同步群組的建立、成員資格和刪除。
-
-
定義屬性:
-
如果您使用外部身分提供者,SCIM 和 SAML 2.0 通訊協定預設都會提供特定屬性。您可以使用 SAML 聲明與
https://aws.amazon.com/SAML/Attributes/PrincipalTag
屬性名稱來定義和傳遞其他屬性。如需定義和設定自訂屬性的指引,請參閱身分提供者的文件。 -
如果您在 IAM Identity Center 內定義角色,請啟用屬性型存取控制 (ABAC) 功能並視需要定義屬性。考慮符合組織結構或資源標記策略的屬性。
-
如果您需要透過 IAM Identity Center 擔任的 IAM 角色進行 IAM 角色鏈結,則 source-identity
和 principal-tags
這類值就不會傳播。如需詳細資訊,請參閱啟用和設定存取控制的屬性。
-
根據群組和屬性設定許可的範圍:
-
考慮在許可政策中加入條件,用來比較您主體的屬性與所存取資源的屬性。例如,您可以定義一項條件,規定僅在
PrincipalTag
條件索引鍵的值與相同名稱的ResourceTag
索引鍵的值相符時,才允許對相關資源的存取。 -
定義 ABAC 政策時,請遵循 ABAC 授權最佳實務和範例中的指引。
-
隨著組織的需求發展,定期審查並更新群組和屬性結構,以確保最佳的許可管理。
-
資源
相關的最佳實務:
相關文件:
相關影片: