

# SEC02-BP06 採用使用者群組和屬性
<a name="sec_identities_groups_attributes"></a>

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

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

 **常見的反模式：**
+  管理個別使用者的許可，並且針對許多使用者重複此操作。
+  為群組定義的層級過高，授予的許可範圍過廣。
+  為群組定義的層級過於精細，致使成員資格發生重複和混淆的情形。
+  在可以使用屬性替代的情況下，仍使用在資源子集中具有重複許可的群組。
+  未透過整合在您 AWS 環境中的標準化身分提供者管理群組、屬性和成員資格。
+  使用 AWS IAM Identity Center 工作階段時使用角色鏈結 

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 AWS 許可是在與主體 (例如使用者、群組、角色或資源) 相關聯且稱為*政策*的文件中定義。您可以根據工作職能、工作負載及 SDLC 環境來組織許可指派 (群組、許可、帳戶)，藉此調整許可管理的規模。針對您的員工，這可讓您根據使用者為組織執行的職務，而不是所存取的資源來定義群組。例如，WebAppDeveloper 群組可能已附加政策，用於設定開發帳戶內的 Amazon CloudFront 等服務。`AutomationDeveloper` 群組可能有部分許可與 `WebAppDeveloper` 群組重疊。您可在個別政策中擷取這些常用的許可，並讓這些許可同時與這兩個群組相關聯，而不要讓這兩種職務的使用者屬於 `CloudFrontAccess` 群組。

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

### 實作步驟
<a name="implementation-steps"></a>

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

   1.  依照 [SEC02-BP04 仰賴集中式身分提供者](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_identities_identity_provider.html)中的指引，您可以確定是否需要在身分提供者內、IAM Identity Center 內或在特定帳戶中使用 IAM 使用者群組定義群組和屬性。

1.  定義群組：

   1.  根據職務和所需的存取範圍確定您的群組。考慮使用階層式結構或命名慣例來有效組織群組。

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

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

1.  定義屬性：

   1.  如果您使用外部身分提供者，SCIM 和 SAML 2.0 通訊協定預設都會提供特定屬性。您可以使用 SAML 聲明與 `https://aws.amazon.com/SAML/Attributes/PrincipalTag` 屬性名稱來定義和傳遞其他屬性。如需定義和設定自訂屬性的指引，請參閱身分提供者的文件。

   1.  如果您在 IAM Identity Center 內定義角色，請啟用屬性型存取控制 (ABAC) 功能並視需要定義屬性。考慮符合組織結構或資源標記策略的屬性。

 如果您需要透過 IAM Identity Center 擔任的 IAM 角色進行 IAM 角色鏈結，則 `source-identity` 和 `principal-tags` 這類值就不會傳播。如需詳細資訊，請參閱[啟用和設定存取控制的屬性](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html)。

1.  根據群組和屬性設定許可的範圍：

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

   1.  定義 ABAC 政策時，請遵循 [ABAC 授權](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)最佳實務和範例中的指引。

   1.  隨著組織的需求發展，定期審查並更新群組和屬性結構，以確保最佳的許可管理。

## 資源
<a name="resources"></a>

 **相關的最佳實務：**
+  [SEC02-BP04 仰賴集中式身分提供者](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_identities_identity_provider.html) 
+  [SEC03-BP02 授予最低權限存取權](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_least_privileges.html) 
+  [COST02-BP04 實作群組和角色](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_govern_usage_groups_roles.html) 

 **相關文件：**
+  [IAM 最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 
+  [在 IAM Identity Center 中管理身分](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-sso.html) 
+  [AWS 的 ABAC 是什麼？](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) 
+  [IAM Identity Center 中的 ABAC](https://docs.aws.amazon.com/singlesignon/latest/userguide/configure-abac.html) 
+  [ABAC 政策範例](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_abac.html) 

 **相關影片：**
+  [使用 AWS IAM Identity Center 大規模管理使用者許可](https://youtu.be/aEIqeFCcK7E) 
+  [在每一層都能掌握身分](https://www.youtube.com/watch?v=vbjFjMNVEpc) 