SEC02-BP06 採用使用者群組和屬性 - AWS Well-Architected 架構

SEC02-BP06 採用使用者群組和屬性

根據使用者群組和屬性定義許可,有助於減少政策的數量並降低複雜性,因而更容易實現最低權限原則。 您可以利用使用者群組,根據人員在組織中的職務,從單一位置管理多人的許可。 像是部門或位置等屬性則可在人員職務相似的情況下,針對不同的資源子集提供另一層許可範圍。

預期成果:您可以根據職務,針對執行該職務的所有使用者套用許可變更。 群組成員資格和屬性會控管使用者許可,進而減少管理個別使用者層級許可的需求。 您在身分提供者 (IdP) 中定義的群組和屬性會自動傳播到您的 AWS 環境。

常見的反模式:

  • 管理個別使用者的許可,並且針對許多使用者重複此操作。

  • 為群組定義的層級過高,授予的許可範圍過廣。

  • 為群組定義的層級過於精細,致使成員資格發生重複和混淆的情形。

  • 在可以使用屬性替代的情況下,仍使用在資源子集中具有重複許可的群組。

  • 未透過整合在您 AWS 環境中的標準化身分提供者管理群組、屬性和成員資格。

未建立此最佳實務時的風險暴露等級:

實作指引

AWS 許可於與主體 (例如使用者、群組、角色或資源) 相關聯且稱為政策的文件中定義。 針對您的員工,這可讓您根據使用者為組織執行的職務,而不是所存取的資源來定義群組。例如,WebAppDeveloper 群組可能附帶可在開發帳戶內用來設定服務 (例如 Amazon CloudFront) 的政策。 AutomationDeveloper 群組可能與 WebAppDeveloper 群組擁有一些共同的 CloudFront 許可。您可在另一個政策中擷取這些許可,並讓這些許可同時與這兩個群組相關聯,而不是讓這兩種職務的使用者屬於 CloudFront Access 群組。

除了群組之外,您還可以使用屬性來進一步設定存取範圍。例如,您的 WebAppDeveloper 群組中的使用者可能有 Project 屬性,可用來將其專案特定的資源設定至存取範圍内。 若使用此技術,則不需要在所擁有許可相同的情況下,針對處理不同專案的應用程式開發人員建立不同的群組。 您在許可政策中參照屬性的方式是根據其來源,無論其定義為聯合通訊協定的一部分 (例如 SAML、OIDC 或 SCIM)、為自訂 SAML 判斷提示,還是在 IAM Identity Center 內部設定。

實作步驟

  1. 確定您將定義群組和屬性的位置。

    1. 依照SEC02-BP04 利用集中式身分提供者中的指引,您可以決定要在身分提供者內、IAM Identity Center 內,或在特定帳戶中使用 IAM user 群組定義群組和屬性。

  2. 定義群組。

    1. 根據職務和所需的存取範圍決定您的群組。 

    2. 如果是在 IAM Identity Center 內定義,請建立群組,並使用許可集建立所需存取層級的關聯。

    3. 如果是在外部身分提供者內定義,請確定提供者是否支援 SCIM 通訊協定,並考慮在 IAM Identity Center 內啟用自動佈建。 此功能可在您的提供者與 IAM Identity Center 之間同步群組的建立、成員資格和刪除。

  3. 定義屬性。

    1. 如果使用外部身分提供者,SCIM 和 SAML 2.0 通訊協定預設都會提供特定屬性。 您可以使用 https://aws.amazon.com/SAML/Attributes/PrincipalTag 屬性名稱,利用 SAML 判斷提示來定義和傳遞其他屬性。

    2. 如果是在 IAM Identity Center 內定義,請啟用屬性型存取控制 (ABAC) 功能並視需要定義屬性。

  4. 根據群組和屬性設定許可的範圍。

    1. 您可考慮在許可政策中加入條件,用來比較您主體的屬性與所存取資源的屬性。 例如,您可以定義一項條件,規定僅在 PrincipalTag 條件索引鍵的值與相同名稱的 ResourceTag 索引鍵的值相符時,才允許對相關資源的存取。

資源

相關的最佳實務:

相關文件:

相關影片: