

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 配置访问权限 AWS 账户
<a name="manage-your-accounts"></a>

AWS IAM Identity Center 与集成 AWS Organizations，这使您 AWS 账户 无需手动配置每个帐户即可集中管理多个帐户的权限。您可以 AWS 账户 使用 IAM Identity Center 的[组织实例](organization-instances-identity-center.md)定义权限并将这些权限分配给员工用户，以控制他们对特定用户的访问权限。IAM Identity Center 的[账户实例](account-instances-identity-center.md)不支持账户访问。

## AWS 账户 类型
<a name="account-types"></a>

有两种类型 AWS 账户 的 AWS Organizations：
+ **管理账户**-用于创建组织的账户。 AWS 账户 
+ **成员账户**- AWS 账户 属于组织的其余账户。

有关 AWS 账户 类型的更多信息，请参阅*AWS Organizations 用户指南*中的[AWS Organizations 术语和概念](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html)。

您也可以选择将成员帐户注册为 IAM Identity Center 的*委派管理员*。此帐户中的用户可以执行大多数 IAM Identity Center 管理任务。有关更多信息，请参阅 [委派管理](delegated-admin.md)。

对于每种任务和帐户类型，下表指明了帐户中的用户是否可以执行 IAM Identity Center 管理任务。


****  

| IAM Identity Center 管理任务 | 成员帐户 | 委托管理员帐户 | 管理帐户 | 
| --- | --- | --- | --- | 
| 读取用户或组（阅读组本身和组的成员资格） | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 添加、编辑或删除用户或组 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是\$1 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 启用或禁用用户访问权限 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 启用、禁用或管理传入属性 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 更改或管理身份源 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 创建、编辑或删除客户管理型应用程序 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 创建、编辑或删除 AWS 托管应用程序 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 配置 MFA | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 管理管理帐户中未配置的权限集 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 管理管理帐户中已配置的权限集 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 启用 IAM Identity Center | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 删除 IAM Identity Center 配置 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 在管理帐户中启用或禁用用户访问权限 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 
| 将成员帐户作为委派管理员注册或取消注册 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[No\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-no.png)否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/icon-yes.png) 是 | 

\$1请参考有关向管理账户分配用户和组的委托管理最佳实践。

## 分配 AWS 账户 访问权限
<a name="assigning-account-access"></a>

您可以使用*权限集*来简化向组织中的用户和组分配 AWS 账户访问权限的方式。权限集存储在 IAM Identity Center 中，定义用户和组对 AWS 账户的访问级别。您可以创建单个权限集并将其分配给组织 AWS 账户 内的多个权限集。您也可以将多个权限集分配给同一个用户。

有关权限集的更多信息，请参阅[创建、管理和删除权限集](permissionsets.md)。

**注意**  
您还可以为用户分配对应用程序的单点登录访问权限。有关信息，请参阅[配置对应用程序的访问](manage-your-applications.md)。

## 最终用户体验
<a name="end-user-experience"></a>

*AWS 访问门户*为 IAM Identity Center 用户提供通过门户网站对所有分配的应用程序 AWS 账户 和应用程序的单点登录访问权限。 AWS 访问门户不同于 [AWS 管理控制台](https://docs.aws.amazon.com//awsconsolehelpdocs/latest/gsg/learn-whats-new.html)，后者是一组用于管理 AWS 资源的服务控制台。

创建权限集时，您为该权限集指定的名称会作为可用角色出现在 AWS 访问门户中。用户登录 AWS 访问门户，选择一个 AWS 账户，然后选择角色。选择角色后，他们可以使用访问 AWS 服务 AWS 管理控制台 或检索临时凭证以编程方式访问 AWS 服务。

要打开 AWS 管理控制台 或检索临时凭证以 AWS 编程方式进行访问，用户需要完成以下步骤：

1. 用户打开浏览器窗口，使用您提供的登录 URL 导航到 AWS 访问门户。

1. 他们使用其目录凭据登录 AWS 访问门户。

1. 身份验证后，在 AWS 访问门户页面上，他们选择 “**帐户**” 选项卡 AWS 账户 以显示他们有权访问的列表。

1. 然后，用户选择 AWS 账户 他们想要使用的。

1. 在的名称下方 AWS 账户，向其分配用户的所有权限集都显示为可用角色。例如，如果您`john_stiles`为用户分配了`PowerUser`权限集，则该角色在 AWS 访问门户中显示为`PowerUser/john_stiles`。分配有多个权限集的用户选择要使用的角色。用户可以选择其访问 AWS 管理控制台的角色。

1. 除角色外， AWS 访问门户用户还可以通过选择访问**密钥**来检索命令行或编程访问的临时证书。

有关您可以向员工用户提供的 step-by-step指导，请参阅[设置和使用 AWS 访问门户](using-the-portal.md)和[获取 AWS CLI 或的 IAM Identity Center 用户证书 AWS SDKs](howtogetcredentials.md)。

## 强制和限制访问权限
<a name="enforcing-and-limiting-access"></a>

启用 IAM Identity Center 后，IAM Identity Center 会创建一个与服务相关的角色。您也可以使用服务控制策略 (SCPs)。

### 委派和强制访问权限
<a name="delegating-and-enforcing-access"></a>

*服务相关角色是一种直接链接*到 AWS 服务的 IAM 角色。启用 IAM Identity Center 后，IAM Identity Center 可以在组织 AWS 账户 中的每个角色中创建一个服务相关角色。此角色提供预定义的权限，允许 IAM Identity Center 委派和强制执行哪些用户对组织 AWS 账户 中的 AWS Organizations特定用户具有单点登录访问权限。您需要分配一个或多个具有帐户访问权限的用户，才能使用此角色。有关更多信息，请参阅 [了解 IAM Identity Center 中的服务相关角色](slrconcept.md) 和 [使用 IAM Identity Center 的服务相关角色](using-service-linked-roles.md)。

### 限制成员帐户对身份存储的访问权限
<a name="limiting-access-from-member-accounts"></a>

对于 IAM Identity Center 使用的身份存储服务，有权访问成员帐户的用户可以使用需要**读取**权限的 API 操作。成员帐户有权访问 **sso 目录**和 **identitystore** 命名空间上的 **读取**操作。有关更多信息，请参阅《*服务授权参考*》中的[AWS IAM Identity Center 目录的操作、资源和条件密钥](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamidentitycenterdirectory.html)[以及 Ident AWS ity Store 的操作、资源和条件密钥](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsidentitystore.html)。

为防止成员帐户中的用户在身份存储中使用 API 操作，您可以[附加服务控制策略（SCP）](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_scps_attach.html)。SCP 是一种组织策略，可用于管理组织中的权限。以下示例 SCP 阻止成员帐户中的用户访问身份存储中的任何 API 操作。

```
        {
            "Sid": "ExplicitlyBlockIdentityStoreAccess",
            "Effect": "Deny",
            "Action": ["identitystore:*", "sso-directory:*"],
            "Resource": "*"
        }
```

**注意**  
为确保您的 AWS 托管应用程序在 IAM Identity Center 中正常运行，您应避免将此 SCP 应用于部署这些应用程序 AWS 账户 的位置。此外，如果您使用委托管理，请勿将此 SCP 应用于委托管理账户。有关更多信息，请参阅 [最佳实践](delegated-admin.md#delegated-admin-best-practices)。

有关更多信息，请参阅《*AWS Organizations 用户指南》*中的[服务控制策略 (SCPs)](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_scps.html)。

# 委派管理
<a name="delegated-admin"></a>

委派管理为注册成员帐户中的分配用户提供了一种便捷的方式，来执行大多数 IAM Identity Center 管理任务。启用 IAM 身份中心后，默认情况下，将在中的管理账户中 AWS Organizations 创建您的 IAM 身份中心实例。最初是这样设计的，以便 IAM Identity Center 可以在组织的所有成员帐户中配置、取消配置和更新角色。尽管您的 IAM Identity Center 实例必须始终位于管理账户中，但您可以选择将 IAM Identity Center 的管理委托给中的成员账户 AWS Organizations，从而扩展从管理账户之外管理 IAM Identity Center 的能力。

启用委派管理具有以下优势：
+ 最大限度地减少需要访问管理帐户的人员数量，以帮助缓解安全问题
+ 允许选定的管理员将用户和组分配给应用程序和组织的成员帐户

有关 IAM 身份中心如何使用的更多信息 AWS Organizations，请参阅[配置访问权限 AWS 账户](manage-your-accounts.md)。要了解更多信息并查看展示如何配置委派管理的公司情景的示例，请参阅*AWS 安全博客*中的[开始使用 IAM Identity Center 委派管理](https://aws.amazon.com/blogs/security/getting-started-with-aws-sso-delegated-administration/)。

**Topics**
+ [最佳实践](#delegated-admin-best-practices)
+ [先决条件](#delegated-admin-prereqs)
+ [注册成员帐户](delegated-admin-how-to-register.md)
+ [取消注册成员帐户](delegated-admin-how-to-deregister.md)
+ [查看哪个成员账号已注册为委派管理员](delegated-admin-how-to-view-member-account.md)

## 最佳实践
<a name="delegated-admin-best-practices"></a>

以下是配置委派管理之前需要考虑的一些最佳实践：
+ **向管理帐户授予最小权限** – 我们知道管理帐户是一个高权限帐户，为了遵守最小权限原则，我们强烈建议您将管理帐户的访问权限限制为尽可能少的人。委派管理员功能旨在最大限度地减少需要访问管理帐户的人数。您还可以考虑使用[临时提升权限](https://docs.aws.amazon.com/singlesignon/latest/userguide/temporary-elevated-access.html)，仅在需要时授予访问权限。
+ **为管理账户配置专用权限集** - 为管理账户使用专用的权限集。出于安全考虑，用于访问管理账户的权限集只能由管理账户中的 IAM Identity Center 管理员修改。委派管理员无法更改管理账户中配置的权限集。
+ **仅向管理账户中的权限集分配用户（而非群组）**-由于管理账户具有特殊权限，因此在控制台或 AWS Command Line Interface (CLI) 中为该账户分配访问权限时必须谨慎行事。如果您将群组分配给有权访问管理帐户的权限集，则有权修改这些群组中成员资格的任何人都可以 add/remove 使用 to/from 这些群组，从而影响谁有权访问管理帐户。这包括任何对您的身份源拥有控制权的组管理员，例如身份提供者（IdP）管理员、Microsoft Active Directory 域服务（AD DS）管理员或 IAM Identity Center 管理员。因此，您应将用户直接分配到授予管理账户访问权限的权限集，避免使用组分配。如果您确实需要使用组管理对管理账户的访问权限，请确保在 IdP 中设置适当的控制措施，限制有权修改这些组的人员，并确保对这些组的更改（或管理账户中用户凭据的更改）被记录并根据需要进行审核。
+ **考虑您的 Active Directory 位置** – 如果您计划使用 Active Directory 作为 IAM Identity Center 身份源，请在启用了 IAM Identity Center 委派管理员功能的成员帐户中找到该目录。如果您决定将 IAM Identity Center 身份来源从任何其他来源更改为 Active Directory，或者将其从 Active Directory 更改为任何其他来源，则该目录必须驻留在 IAM Identity Center 委派管理员成员账户中。如果您希望将 Active Directory 部署在管理账户中，则必须在管理账户中完成设置，因为委托管理员没有完成该操作所需的权限。

### 限制使用外部身份源的委托管理账户中的 IAM Identity Center 身份存储操作
<a name="delegated-admin-best-practices-external"></a>

如果您使用外部身份源（例如 IdP 或） Directory Service，则应实施策略，限制 IAM Identity Center 管理员可以在委托的管理账户中执行的身份存储操作。应谨慎对待写入和删除操作。通常，外部身份源是用户及其属性以及组成员身份的权威来源。如果您使用身份存储 APIs 或控制台修改这些内容，则在正常同步周期中，您的更改将被覆盖。最好将这些操作交由您的权威身份源独家控制。这还可以防止 IAM Identity Center 管理员通过修改组成员身份来授予对组分配的权限集或应用程序的访问权限，确保组成员身份控制权保留在 IdP 管理员手中。您还应限制谁可以从委托管理账户创建 SCIM 承载令牌，因为这些令牌可能允许成员账户管理员通过 SCIM 客户端修改组和用户。

某些情况下，从委托管理账户执行写入或删除操作可能是合适的。例如，您可以创建一个不含成员的组，然后向权限集分配该组，而无需等待 IdP 管理员创建该组。在 IdP 管理员配置该组且 IdP 同步过程完成组成员设置之前，无人能通过该分配获得访问权限。此外，如果您无法等待 IdP 同步过程移除用户或组的访问权限，临时删除该用户或组以阻止登录或授权可能也是合适的。但滥用此权限可能会对用户造成影响。分配身份存储权限时，应遵循最低权限原则。您可以通过服务控制策略（SCP）控制委托管理账户管理员可执行的身份存储操作。

下面的示例 SCP 可防止通过 Identity Store API 将用户分配到群组 AWS 管理控制台，当您的身份源为外部时，建议使用此方法。这不会影响用户与外部 IdP 的同步（通过 SCIM）。 Directory Service 

**注意**  
尽管您使用外部身份源，但您的组织可能完全或部分依赖Identity Stor APIs e来配置用户和群组。因此，在激活此 SCP 之前，您应确认您的用户配置流程不使用此身份存储 API 操作。有关如何将组成员身份管理限制到特定组的信息，请参阅下一节。

```
{
  "Version": "2012-10-17", 		 	 	 
  "Statement": [
    { "Effect": "Deny",
      "Action": ["identitystore:CreateGroupMembership"],
      "Resource": [ "*" ] }
  ]
}
```

如果您希望仅阻止向授予管理账户访问权限的组添加用户，可通过以下格式的组 ARN 引用这些特定组：`arn:${Partition}:identitystore:::group/${GroupId}`。该资源类型以及身份存储中可用的其他资源类型记录在《*服务授权参考*》中 Ident [AWS ity Store 定义的资源类型](https://docs.aws.amazon.com//service-authorization/latest/reference/list_awsidentitystore.html#awsodemtotustpre-resoruces-for-iam-policies)中。您也可以考虑在 SCP APIs 中添加其他身份存储。有关更多信息，请参阅《Identity Store API 参考》中的[操作](https://docs.aws.amazon.com//singlesignon/latest/IdentityStoreAPIReference/API_Operations.html)。

通过向 SCP 添加以下策略语句，可阻止委托管理员创建 SCIM 承载令牌。此配置适用于两种外部身份源场景。

**注意**  
如果您的委托管理员需要通过 SCIM 配置用户预置，或执行定期的 SCIM 承载令牌轮换，则需要临时允许访问此 API，以便委托管理员完成这些任务。

```
    { "Effect": "Deny",
      "Action": ["sso-directory:CreateBearerToken"],
      "Resource": [ "*" ]
    }
```

### 限制本地管理用户的委托管理账户中的 IAM Identity Center 身份存储操作
<a name="delegated-admin-best-practices-locally-managed"></a>

如果您直接在 IAM Identity Center 中创建用户和群组，而不是使用外部 IdP 或 Directory Service，则应注意谁可以创建用户、重置密码和控制群组成员资格。这些操作赋予管理员极大的权限，可决定谁能登录以及谁能通过组成员身份获得访问权限。这些策略最好在您用于 IAM Identity Center 管理员的权限集内作为内联策略来实施，而不是按 SCPs照。以下内嵌策略示例具有两个目标。首先，阻止向特定组添加用户。您可通过此策略防止委托管理员向授予管理账户访问权限的组添加用户。其次，阻止颁发 SCIM 承载令牌。

```
{ 
  "Version": "2012-10-17", 		 	 	 
  "Statement": [ 
  { "Effect": "Deny", 
    "Action": ["identitystore:CreateGroupMembership"],
    "Resource": [ arn:${Partition}:identitystore:::group/${GroupId1}, 
                  arn:${Partition}:identitystore:::group/${GroupId2} 
                 ] 
   }
  ],
  { "Effect": "Deny", 
    "Action": ["sso-directory:CreateBearerToken"],
    "Resource": [ "*" ] }
  ]
}
```

### 将 IAM 身份中心配置管理与管理分开 PermissionSet
<a name="delegated-admin-best-practices-configuration-management"></a>

通过在管理账户中创建独立的管理员权限集，将外部身份源修改、SCIM 令牌管理、会话超时配置等管理任务，与权限集的创建、修改和分配任务分离。

### 限制 SCIM 承载令牌的颁发
<a name="delegated-admin-best-practices-limit-tokens"></a>

当 IAM Identity Center 的身份源为 Okta 或 Entra ID 等外部 IdP 时，SCIM 承载令牌允许外部身份源通过 SCIM 协议配置用户、组和组成员身份。您可配置以下服务控制策略（SCP），防止委托管理员创建 SCIM 承载令牌。如果您的委托管理员需要通过 SCIM 配置用户预置，或执行定期的 SCIM 承载令牌轮换，则需临时允许访问此 API，以便委托管理员完成相关任务。

```
    { "Effect": "Deny",
      "Action": ["sso-directory:CreateBearerToken"],
      "Resource": [ "*" ] 
}
```

### 使用权限集标签和账户列表委托特定账户的管理权限
<a name="delegated-admin-best-practices-specific-accounts"></a>

您可创建权限集并分配给 IAM Identity Center 管理员，以委托谁能创建权限集，以及谁能在哪些账户中分配哪些权限集。此操作通过为权限集添加标签，并在分配给管理员的权限集中设置策略条件实现。例如，您可创建权限集，允许用户创建带有特定标签的权限集。您还可创建策略，允许管理员在指定账户中分配带有特定标签的权限集。这有助于您委托账户管理权限，同时避免授予管理员修改其自身在委托管理账户中访问权限的特权。例如，通过为仅在委托管理账户中使用的权限集添加标签，您可指定策略，仅允许特定人员修改影响委托管理账户的权限集和分配。您还可授予其他人管理委托管理账户之外的账户列表的权限。有关更多信息，请参阅《*AWS 安全博客*》中的[在 AWS IAM Identity Center中委托权限集管理和账户分配](https://aws.amazon.com/blogs/security/delegating-permission-set-management-and-account-assignment-in-aws-iam-identity-center/)。

## 先决条件
<a name="delegated-admin-prereqs"></a>

在将帐户注册为委派管理员之前，必须先部署以下环境：
+ AWS Organizations 除了您的默认管理账户外，还必须启用并配置至少一个成员帐户。
+ 如果您的身份源设置为 Active Directory，则必须启用 [IAM Identity Center 可配置 AD 同步](provision-users-from-ad-configurable-ADsync.md) 功能。

# 注册成员帐户
<a name="delegated-admin-how-to-register"></a>

要配置委派管理，必须先将组织中的成员帐户注册为委派管理员。该成员帐户中拥有足够权限的用户将拥有对 IAM Identity Center 的管理访问权限。成员账户成功注册委派管理后，它被称为*委派管理员账户*。要详细了解委派管理员帐户可以执行的任务，请参阅 [AWS 账户 类型](manage-your-accounts.md#account-types)。

IAM Identity Center 一次仅支持将一个成员帐户注册为委派管理员。只有使用管理帐户的凭证登录后，您才能注册成员帐户。

通过将 AWS 组织中的特定成员账户注册为委托管理员，使用以下步骤授予对 IAM Identity Center 的管理访问权限。

**重要**  
此操作将 IAM Identity Center 管理权限委派给该成员帐户中的管理员用户。对此委派管理员帐户拥有足够权限的所有用户都可以从该帐户执行所有 IAM Identity Center 管理任务，但以下任务除外：  
启用 IAM Identity Center
删除 IAM Identity Center 配置
管理管理账号中配置的权限集
将其他成员账号作为委派管理员注册或取消注册
在管理帐户中启用或禁用用户访问权限
委派管理员可以编辑组成员资格。

**注册成员帐户**

1.  AWS 管理控制台 使用您的管理账户的凭据登录 AWS Organizations。需要管理账户凭据才能运行 [RegisterDelegatedAdministrator](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RegisterDelegatedAdministrator.html)API。

1. 选择启用 IAM Identity Center 的区域，然后打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择**设置**，然后选择**管理**选项卡。

1. 在 **委派管理员** 部分，选择 **注册帐户**。

1. 在 “**注册委托管理员**” 页面上，选择 AWS 账户 要注册的，然后选择 “**注册账户**”。

# 取消注册成员帐户
<a name="delegated-admin-how-to-deregister"></a>

只有使用管理帐户的凭证登录后，您才能取消注册成员帐户。

使用以下步骤取消 AWS 组织中以前被指定为委托管理员的成员账户的注册，从而从 IAM Identity Center 中移除管理权限。

**重要**  
当您取消注册帐户时，您实际上移除了所有管理员用户从该帐户管理 IAM Identity Center 的能力。因此，他们无法再通过该帐户管理 IAM Identity Center 身份、访问管理、身份验证或应用程序访问权限。此操作不会影响在 IAM Identity Center 中配置的任何权限或分配，因此不会对您的最终用户产生任何影响，因为他们将继续在 AWS 访问门户 AWS 账户 中访问其应用程序。

**取消注册成员帐户**

1.  AWS 管理控制台 使用您的管理账户的凭据登录 AWS Organizations。需要管理账户凭据才能运行 [DeregisterDelegatedAdministrator](https://docs.aws.amazon.com/organizations/latest/APIReference/API_DeregisterDelegatedAdministrator.html)API。

1. 选择启用 IAM Identity Center 的区域，然后打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择**设置**，然后选择**管理**选项卡。

1. 在**委派管理员**部分，选择**取消注册帐户**。

1. 在**取消注册帐户**对话框中，查看安全隐患，然后输入成员帐户的名称以确认您已理解。

1. 选择**取消注册帐户**。

# 查看哪个成员账号已注册为委派管理员
<a name="delegated-admin-how-to-view-member-account"></a>

使用以下步骤查找您的哪个成员账户 AWS Organizations 已配置为 IAM Identity Center 的委托管理员。

**查看已注册的成员帐户**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择**设置**。

1. 在**详细信息**部分的**委派管理员**下找到注册的帐户名。您也可以通过选择**管理**选项卡，然后在**授权管理员**部分下查看来查找此信息。

# 的临时提升访问权限 AWS 账户
<a name="temporary-elevated-access"></a>

对您的所有访问权限都 AWS 账户 涉及一定级别的权限。更改生产环境的配置等敏感操作，因范围和潜在影响需要特殊处理。临时提升访问权限（也称为 just-in-time访问权限）是一种请求、批准和跟踪在指定时间内执行特定任务的权限使用情况的方法。临时提升的访问权限补充了其他形式的访问控制，例如权限集和多重身份验证。

**注意**  
为确保业务连续性，我们建议您[设置对 AWS 管理控制台的紧急访问权限](https://docs.aws.amazon.com/singlesignon/latest/userguide/emergency-access.html)。

为了满足客户的一系列需求，请与 AWS 安全能力合作伙伴的解决方案 AWS IAM Identity Center 集成。 AWS 验证这些解决方案是否满足了一组常见的临时提升访问要求。建议仔细审查每个合作伙伴解决方案，以便选择最适合您独特需求和偏好（包括业务、云环境架构和预算）的解决方案。

经过验证的解决方案包括 [Apono 访问管理平台](https://www.apono.io/)、[CyberArk 安全云访问、Okta 访问](https://www.cyberark.com/products/secure-cloud-access/)[请求](https://help.okta.com/en-us/Content/Topics/identity-governance/access-requests/ar-overview.htm)和 T [enable](https://ermetic.com/solution/just-in-time/)（之前为 Ermetic）。

合作伙伴可以使用 “合作伙伴中心” 中的 “ AWS 安全能力” 应用程序来提名解决方案。有关更多信息，请参阅 [AWS 安全能力合作伙伴](https://aws.amazon.com/security/partner-solutions/)。

**注意**  
如果您使用的是基于资源的Amazon Elastic Kubernetes Ser AWS Key Management Service vice[，或者，请在选择解决方案之前参阅在资源策略、Amazon EKS 集群配置映射 AWS KMS 和密钥策略中引用权限集](https://docs.aws.amazon.com/singlesignon/latest/userguide/referencingpermissionsets.html)。 just-in-time

# 单点登录访问 AWS 账户
<a name="useraccess"></a>

您可以 AWS Organizations 根据[常见的工作职能](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)，将已连接目录中的用户分配给组织中的管理账户或成员账户的权限。或者，您可以使用自定义权限，以满足特定的安全需求。例如，您可以在开发帐户中授予数据库管理员广泛的 Amazon RDS 权限，但限制其在生产帐户中的权限。IAM Identity Center 自动在您的 AWS 账户 帐户中配置所有必要的用户权限。

**注意**  
您可能需要向用户或群组授予使用 AWS Organizations 管理账户进行操作的权限。由于它是高权限帐户，因此其他安全限制要求您先拥有[IAMFull访问](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess)策略或同等权限，然后才能进行设置。您 AWS 组织中的任何成员账户都不需要这些额外的安全限制。

**Topics**
+ [为用户或群组分配访问权限 AWS 账户](assignusers.md)
+ [移除用户和群组对的访问权限 AWS 账户](howtoremoveaccess.md)
+ [撤销由权限集创建的活跃 IAM 角色会话](revoke-user-permissions.md)
+ [委派谁可以为管理账号中的用户和组分配单点登录访问权限](howtodelegatessoaccess.md)

# 为用户或群组分配访问权限 AWS 账户
<a name="assignusers"></a>

使用以下过程为已连接目录中的用户和组分配单点登录访问权限，并使用权限集确定其访问级别。

要查看现有用户和组的访问权限，请参阅[查看和更改权限集](howtoviewandchangepermissionset.md)。

**注意**  
为了简化访问权限的管理，建议您直接向组（而非各个用户）分配访问权限。通过组，您可以授予或拒绝用户组的权限，而不是必须为每个用户应用这些权限。如果用户移动到不同的组织，您只需将该用户移动到不同的组，他们会自动接收新组织所需的权限。

**为用户或组分配访问权限 AWS 账户**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。
**注意**  
确保 IAM Identity Center 控制台使用的区域是您的 AWS Managed Microsoft AD 目录所在的区域，然后再继续执行下一步骤。

1. 在导航窗格中的**多帐户权限**下，选择 **AWS 账户**。

1. 在 **AWS 账户** 页面上，将显示贵组织的树状视图列表。选中要为其分配访问权限的 AWS 账户 旁边的复选框。如果您要为 IAM Identity Center 设置管理访问权限，请选中管理账户旁边的复选框。
**注意**  
向用户和群组分配单点登录访问权限时，每个权限集一次最多可以选择 10 AWS 账户 个。要向同一组用户和组分配 10 个 AWS 账户 以上的用户，请根据需要为其他帐户重复此过程。出现提示时，选择相同的用户、组和权限集。

1. 选择**分配用户或组**。

1. 对于 “**步骤 1：选择用户和组**”，在 “**将用户和组分配给*AWS-account-name*”** 页面上，执行以下操作：

   1. 在**用户**选项卡上，选择一个或多个要向其授予单点登录访问权限的用户。

      要筛选结果，请开始在搜索框中键入所需用户的名称。

   1. 在**组**选项卡上，选择一个或多个要向其授予单点登录访问权限的组。

      要筛选结果，请开始在搜索框中键入所需组的名称。

   1. 要显示您选择的用户和组，请选择**选定的用户和组**旁边的横向三角形。

   1. 确认选择了正确的用户和组后，选择**下一步**。

1. 对于 “**步骤 2：选择权限集**”，在 “**将权限集分配给*AWS-account-name*”** 页面上，执行以下操作：

   1. 选择一个或多个权限集。如有需要，您可以创建和选择新的权限集。
      + 要选择一个或多个现有权限集，请在**权限集**下，选择要应用于在上一步中选择的用户和组的权限集。
      + 要创建一个或多个新权限集，请选择**创建权限集**，然后按照 [创建权限集](howtocreatepermissionset.md) 中的步骤操作。创建要应用的权限集后，在 IAM Identity Center 控制台中，返回到 **AWS 账户** 并按照说明进行操作，直到进入**步骤 2：选择权限集**。完成此步骤后，选择您创建的新权限集，然后继续执行此过程的下一步。

   1. 确认选择了正确的权限集后，选择**下一步**。

1. 对于**步骤 3：审阅并提交**，在 “**查看并提交作业*AWS-account-name*”** 页面上，执行以下操作：

   1. 查看选定的用户、组和权限集。

   1. 确认选择了正确的用户、组和权限集之后，选择**提交**。

**注意事项**
   + 用户和组的分配过程可能需要几分钟才能完成。等到此过程成功完成再关闭该页面。
   + 
**注意**  
您可能需要向用户或群组授予使用 AWS Organizations 管理账户进行操作的权限。由于它是高权限帐户，因此其他安全限制要求您先拥有[IAMFull访问](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/IAMFullAccess)策略或同等权限，然后才能进行设置。您 AWS 组织中的任何成员账户都不需要这些额外的安全限制。

1. 如果符合以下任一条件，请按照 [提示用户完成 MFA](mfa-getting-started.md) 中的步骤为 IAM Identity Center 启用 MFA：
   + 您正在使用默认的 Identity Center 目录作为身份源。
   + 您使用的是 Active Directory 中的 AWS Managed Microsoft AD 目录或自管理目录作为身份源，但没有将 RADIUS M AWS Directory Service FA 与一起使用。
**注意**  
如果您正在使用外部身份提供者，请注意由外部 IdP（而不是 IAM Identity Center）管理 MFA 设置。外部不支持使用 IAM 身份中心中的 MFA。 IdPs

当您为管理用户设置帐户访问权限时，IAM Identity Center 会创建相应的 IAM 角色。此角色由 IAM Identity Center 控制 AWS 账户，在相关版本中创建，权限集中指定的策略将附加到该角色。

或者，您可以使用 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSO.html) 创建和分配权限集，并将这些权限集分配给用户。然后，用户可以[登录 AWS 访问门户](howtosignin.md)或使用 [AWS Command Line Interface （AWS CLI）](https://docs.aws.amazon.com/singlesignon/latest/userguide/integrating-aws-cli.html)命令。

# 移除用户和群组对的访问权限 AWS 账户
<a name="howtoremoveaccess"></a>

使用此过程可以删除所连接目录中一个或多个用户和组 AWS 账户 对的的单点登录访问权限。或者，您也可以使用 [delete-account-assignment](https://docs.aws.amazon.com//cli/latest/reference/sso-admin/delete-account-assignment.html) AWS CLI。

**注意**  
当您需要注销 IAM Identity Center 用户或组时，应先从用户和组中[移除所有权限集分配](howtoremovepermissionset.md)，再删除用户和组。

**删除用户和群组对的访问权限 AWS 账户**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 在导航窗格中的**多帐户权限**下，选择 **AWS 账户**。

1. 在 **AWS 账户** 页面上，将显示您的组织的树视图列表。选择 AWS 账户 包含要删除其单点登录访问权限的用户和群组的名称。

1. 在 “**概述**” 页面的 “**分配的用户和组**” 下 AWS 账户，选择一个或多个用户或组的名称，然后选择 “**移除访问权限**”。

1. 在**移除访问权限**对话框中，确认用户或组的名称是否正确，然后选择**移除访问权限**。

# 撤销由权限集创建的活跃 IAM 角色会话
<a name="revoke-user-permissions"></a>

 撤销活跃的 IAM Identity Center 用户权限集会话的一般过程如下。该过程假设您要移除凭证受损的用户或系统中恶意行为者的所有访问权限。先决条件是遵循 [准备撤销由权限集创建的活跃 IAM 角色会话](prereqs-revoking-user-permissions.md#prepare-to-revoke-session) 中的指导。我们假设服务控制策略（SCP）中存在“全部拒绝策略”。

**注意**  
AWS 建议您构建自动化以处理除仅限控制台的操作之外的所有步骤。

1. **获取必须撤销其访问权限之人的用户 ID。**您可以使用身份存储 APIs 按用户名查找用户。

1. **更新“拒绝策略”，将步骤 1 中的用户 ID 添加到服务控制策略（SCP）中。**完成此步骤后，目标用户会失去访问权限，无法对受该策略影响的任何角色执行操作。

1. **移除该用户的所有权限集分配。**如果通过组成员资格分配访问权限，请将该用户从所有组和所有直接权限集分配中移除。此步骤可防止用户代入其他 IAM 角色。如果用户拥有有效的 AWS 访问门户会话，而您禁用了该用户，则他们可以继续扮演新角色，直到您删除其访问权限。

1. **如果您将身份提供者（IdP）或 Microsoft Active Directory 用作身份源，请在身份源中禁用该用户。**禁用该用户可以防止创建其他 AWS 访问门户会话。参阅 IdP 或 Microsoft Active Directory API 文档，了解如何自动执行此步骤。如果将 IAM Identity Center 目录用作身份源，切勿禁用用户访问权限。在步骤 6 中禁用用户访问权限。

1.  **在 IAM Identity Center 控制台中，找到用户并删除其活跃会话。**

   1. 选择**用户**。

   1. 选择要删除其活跃会话的用户。

   1. 在用户详细信息页面上，选择**活跃会话**选项卡。

   1. 选中要删除的会话旁边的复选框，然后选择**删除会话**。

    删除用户会话后，用户将立即失去对访问门户的 AWS 访问权限。了解[会话持续时间](authconcept.md)。

1. **在 IAM Identity Center 控制台中禁用用户访问权限。**

   1. 选择**用户**。

   1. 选择要禁用访问权限的用户。

   1. 在用户详细信息页面上展开**一般信息**，然后选择**禁用用户访问权限**按钮，防止该用户继续登录。

1. **保留“拒绝策略”至少 12 小时。**否则，拥有活跃 IAM 角色会话的用户将恢复对 IAM 角色的操作。如果等待 12 小时，活跃会话会过期，用户无法再次访问 IAM 角色。

**重要**  
如果在停止用户会话之前禁用了用户的访问权限（在未完成步骤 5 的情况下完成了步骤 6），则无法再通过 IAM Identity Center 控制台停止用户会话。如果在停止用户会话之前无意中禁用了用户访问权限，则可以重新启用用户，停止其会话，然后再次禁用其访问权限。

 现在，如果用户密码被盗用，您可以更改用户凭证并[恢复其分配](useraccess.md)。

# 委派谁可以为管理账号中的用户和组分配单点登录访问权限
<a name="howtodelegatessoaccess"></a>

使用 IAM Identity Center 控制台为主帐户分配单点登录访问管理帐户的权限。默认情况下，只有附加 AWS 账户根用户 了**AWSSSOMasterAccountAdministrator**和**IAMFullAccess** AWS 托管策略的用户才能向管理账户分配单点登录访问权限。**AWSSSOMasterAccountAdministrator**和**IAMFullAccess**策略管理对 AWS Organizations 组织内管理账户的单点登录访问权限。

或者，您可以使用 AWS CLI 创建权限集、将策略附加到权限集和分配权限集。以下列出了每个步骤对应的命令：
+ 要创建权限集，请执行以下操作：[create-permission-set](https://docs.aws.amazon.com//cli/latest/reference/sso-admin/create-permission-set.html)
+ 要附加 AWS Managed Policy到权限集：[attach-managed-policy-to-permission-](https://docs.aws.amazon.com//cli/latest/reference/sso-admin/attach-managed-policy-to-permission-set.html) set
+ 要将客户托管策略附加到权限集，请执行以下操作：[attach-customer-managed-policy-to-permission-set](https://docs.aws.amazon.com//cli/latest/reference/sso-admin/attach-customer-managed-policy-reference-to-permission-set.html)
+ 要将权限集分配给委托人，请执行以下操作：[create-account-assignment](https://docs.aws.amazon.com//cli/latest/reference/sso-admin/create-account-assignment.html)

使用以下步骤委派权限来管理您的目录中用户和组的单点登录访问权限。

**授予权限来管理您的目录中的用户和组的单点登录访问权限**

1. 以管理帐户的根用户身份或具有管理员权限的另一个管理用户的身份登录到 IAM Identity Center 控制台。

1. 按照 [创建权限集](howtocreatepermissionset.md) 中的步骤创建权限集，然后执行以下操作：

   1. 在**创建新权限集**页面上，选中**创建自定义权限集**复选框，然后选择**下一步：详细信息**。

   1. 在**“创建新权限集”页面**上，指定自定义权限集的名称和描述（可选）。如有需要，可以修改会话持续时间并指定中继状态 URL。
**注意**  
对于中继状态 URL，必须指定位于 AWS 管理控制台中的 URL 。例如：  
 **https://console.aws.amazon.com/ec2/**  
有关更多信息，请参阅 [设置中继状态以便快速访问 AWS 管理控制台](howtopermrelaystate.md)。

   1. 在**您要在权限集中包含哪些策略？**下，选中**附加 AWS 管理型策略**复选框。

   1. 在 IAM 策略列表中，选择**AWSSSOMasterAccountAdministrator**和**IAMFullAccess** AWS 托管策略。这些策略向以后将拥有此权限集的访问权限的任何用户和组授予权限。

   1. 选择**下一步：标签**。

   1. 在**添加标签（可选）**下，指定**密钥**和**值（可选）**的值，然后选择**下一步：查看**。有关标签的更多信息，请参阅[为资源添加标签 AWS IAM Identity Center](tagging.md)。

   1. 检查您的选择，然后选择**创建**。

1. 按照 [为用户或群组分配访问权限 AWS 账户](assignusers.md) 中的步骤将相应的用户和组分配给您刚刚创建的权限集。

1. 向已分配的用户传送以下信息：当已分配的用户登录 AWS 访问门户并选择**账户**选项卡时，必须选择适当的角色名以使用刚委派的权限进行身份验证。

# AWS 账户 使用权限集进行管理
<a name="permissionsetsconcept"></a>

权限集是您创建和维护的模板，用于定义一个或多个 [IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)的集合。权限集简化了组织中用户和群组的 AWS 账户 访问权限分配。[例如，您可以创建一个*数据库管理员*权限集，其中包括用于管理 AWS RDS、DynamoDB 和 Aurora 服务的策略，并使用该权限集向数据库管理员授予对组织内 AWS 账户AWS 目标列表的访问权限。](https://aws.amazon.com/organizations/)

IAM Identity Center 使用权限集向一个或多个 AWS 账户 用户或群组分配访问权限。当您分配权限集时，IAM Identity Center 会在每个帐户中创建 IAM Identity Center 控制的相应 IAM 角色，并将权限集中指定的策略附加到这些角色。IAM Identity Center 使用 IAM Identity Center 用户门户或 AWS CLI 管理角色，并允许您定义的授权用户代入该角色。 在您修改权限集时，IAM Identity Center 会确保相应的 IAM 策略和角色也相应更新。

您可以将 [AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)、[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)、[内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)和[适用于工作职能的AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)添加到您的权限集中。您也可以指定 AWS 管理型策略或客户管理型策略作为[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

要创建权限集，请参阅[创建、管理和删除权限集](permissionsets.md)。

## 创建应用最低权限的权限集
<a name="get-started-create-permission-set-to-grant-least-privilege-permissions"></a>

要遵循应用最低权限的最佳实践，请在创建管理权限集之后，创建一个限制性更强的权限集并将其分配给一个或多个用户。在之前过程中创建的权限集将提供一个起点，让您评估为用户访问所需的资源分配多少访问权限。要切换到最低权限权限，您可以运行 IAM Access Analyzer 来监控使用 AWS 托管策略的委托人。了解他们使用的权限后，您可以编写自定义策略或生成仅包含团队所需权限的策略。

借助 IAM Identity Center，您可以为同一个用户分配多个权限集。您还应该为管理用户分配其他限制性更强的权限集。这样，他们就可以仅 AWS 账户 凭所需的权限访问您的，而不必总是使用他们的管理权限。

例如，如果您是一名开发人员，在 IAM Identity Center 中创建管理用户后，您可以创建一个授予 `PowerUserAccess` 权限的新权限集，然后将该权限集分配给您自己。不同于使用 `AdministratorAccess` 权限的管理权限集，`PowerUserAccess ` 权限集不允许管理 IAM 用户和组。当你登录 AWS 访问门户访问你的 AWS 账户时，你可以选择`PowerUserAccess`而不是在`AdministratorAccess`账户中执行开发任务。

请注意以下事项：
+ **要快速开始创建限制性更强的权限集，请使用预定义的权限集而不是自定义权限集。**

  使用使用预定义权限的[预定义权限](permissionsetpredefined.md)集，您可以从可用策略列表中选择单个 AWS 托管策略。每项策略都授予对 AWS 服务和资源的特定级别的访问权限或对常见工作职能的权限。有关每项策略的信息，请参阅[针对工作职能的AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **您可以为权限集配置会话持续时间，以控制用户登录 AWS 账户的时间长度。**

  当用户联合到他们的管理控制台或命令行界面 (CLI) AWS 账户 并使用 AWS 管理控制台或 AWS 命令行界面 (AWS CLI) 时，IAM Identity Center 会使用权限集上的会话持续时间设置来控制会话的持续时间。默认情况下，“**会话持续时间**” 的值设置为一小时，该值决定了用户在退出会话 AWS 账户 之前 AWS 可以登录的时间长度。可以指定的最大值为 12 小时。有关更多信息，请参阅 [将会话持续时间设置为 AWS 账户](howtosessionduration.md)。
+ **您还可以配置 AWS 访问门户会话持续时间以控制员工用户登录门户的时间长度。**

  默认情况下，“**最大会话持续时间**” 的值为八小时，该值决定了员工用户在必须重新进行身份验证之前可以登录 AWS 访问门户的时间长度。可以将最大值指定为 90 天。有关更多信息，请参阅 [在 IAM Identity Center 中配置会话持续时间](configure-user-session.md)。
+ **登录 AWS 访问门户时，选择提供最低权限权限的角色。**

  您创建并分配给用户的每个权限集在 AWS 访问门户中显示为可用角色。当您以该用户身份登录门户时，请选择与可用于在帐户中执行任务的最严格的权限集相对应的角色，而不是 `AdministratorAccess`。
+ **您可以将其他用户添加到 IAM Identity Center，并为这些用户分配现有或新的权限集。**

  有关信息，请参阅[为用户或群组分配访问权限 AWS 账户](assignusers.md)。

**Topics**
+ [创建应用最低权限的权限集](#get-started-create-permission-set-to-grant-least-privilege-permissions)
+ [AWS 托管策略的预定义权限](permissionsetpredefined.md)
+ [托管策略和客户 AWS 托管策略的自定义权限](permissionsetcustom.md)
+ [创建、管理和删除权限集](permissionsets.md)
+ [配置权限集属性](permproperties.md)

# AWS 托管策略的预定义权限
<a name="permissionsetpredefined"></a>

您可以使用 AWS 托管策略创建预定义的权限集。

创建具有预定义权限的权限集时，可以从 AWS 托管策略列表中选择一个策略。在可用策略中，您可以从**常见权限策略**和**工作职能策略**中进行选择。

**常见权限策略**  
从 AWS 托管策略列表中进行选择，使您可以访问整个托管策略 AWS 账户。您可以添加以下策略之一：  
+ AdministratorAccess
+ PowerUserAccess
+ ReadOnlyAccess
+ ViewOnlyAccess

**工作职能策略**  
从 AWS 托管策略列表中进行选择，这些策略允许访问您中 AWS 账户 可能与组织内某项工作相关的资源。您可以添加以下策略之一：  
+ Billing
+ DataScientist
+ DatabaseAdministrator
+ NetworkAdministrator
+ SecurityAudit
+ SupportUser
+ SystemAdministrator

有关可用常见权限策略和工作职能策略的详细说明，请参阅 *AWS Identity and Access Management 用户指南*中的[适用于工作职能的AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。

有关如何创建权限集的说明，请参阅[创建、管理和删除权限集](permissionsets.md)。

# 托管策略和客户 AWS 托管策略的自定义权限
<a name="permissionsetcustom"></a>

您可以创建具有**自定义权限的权限**集，将您在 AWS Identity and Access Management (IAM) 中拥有的任何托管策略和客户托管策略与内联策略相结合。 AWS 您还可以纳入权限边界，设置其他策略可授予权限集用户的最大可能权限。

有关如何创建权限集的说明，请参阅[创建、管理和删除权限集](permissionsets.md)。

**您可以附加到权限集的策略类型**

**Topics**
+ [内联策略](#permissionsetsinlineconcept)
+ [AWS 托管策略](#permissionsetsampconcept)
+ [客户托管策略](#permissionsetscmpconcept)
+ [权限边界](#permissionsetsboundaryconcept)

## 内联策略
<a name="permissionsetsinlineconcept"></a>

您可以将*内联策略*附加到权限集。内联策略是格式为 IAM policy 的文本块，您可以将其直接添加到权限集中。创建新权限集时，您可以粘贴策略，也可以使用 IAM Identity Center 控制台中的策略创建工具生成新策略。您还可以使用 [AWS 策略生成器](https://awspolicygen.s3.amazonaws.com/policygen.html)创建 IAM 策略。

当您使用内联策略部署权限集时，IAM Identity Center 会在您分配权限集 AWS 账户 的地方创建一个 IAM 策略。当您将权限集分配给帐户时，IAM Identity Center 会创建策略。然后，该策略将附加到您的用户担任 AWS 账户 的 IAM 角色。

当您创建内联策略并分配权限集时，IAM Identity Center 会 AWS 账户 为您配置您的策略。使用构建权限集时[客户托管策略](#permissionsetscmpconcept)，在分配权限集之前，必须 AWS 账户 自己创建策略。

## AWS 托管策略
<a name="permissionsetsampconcept"></a>

您可以将*AWS 托管策略*附加到您的权限集。 AWS 托管策略是用于 AWS 维护的 IAM 策略。相比之下，[客户托管策略](#permissionsetscmpconcept)是您在账户中创建和维护的 IAM 策略。 AWS 托管策略解决了您的常见的最低权限用例 AWS 账户。您可以将 AWS 托管策略分配为 IAM Identity Center 创建的角色的权限或[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

AWS 维护[工作职能的AWS 托管策略，这些策略可为您的 AWS 资源分配特定于作业](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)的访问权限。当您选择对权限集使用**预定义权限**时，可以添加一项工作职能策略。选择**自定义权限**时，可以添加多项工作职能策略。

您 AWS 账户 还包含大量针对特定策略 AWS 服务 和组合的 AWS 托管 IAM 策略 AWS 服务。创建具有**自定义权限的权限**集时，可以从许多其他 AWS 托管策略中进行选择，将其分配给您的权限集。

AWS 每个都填 AWS 账户 充 AWS 托管策略。要部署包含 AWS 托管策略的权限集，您无需先在中创建策略 AWS 账户。使用构建权限集时[客户托管策略](#permissionsetscmpconcept)，在分配权限集之前，必须 AWS 账户 自己创建策略。

有关 AWS 托管策略的更多信息，请参阅 IAM 用户指南中的[AWS 托管策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## 客户托管策略
<a name="permissionsetscmpconcept"></a>

您可以将*客户管理型策略*附加到您的权限集。客户管理型策略是您在帐户中创建和维护的 IAM 策略。相比之下，您的账户中[AWS 托管策略](#permissionsetsampconcept)是否有 IAM 策略可以 AWS 维护。您可以将客户管理型策略指定为 IAM Identity Center 所创建角色的权限或[权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

使用客户托管策略创建权限集时，必须在 IAM Identity Center 分配权限集的每个 AWS 账户 策略中创建具有相同名称和路径的 IAM 策略。如果要指定自定义路径，请确保在每个 AWS 账户中指定相同的路径。有关更多信息，请参阅《IAM 用户指南》中的[友好名称和路径](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-friendly-names)。IAM Identity Center 将 IAM policy 附加到其在您的 AWS 账户中创建的 IAM 角色。最佳做法是在每个您分配权限集的帐户中对策略应用相同的权限。有关更多信息，请参阅 [在权限集中使用 IAM 策略](howtocmp.md)。

**注意**  
当客户管理型策略附加到权限集时，策略名称不区分大小写。

有关更多信息，请参阅 IAM 用户指南中的[客户管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)。

## 权限边界
<a name="permissionsetsboundaryconcept"></a>

您可以将*权限边界*附加到您的权限集。权限边界是一种 AWS 托管或客户托管的 IAM 策略，用于设置基于身份的策略可以向 IAM 委托人授予的最大权限。当您应用权限边界时，您的 [内联策略](#permissionsetsinlineconcept)、[客户托管策略](#permissionsetscmpconcept)、和 [AWS 托管策略](#permissionsetsampconcept) 不能授予任何超出您的权限边界所授予权限的权限。权限边界不授予任何权限，而是让 IAM 忽略边界之外的所有权限。

当您创建以客户管理型策略作为权限边界的权限集时，您必须在 IAM Identity Center 分配您的权限集的每个 AWS 账户 中创建一个名称相同的 IAM policy。IAM Identity Center 将 IAM policy 作为权限边界附加到它在您的 AWS 账户 中创建的 IAM 角色。

有关更多信息，请参阅 IAM 用户指南 中的 [IAM 实体的权限边界](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

# 创建、管理和删除权限集
<a name="permissionsets"></a>

权限集定义用户和组对某一 AWS 账户帐户的访问级别。权限集存储在 IAM Identity Center 中，可以配置给一个或多个 AWS 账户。您可以为用户分配多个权限集。有关权限集以及如何在 IAM Identity Center 中使用权限集的更多信息，请参阅 [AWS 账户 使用权限集进行管理](permissionsetsconcept.md)。

**注意**  
您可以在 IAM Identity Center 控制台中按名称搜索和排序权限集。

创建权限集时，请记住以下注意事项：
+ **组织实例**

  要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。
+ **以预定义的权限集为起点** 

  使用使用预定义权限的[预定义权限](permissionsetpredefined.md)集，您可以从可用策略列表中选择单个 AWS 托管策略。每项策略都授予对 AWS 服务和资源的特定级别的访问权限或对常见工作职能的权限。有关每项策略的信息，请参阅[针对工作职能的AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。收集使用情况数据后，您可以细化权限集，使其更具有限制性。
+ **将管理会话的持续时间限制在合理的工作时间段内** 

  当用户联合到他们 AWS 账户 并使用 AWS 管理控制台 或 AWS 命令行界面 (AWS CLI) 时，IAM Identity Center 会使用权限集上的会话持续时间设置来控制会话的持续时间。当用户会话达到会话持续时间时，他们将退出控制台，并被要求重新登录。作为最佳安全做法，我们建议您设置的会话持续时间长度不要超过执行角色所需的时间。默认情况下，**会话持续时间**的值为一个小时。可以指定的最大值为 12 小时。有关更多信息，请参阅 [将会话持续时间设置为 AWS 账户](howtosessionduration.md)。
+ **限制员工用户门户的会话持续时间** 

  员工用户使用门户会话来选择角色和访问应用程序。默认情况下，“**最大会话持续时间**” 的值为八小时，该值决定了员工用户在必须重新进行身份验证之前可以登录 AWS 访问门户的时间长度。可以将最大值指定为 90 天。有关更多信息，请参阅 [在 IAM Identity Center 中配置会话持续时间](configure-user-session.md)。
+ **使用提供最低权限的角色**

  您创建并分配给用户的每个权限集在 AWS 访问门户中显示为可用角色。当您以该用户身份登录门户时，请选择与可用于在帐户中执行任务的最严格的权限集相对应的角色，而不是 `AdministratorAccess`。在发送用户邀请之前，请测试您的权限集，验证其是否提供了必要的访问权限。

**注意**  
您也可以使用 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/AWS_SSO.html) 创建和分配权限集，并将这些权限集分配给用户。

**Topics**
+ [创建权限集](howtocreatepermissionset.md)
+ [查看和更改权限集](howtoviewandchangepermissionset.md)
+ [委派权限集管理](permissionsetdelegation.md)
+ [在权限集中使用 IAM 策略](howtocmp.md)
+ [在 IAM Identity Center 中移除权限集](howtoremovepermissionset.md)
+ [在 IAM Identity Center 中删除权限集](howtodeletepermissionset.md)

# 创建权限集
<a name="howtocreatepermissionset"></a>

使用此过程创建使用单个 AWS 管理型策略的预定义权限集，或者创建使用多达 10 个 AWS 管理型策略或客户管理型策略和内联策略的自定义权限集。您可以在 IAM 的 [服务限额控制台](https://console.aws.amazon.com/servicequotas)中请求调整 10 个策略的最大数量。您可以在 IAM Identity Center 控制台中创建权限集。

**注意**  
要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。

**创建权限集**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 在**多帐户权限**下，选择**权限集**。

1. 选择 **Create permission set (创建权限集合)**。

1. 在**选择权限集类型**页面的**权限集类型**下，选择权限集类型。

1. 根据权限集类型，选择一个或多个要用于权限集的策略：
   + **预定义的权限集**

     1. 在**预先定义的权限集的策略**下，从列表选择一项 IAM **工作职能策略**或**通用权限策略**，然后选择**下一步**。有关更多信息，请参阅 *AWS Identity and Access Management 用户指南* 中的 [工作职能的AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) 和 [AWS 管理型策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

     1. 转至步骤 6，完成**指定权限集详细信息**页面。
   + **自定义权限集**

     1. 选择**下一步**。

     1. 在**指定策略和权限边界**页面上，选择要应用于新权限集的 IAM 策略类型。默认情况下，您可以将多达 10 个 **AWS 管理型策略**和**客户管理型策略**的任意组合添加到您的权限集中。此限额由 IAM 设置。要提高该限额，请在您要分配权限集的每个 AWS 账户 的服务限额控制台中请求增加 IAM 限额*附加到 IAM 角色的管理型策略*。
        + 扩展**AWS 托管策略**以添加来自 IAM 的 AWS 构建和维护策略。有关更多信息，请参阅 [AWS 托管策略](permissionsetcustom.md#permissionsetsampconcept)。

          1. 在权限集中搜索并选择要应用于用户的 **AWS 管理型策略**。

          1. 如果要添加其他类型的策略，请选择其容器并进行选择。选择了所有要应用的策略后，请选择**下一步**。转至步骤 6，完成**指定权限集详细信息**页面。
        + 扩展**客户管理型策略**以添加您构建和维护的 IAM 中的策略。有关更多信息，请参阅 [客户托管策略](permissionsetcustom.md#permissionsetscmpconcept)。

          1. 选择**附加策略**，然后输入要添加到权限集的策略的名称。在要向其分配权限集的每个帐户中，使用您输入的名称创建策略。最佳做法是为每个帐户中的策略分配相同的权限。

          1. 选择**附加更多**以添加其他策略。

          1. 如果要添加其他类型的策略，请选择其容器并进行选择。选择了所有要应用的策略后，请选择**下一步**。转至步骤 6，完成**指定权限集详细信息**页面。
        + 展开**内联策略**，添加自定义 JSON 格式的策略文本。内联策略与现有的 IAM 资源不对应。要创建内联策略，请在提供的表单中输入自定义策略语言。IAM Identity Center 会将策略添加到它在您的成员帐户中创建的 IAM 资源中。有关更多信息，请参阅 [内联策略](permissionsetcustom.md#permissionsetsinlineconcept)。

          1. 在交互式编辑器中将所需操作和资源添加到内联策略中。可以使用**添加新语句**添加其他语句。

          1. 如果要添加其他类型的策略，请选择其容器并进行选择。选择了所有要应用的策略后，请选择**下一步**。转至步骤 6，完成**指定权限集详细信息**页面。
        + 展开**权限边界**，将 AWS 托管或客户托管的 IAM 策略添加为权限集中的其他策略可以分配的最大权限。有关更多信息，请参阅 [权限边界](permissionsetcustom.md#permissionsetsboundaryconcept)。

          1. 选择**使用权限边界控制最大权限**。

          1. 选择 **AWS 管理型策略**来设置来自 IAM 的策略，该策略将 *AWS* 构建和维护作为您的权限边界。选择**客户管理型策略**，从 IAM 中设置一个由*您*构建和维护的策略作为权限边界。

          1. 如果要添加其他类型的策略，请选择其容器并进行选择。选择了所有要应用的策略后，请选择**下一步**。转至步骤 6，完成**指定权限集详细信息**页面。

1. 在**指定权限集详细信息** 页面中，请执行以下操作：

   1. 在**权限集名称** 下，键入一个名称以在 IAM Identity Center 中标识此权限集。您为此权限集指定的名称作为可用角色出现在 AWS 访问门户中。用户登录 AWS 访问门户，选择一个 AWS 账户，然后选择角色。
**注意**  
权限集名称在您的 IAM Identity Center 实例中必须唯一。

   1. （可选）您也可以键入描述。描述仅显示在 IAM Identity Center 控制台中，不显示在 AWS 访问门户中。

   1. （可选）指定**会话持续时间**的值。该值确定用户在控制台注销其会话之前可以登录的时间长度。有关更多信息，请参阅 [将会话持续时间设置为 AWS 账户](howtosessionduration.md)。

   1. （可选）指定**中继状态**的值。此值在联合身份验证过程中用于重定向帐户中的用户。有关更多信息，请参阅 [设置中继状态以便快速访问 AWS 管理控制台](howtopermrelaystate.md)。
**注意**  
中继状态 URL 必须在 AWS 管理控制台中。例如：  
**https://console.aws.amazon.com/ec2/**

   1. 展开**标签（可选）**，选择**添加标签**，然后为**密钥**和**值（可选）**指定值。

      有关标签的信息，请参阅 [为资源添加标签 AWS IAM Identity Center](tagging.md)。

   1. 选择**下一步**。

1. 在**查看并创建**页面上，查看您所做的选择，然后选择**创建**。

1. 默认情况下，当您创建权限集时，不会配置该权限集（用于任何权限集 AWS 账户）。要在中配置权限集 AWS 账户，您必须为账户中的用户和群组分配 IAM Identity Center 访问权限，然后将该权限集应用于这些用户和群组。有关更多信息，请参阅 [为用户或群组分配访问权限 AWS 账户](assignusers.md)。

# 查看和更改权限集
<a name="howtoviewandchangepermissionset"></a>

您可以使用权限集为用户授予 AWS 账户的访问权限。您可以使用 AWS IAM Identity Center 控制台查看和更改权限集。您可以在 IAM Identity Center 控制台中按名称搜索和排序权限集。有关权限集以及如何在 IAM Identity Center 中使用权限集的更多信息，请参阅 [AWS 账户 使用权限集进行管理](permissionsetsconcept.md)。

管理用户对应用程序的访问权限无需使用权限集。

**注意**  
要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。

## 查看权限集分配
<a name="howtoviewpermissionset"></a>

按照此过程在 AWS IAM Identity Center 控制台中查看已应用的权限集。

------
#### [ All AWS 账户 where a permission set is provisioned ]

要查看某个权限集的所有分配，请执行以下过程：

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**多账户权限**下，选择**权限集**。

1. 在**权限集**页面选择要查看的权限集。

1. 进入所选权限集页面后，在**账户**选项卡下，您可以查看该权限集所应用的账户。您可以选择某个账户，查看该权限集在该账户中的配置方式。您可以[删除](howtoremovepermissionset.md)策略、编辑策略、将策略附加到权限集。

------
#### [ All permission sets for an AWS 账户 ]

要查看某个权限集的所有分配，请执行以下过程：

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**多帐户权限**下，选择 **AWS 账户**。选择您要查看已配置权限集的账户。

1. 进入选定 AWS 账户 页面后，在 “**权限集**” 选项卡下，您可以查看分配给选定权限的不同权限集 AWS 账户。您可以点击权限集的超链接，了解该权限集的详细信息。

------
#### [ All applied permission sets to users and groups ]

要查看分配给用户或组的所有权限集，请执行以下过程：

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**控制面板**下选择“用户”或“组”，查看 IAM Identity Center 用户或组。

   1. 进入**用户**页面后，选择您要查看其已应用权限集的用户。接下来，选择 **AWS 账户** 选项卡，然后选择 **AWS 账户访问**区域下的 AWS 账户 。您将能够看到所选用户的已应用权限集。 AWS 账户 

   1. 进入**组**页面后，选择您要查看其已应用权限集的组。接下来，选择 **AWS 账户**选项卡，然后选择 **AWS 账户 访问**区域下的 AWS 账户 。您将能够看到所选群组所应用 AWS 账户 的权限集。

------

## 更改权限集
<a name="howtochangepermissionset"></a>

按照此过程通过 IAM Identity Center 控制台更改[权限集](permissionsetsconcept.md)。您可以向用户或组添加或移除权限集。

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**多帐户权限**下，选择 ** AWS 账户**。

1. 在 **AWS 账户** 页面上，将显示您的组织的树视图列表。选择要更改权限集的 AWS 账户 的名称。

1. 在 AWS 账户**概述**页面上，从**分配的用户和组**下选择要更改的权限集的用户名或组名。然后选择**更改权限集**。

1. 对权限集进行所需更改，然后选择**保存更改**。

1. 导航至**权限集**选项卡，选择最近更改的权限集，然后选择**更新**。

1. 在**更新权限**页面选择**更新**。

# 委派权限集管理
<a name="permissionsetdelegation"></a>

IAM Identity Center 允许您通过创建引用 [IAM 身份中心[资源的亚马逊资源名称 (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) 的 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)来委托账户中的权限集和分配的管理。例如，您可以创建策略，使不同的管理员能够在指定帐户中为具有特定标签的权限集管理分配。

**注意**  
要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。

您可以使用下列任一方法创建这些类型的策略。
+ （推荐）在 IAM Identity Center 中创建[权限集](permissionsets.md)，每个权限集都有不同的策略，并将权限集分配给不同的用户或组。这使您能够管理使用您选择的 [IAM Identity Center 身份源](manage-your-identity-source.md)登录的用户的管理权限。
+ 在 IAM 中创建自定义策略，然后将其附加到您的管理员担任的 IAM 角色。有关角色的信息，请参阅 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)以获取为其分配的 IAM Identity Center 管理权限。

**重要**  
IAM 身份中心资源区 ARNs 分大小写。

以下内容显示了引用 IAM Identity Center 权限集和帐户资源类型的正确案例。


| 资源类型 | 进行筛选 | 上下文键 | 
| --- | --- | --- | 
| PermissionSet | arn:\$1\$1Partition\$1:sso:::permissionSet/\$1\$1InstanceId\$1/\$1\$1PermissionSetId\$1 | aws:ResourceTag/\$1\$1TagKey\$1 | 
| Account | arn:\$1\$1Partition\$1:sso:::account/\$1\$1AccountId\$1 | 不适用 | 

# 在权限集中使用 IAM 策略
<a name="howtocmp"></a>

在 [创建权限集](howtocreatepermissionset.md) 中，您学习了如何向权限集添加策略，包括客户管理型策略和权限边界。当您将客户管理型策略和权限添加到权限集时，IAM Identity Center 不会在任何 AWS 账户中创建策略。相反，您必须在要分配权限集的每个帐户中提前创建这些策略，并将它们与权限集的名称和路径规范相匹配。当您将权限集分配给组织 AWS 账户 中的时，IAM Identity Center 会创建一个 [AWS Identity and Access Management (IAM) 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)并将您[的 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)附加到该角色。

**注意事项**
+ 要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。
+ 在使用 IAM policy 分配权限集之前，您必须准备好您的成员帐户。成员账户中的 IAM 策略名称必须与管理账户中的策略名称相符。如果您的成员帐户中不存在权限集，IAM Identity Center 将无法分配权限集。
**注意**  
当客户管理型策略附加到权限集时，策略名称不区分大小写。
+ 策略授予的权限不必在账户之间完全匹配。

# 将 IAM 策略分配给权限集


1. 在您要分配权限集的每个 AWS 账户 位置中创建一个 IAM 策略。

1. 向 IAM policy 分配权限。您可以在不同的帐户中分配不同的权限。为了获得一致的体验，请在每个策略中配置和维护相同的权限。您可以使用自动化资源，例如 AWS CloudFormation StackSets 在每个成员账户中创建具有相同名称和权限的 IAM 策略的副本。有关的更多信息 CloudFormation StackSets，请参阅《*AWS CloudFormation 用户指南》 AWS CloudFormation StackSets*中的 “[使用](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)”。

1. 在您的管理帐户中创建权限集，并在**客户管理型策略**或**权限边界**下添加您的 IAM policy。有关如何创建权限集的更多详细信息，请参阅 [创建权限集](howtocreatepermissionset.md)。

1. 添加您准备的所有内联策略、 AWS 管理型策略或其他 IAM policy。

1. 创建并分配您的权限集。

# 在 IAM Identity Center 中移除权限集
<a name="howtoremovepermissionset"></a>

您可以在 IAM Identity Center 控制台中从 IAM Identity Center 用户和组移除权限集。您也可以从 AWS 账户移除权限集。有关权限集以及如何在 IAM Identity Center 中使用权限集的更多信息，请参阅 [AWS 账户 使用权限集进行管理](permissionsetsconcept.md)。

**注意**  
要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。

------
#### [ Remove permission set from a user ]

**从用户移除权限集**

使用此过程通过 IAM Identity Center 控制台从用户移除权限集。

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在 **IAM Identity Center** 下，选择**用户**。

1. 选择您要移除其权限集的用户名。

1. 在用户详情页面，选择 **AWS 账户**选项卡。在 **AWS 账户 访问**下，选择您的 AWS 账户。

1. 右侧面板将显示所选用户的已应用权限。选择您要移除的权限集。在**账户访问详情**下，选择**移除**。

1. 系统将弹出对话框，询问您是否要移除该权限集。选择**移除**。  
![\[AWS 账户 IAM 身份中心控制台中的 IAM 身份中心用户的选项卡。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/remove-permission-set-tutorial.png)

------
#### [ Remove permission set from a group ]

**从组移除权限集**

使用此过程通过 IAM Identity Center 控制台从组移除权限集。

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**多账户权限**下，选择 **AWS 账户**。选择指向您管理账户的链接。  
![\[AWS 账户 IAM 身份中心控制台中的选项卡。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/sso-aws-accounts-tab.png)

1. 在**已分配用户和组**选项卡下，选择您要移除其权限集的组，然后选择**修改权限集**。

1. 在**更改权限集**页面上，清除您要移除的权限集，然后选择**保存更改**。

------
#### [ Remove permission set from an AWS 账户 ]

使用此过程通过 IAM Identity Center 控制台从 AWS 账户 移除权限集。

1. 登录 AWS 管理控制台 并打开 AWS IAM Identity Center 控制台，网址为[https://console.aws.amazon.com/singlesignon/](https://console.aws.amazon.com/singlesignon/)。

1. 在**多账户权限**下，选择 **AWS 账户**。选择要 AWS 账户 从中移除权限集的名称。

1. 在 AWS 账户的**概述**页面上，选择**权限集**选项卡。选择您要移除的权限集。然后选择**移除**。

1. 在**移除权限集**对话框中，确认选择了正确的权限集，输入 **Delete** 以确认移除，然后选择**移除访问权限**。

------

# 在 IAM Identity Center 中删除权限集
<a name="howtodeletepermissionset"></a>

在从 IAM Identity Center 删除权限集之前，您应将其从使用该权限集的所有 AWS 账户 中[移除](howtoremovepermissionset.md)。要查看现有用户和组的访问权限，请参阅[查看和更改权限集](howtoviewandchangepermissionset.md)。

**注意事项**
+ 要使用权限集，您将需要使用 IAM Identity Center 的组织实例。有关更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。
+ 如果要撤销活跃权限集会话，请参阅[查看和结束员工用户的活跃会话](end-active-sessions.md)。
+ 在删除用户或组之前，应先从这些用户或组中移除权限集和应用程序分配。否则，IAM Identity Center 中将会存在未分配且未使用的权限集和应用程序。

使用以下步骤删除一个或多个权限集，这样组织 AWS 账户 中的任何人就无法再使用这些权限集。

**重要**  
已分配此权限集的所有用户和群组，无论使用 AWS 账户 的是什么，都将无法再登录。要查看现有用户和组的访问权限，请参阅[查看和更改权限集](howtoviewandchangepermissionset.md)。

**从中删除权限集 AWS 账户**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 在**多帐户权限**下，选择**权限集**。

1. 选择要删除的权限集，然后选择 **Delete (删除)**。

1. 在**删除权限集**对话框中，输入权限集的名称以确认删除，然后选择**删除**。该名称区分大小写。

# 配置权限集属性
<a name="permproperties"></a>

在 IAM Identity Center 中，管理员可以通过完成以下配置和管理任务来控制用户访问权限及会话持续时间。


| Task | 了解详情 | 
| --- | --- | 
|  管理员可以设置通过 IAM Identity Center 访问 AWS 资源时用户会话的最大持续时间。 | [将会话持续时间设置为 AWS 账户](howtosessionduration.md) | 
| 管理员可以自定义用户在成功通过 IAM Identity Center 进行身份验证后看到的登录页面。 | [设置中继状态以便快速访问 AWS 管理控制台](howtopermrelaystate.md) | 
| 确保用户在权限被撤销后无法再访问 AWS 资源。 | [使用“拒绝策略”撤销活跃用户权限](prereqs-revoking-user-permissions.md) | 

# 将会话持续时间设置为 AWS 账户
<a name="howtosessionduration"></a>

对于每个 [权限集](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html)，您可以指定会话持续时间，以控制用户可登录 AWS 账户帐户的时间长度。当指定的持续时间过后，用户 AWS 将退出会话。

创建新权限集时，会话持续时间默认设置为 1 小时（以秒为单位）。最短会话持续时间为 1 小时，最多可设置为 12 小时。IAM Identity Center 会在每个分配的帐户中为每个权限集自动创建 IAM 角色，并将这些角色配置为最长会话持续时间为 12 小时。

当用户联合访问其 AWS 账户 控制台或使用 AWS Command Line Interface (AWS CLI) 时，IAM Identity Center 会使用权限集上的会话持续时间设置来控制会话的持续时间。默认情况下，IAM Identity Center 为权限集生成的 IAM 角色只能由 IAM Identity Center 用户担任，这可确保强制实施 IAM Identity Center 权限集中指定的会话持续时间。

**重要**  
作为最佳安全做法，我们建议您设置的会话持续时间长度不要超过执行角色所需的时间。

创建权限集后，您可以对其进行更新以应用新的会话持续时间。使用以下过程修改该权限集的会话持续时间长度。

**设置会话持续时间**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 在**多帐户权限**下，选择**权限集**。

1. 选择要为其更改会话持续时间的权限集的名称。

1. 在权限集的详细信息页面上，在**常规设置** 部分标题的右侧，选择**编辑**。

1. 在**编辑常规权限集设置**页面上，为**会话持续时间**选择一个新值。

1. 如果以任何方式配置了权限集 AWS 账户，则帐户名称将显示在下面，**AWS 账户 以便自动重新置**备。权限集的会话持续时间值更新后，将重新配置所有使用 AWS 账户 该权限集的用户。这意味着此设置的新值将应用于所有使用 AWS 账户 该权限集的用户。

1. 选择**保存更改**。

1. **AWS 账户** 页面顶部会显示一条通知。
   + 如果在一个或多个 AWS 账户中配置了权限集，则通知会确认 AWS 账户 已成功重新配置，并且更新的权限集已应用于帐户。
   + 如果未在中配置权限集 AWS 账户，则通知将确认权限集的设置已更新。

# 设置中继状态以便快速访问 AWS 管理控制台
<a name="howtopermrelaystate"></a>

默认情况下，当用户登录 AWS 访问门户，选择账户，然后选择根据分配的权限集 AWS 创建的角色时，IAM Identity Center 会将用户的浏览器重定向到。 AWS 管理控制台您可以通过将中继状态设置为不同的控制台 URL 来更改此行为。

通过设置中继状态，您能够为用户提供对最适合其角色的控制台的快速访问。例如，您可以将中继状态设置为 Amazon EC2 控制台 URL (**https://console.aws.amazon.com/ec2/**) ，以便在用户选择 Amazon EC2 管理员角色时将用户重定向到该控制台。在重定向到默认 URL 或中继状态 URL 的过程中，IAM Identity Center 会将用户的浏览器路由到用户上次 AWS 区域 使用的控制台终端节点。例如，如果用户结束了欧洲地区（斯德哥尔摩）(eu-north-1) 的最后一个控制台会话，则该用户将被重定向到该区域中的 Amazon EC2 控制台。

![\[在 AWS 管理控制台中设置中继状态的工作流程图。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/permission_sets_relay_state_newest.png)


要配置 IAM Identity Center 以将用户重定向到特定 AWS 区域中的控制台，将区域规范包含在 URL 中。例如，要将用户重定向到美国东部（俄亥俄州）(us-east-2) 中的 Amazon EC2 控制台，指定该区域中 Amazon EC2 控制台的 URL (**https://us-east-2.console.aws.amazon.com/ec2/**)。如果您在美国西部（俄勒冈州）(us-west-2) 启用了 IAM Identity Center，并且您希望将用户定向到该区域，指定 **https://us-west-2.console.aws.amazon.com**。

## 配置中继状态
<a name="configure-relay-state"></a>

使用以下过程为权限集配置中继状态 URL。

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 在**多帐户权限**下，选择**权限集**。

1. 选择要为其设置新中继状态 URL 的权限集的名称。

1. 在权限集的详细信息页面上，在**常规设置** 部分标题的右侧，选择**编辑**。

1. 在 **“编辑常规权限集设置”** 页面的 “**中继状态**” 下，键入任何 AWS 服务的控制台 URL。例如：

    **https://console.aws.amazon.com/ec2/**
**注意**  
中继状态 URL 必须在 AWS 管理控制台中。

1. 如果以任何方式配置了权限集 AWS 账户，则帐户名称将显示在下面，**AWS 账户 以便自动重新置**备。权限集的中继状态 URL 更新后，将重新配置所有使用 AWS 账户 该权限集的用户。这意味着此设置的新值将应用于所有使用 AWS 账户 该权限集的用户。

1. 选择**保存更改**。

1. 在 **AWS 组织**页面的顶部会显示一条通知。
   + 如果在一个或多个 AWS 账户中配置了权限集，则通知会确认 AWS 账户 已成功重新配置，并且更新的权限集已应用于帐户。
   + 如果权限集未在 AWS 账户中配置，则通知会确认权限集的设置已更新。

**注意**  
您可以使用 AWS API、 AWS SDK 或 AWS Command Line Interface(AWS CLI) 自动执行此过程。有关更多信息，请参阅:   
[IAM Identity Center API 参考](https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html)中的 `CreatePermissionSet` 或 `UpdatePermissionSet` 操作 
*AWS CLI 命令参考*的 [https://docs.aws.amazon.com/cli/latest/reference/sso-admin/index.html#cli-aws-sso-admin](https://docs.aws.amazon.com/cli/latest/reference/sso-admin/index.html#cli-aws-sso-admin) 部分中的 `create-permission-set` 或 `update-permission-set` 命令。

# 使用“拒绝策略”撤销活跃用户权限
<a name="prereqs-revoking-user-permissions"></a>

当 IAM Identity Center 用户正在使用权限集 AWS 账户 时，您可能需要撤销该用户的访问权限。事先为未指定用户实施“拒绝策略”，可以取消其使用其活跃 IAM 角色会话的权限；然后在需要时可以更新“拒绝策略”，指定要阻止其访问权限的用户。本主题旨在介绍如何创建“拒绝策略”以及部署策略的注意事项。

## 准备撤销由权限集创建的活跃 IAM 角色会话
<a name="prepare-to-revoke-session"></a>

您可以通过使用“服务控制策略”对特定用户应用“全部拒绝”策略，以此阻止用户使用他们正活跃使用的 IAM 角色执行操作。您还可以在自己更改密码之前阻止用户使用任何权限集，这样可以移除活跃滥用被盗凭证的恶意行为者。如需大范围拒绝访问并阻止用户重新进入权限集或访问其他权限集，也可移除所有用户访问权限，停止活跃的 AWS 访问门户会话，并禁用用户登录。请参阅[查看和结束员工用户的活跃会话](end-active-sessions.md)，了解如何将“拒绝策略”与其他操作结合使用，从而扩大访问权限的撤销范围。

### 拒绝策略
<a name="deny-policy"></a>

您可以使用“拒绝策略”，其条件与 IAM Identity Center 身份存储中的用户 `UserID` 匹配，以此阻止用户使用他们正活跃使用的 IAM 角色执行进一步的操作。使用此策略可以避免对部署“拒绝策略”时可能使用相同权限集的其他用户造成影响。此策略将占位符用户 ID *`Add user ID here`* 用于您将通过要撤销访问权限的用户 ID 进行更新的 `"identitystore:userId"`。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "*"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "identitystore:userId": "Add user ID here"  
                }
            }
        }
    ]
}
```

------

虽然可以使用其他条件键（例如 `“aws:userId”`），但 `“identitystore:userId”` 是确定的，因为这是与某个人员有关的全局唯一值。在条件中使用 `“aws:userId”` 可能会受到从身份源同步用户属性的方式影响，并且如果用户的用户名或电子邮件地址发生变化，则可能会发生变化。

在 IAM Identity Center 控制台中，您可以通过导航到**用户**、按用户名搜索用户、展开**一般信息**部分并复制用户 ID 来查找用户 `identitystore:userId`。在搜索用户 ID 时，停止用户的 AWS 访问门户会话并禁用他们在同一部分的登录访问权限也很方便。您可以通过查询身份存储来获取用户的用户 ID，从而自动创建拒绝策略 APIs。

### 部署“拒绝策略”
<a name="deploy-deny-policy"></a>

 您可以使用无效的占位符用户 ID（例如）`Add user ID here`，使用附加到 AWS 账户 用户可能有权访问的服务控制策略 (SCP) 提前部署拒绝策略。推荐使用此方法，因为操作简单、见效快。使用“拒绝策略”撤销用户的访问权限时，您需要编辑该策略，将占位符用户 ID 替换为要撤销其访问权限之人的用户 ID。这可以防止用户使用您附加 SCP 的各个账户中设置的任何权限集执行任何操作。即使用户使用活跃的 AWS 访问门户会话导航到不同账户并代入不同角色，也无法进行操作。当 SCP 完全屏蔽了用户的访问权限后，您可以根据需要禁用他们的登录、撤消分配和停止 AWS 访问门户会话的功能。

除了使用之外 SCPs，您还可以将 “拒绝” 策略包含在权限集的内联策略和用户可以访问的权限集使用的客户托管策略中。

如果必须撤销多人的访问权限，则可在条件块中使用值列表，例如：

```
            "Condition": {
                    "StringEquals": {
                        "identitystore:userId": [" user1 userId", "user2 userId"...]
                        }
        }
```

**重要**  
无论采用何种方法，均须采取任何其他纠正措施，并在策略中保留用户的用户 ID 至少 12 小时。之后，用户代入的任何角色都将过期，然后您可以将其用户 ID 从“拒绝策略”中移除。

# 在资源策略、Amazon EKS 集群配置映射和 AWS KMS 密钥策略中引用权限集
<a name="referencingpermissionsets"></a>

当您为 AWS 账户分配权限集时，IAM Identity Center 会创建一个名称以开头的角色`AWSReservedSSO_`。

 角色的完整名称和 Amazon 资源名称（ARN）使用以下格式：


| Name | 进行筛选 | 
| --- | --- | 
| AWSReservedSSO\$1permission-set-name\$1unique-suffix | arn:aws:iam::aws-account-ID:role/aws-reserved/sso.amazonaws.com/aws-region/AWSReservedSSO\$1permission-set-name\$1unique-suffix | 

如果您在 IAM 身份中心中的身份源托管在 us-east-1 中，则 ARN 中没有。*aws-region*角色的完整名称和 ARN 使用以下格式：


| Name | 进行筛选 | 
| --- | --- | 
| AWSReservedSSO\$1permission-set-name\$1unique-suffix | arn:aws:iam::aws-account-ID:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO\$1permission-set-name\$1unique-suffix | 

例如，如果您创建了向数据库管理员授予 AWS 账户访问权限的权限集，则会使用以下名称和 ARN 创建相应的角色：


| Name | 进行筛选 | 
| --- | --- | 
| AWSReservedSSO\$1DatabaseAdministrator\$11234567890abcdef  | arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO\$1DatabaseAdministrator\$11234567890abcdef | 

如果您删除 AWS 账户中对该权限集的所有分配，则 IAM Identity Center 创建的相应角色也会被删除。如果您稍后对同一权限集进行新分配，IAM Identity Center 会为该权限集创建一个新角色。新角色的名称和 ARN 包含不同的唯一后缀。在此示例中，唯一后缀是 **abcdef0123456789**。


| Name | 进行筛选 | 
| --- | --- | 
| AWSReservedSSO\$1DatabaseAdministrator\$1abcdef0123456789 | arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO\$1DatabaseAdministrator\$1abcdef0123456789 | 

角色的新名称和 ARN 的后缀更改将导致任何引用原始名称和 ARN 的策略出现，从而中断使用 out-of-date相应权限集的个人的访问权限。例如，如果在以下配置中引用原始 ARN，则角色 ARN 的更改将中断权限集用户的访问：
+ 如使用 `aws-auth ConfigMap` 访问集群，则在 Amazon Elastic Kubernetes Service（Amazon EKS）集群的 `aws-auth ConfigMap` 文件中。
+ 在 AWS Key Management Service (AWS KMS) 密钥的基于资源的策略中。该政策也被称为密钥政策。

**注意**  
建议使用 [Amazon EKS 访问条目](https://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html)管理对 Amazon EKS 集群的访问权限。这样您就可以使用 IAM 权限管理有权访问 Amazon EKS 集群的主体。通过使用 Amazon EKS 访问条目，您无需联系 支持即可使用具有 Amazon EKS 权限的 IAM 主体重新获得对集群的访问权限。

尽管您可以更新大多数 AWS 服务的基于资源的策略，以便为与权限集相对应的角色引用新 ARN，但您必须拥有在 IAM for Amazon EKS 中创建的备用角色， AWS KMS 并且如果 ARN 发生变化。对于 Amazon EKS，备份 IAM 角色必须存在于 `aws-auth ConfigMap` 中。因为 AWS KMS，它必须存在于您的密钥策略中。如果您没有有权更新`aws-auth ConfigMap`或 AWS KMS 密钥策略的备用 IAM 角色，请联系 支持 以重新获得对这些资源的访问权限。

## 避免访问中断的建议
<a name="avoid-access-disruptions"></a>

为了避免因与权限集对应的角色的 ARN 更改而导致访问中断，我们建议您执行以下操作。
+ **维护至少一项权限集分配。**

  在包含您在 Amazon EKS 中引用的角色、中的`aws-auth ConfigMap`关键策略或其他 AWS 服务基于资源的策略的 AWS 账户中 AWS KMS保留此分配。

  例如，如果您创建`EKSAccess`权限集并从 AWS 账户中引用相应角色 ARN`111122223333`，则将管理组永久分配给该账户中的权限集。由于分配是永久性的，IAM Identity Center 不会删除相应的角色，从而消除了重命名风险。管理组将始终具有访问权限，而无需担心权限升级的风险。
+ **对于使用`aws-auth ConfigMap`和的 Amazon EKS 集群 AWS KMS：包括在 IAM 中创建的角色。**

  如果您在 for Amazon EKS 集群中 ARNs `aws-auth ConfigMap`为权限集引用角色，或者在 AWS KMS 密钥策略中为密钥引用角色，我们建议您至少包括一个在 IAM 中创建的角色。该角色必须允许您访问 Amazon EKS 集群或管理 AWS KMS 密钥策略。权限集必须能够承担此角色。这样，如果权限集的角色 ARN 发生更改，则可以在或密钥策略中更新对 ARN 的`aws-auth ConfigMap`引用。 AWS KMS 下一部分提供了如何为 IAM 中创建的角色创建信任策略的示例。该角色只能由 `AdministratorAccess` 权限集承担。

## 自定义信任策略示例
<a name="custom-trust-policy-example"></a>

以下是自定义信任策略的示例，该策略提供 `AdministratorAccess` 权限集，可以访问在 IAM 中创建的角色。该策略的关键要素包括：
+ 此信任策略的委托人元素指定了 AWS 账户委托人。在此策略中， AWS 账户中`111122223333`拥有`sts:AssumeRole`权限的委托人可以代入在 IAM 中创建的角色。
+ 此信任策略的 `Condition element` 指定了可以担任在 IAM 中创建的角色的主体的附加要求。在此策略中，具有以下角色 ARN 的权限集可以担任该角色。

  ```
  arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_AdministratorAccess_*"
  ```
**注意**  
`Condition` 元素包括 `ArnLike` 条件运算符，并在权限集角色 ARN 末尾使用通配符，而不是唯一的后缀。这意味着，即使权限集的角色 ARN 发生更改，策略也允许权限集代入在 IAM 中创建的角色。

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Principal": {
          "AWS": "arn:aws:iam::111122223333:root"
        },
        "Action": "sts:AssumeRole",
        "Condition": {
          "ArnLike": {
            "aws:PrincipalArn": "arn:aws:iam::111122223333:role/aws-reserved/sso.amazonaws.com/eu-west-2/AWSReservedSSO_AdministratorAccess_*"
          }
        }
      }
    ]
  }
  ```

------

  如果意外删除并重新创建了权限集或对该权限集的所有分配，则在此类策略中包含您在 IAM 中创建的角色将为您提供对您的 Amazon EKS 集群或其他 AWS 资源的紧急访问权限。 AWS KMS keys

# 基于属性的访问控制
<a name="abac"></a>

基于属性的访问权限控制 (ABAC) 是一种授权策略，该策略基于属性来定义权限。您可以使用 IAM Identity Center AWS 账户 使用来自任何 IAM Identity Center 身份源的用户属性来管理对多个 AWS 资源的访问权限。在中 AWS，这些属性称为标签。在中使用用户属性作为标签 AWS 可以帮助您简化在中创建细粒度权限的过程， AWS 并确保您的员工只能访问带有匹配标签的 AWS 资源。

例如，您可以将来自两个不同团队的开发人员 Bob 和 Sally 分配到 IAM Identity Center 中的相同权限集，然后选择团队名称属性进行访问控制。当 Bob 和 Sally 登录他们时 AWS 账户，IAM Identity Center 会在 AWS 会话中发送他们的团队名称属性，因此，只有当他们的团队名称属性与 AWS 项目资源上的团队名称标签匹配时，Bob 和 Sally 才能访问项目资源。如果 Bob 将来转到 Sally 的团队，您只需在公司目录中更新他的团队名称属性即可修改他的访问权限。当 Bob 下次登录时，他将自动获得对新团队的项目资源的访问权限，而不需要在 AWS中更新任何权限。

此方法还有助于减少您需要在 IAM Identity Center 中创建和管理的不同权限的数量，因为与相同权限集关联的用户现在可以根据其属性拥有唯一权限。您可以在 IAM Identity Center 权限集和基于资源的策略中使用这些用户属性对 AWS 资源实施 ABAC 并大规模简化权限管理。

## 优势
<a name="abac-benefits"></a>

以下是在 IAM Identity Center 使用 ABAC 的其他好处。
+ **ABAC 需要更少的权限集** – 由于您不必为不同的工作职能创建不同的策略，因此您创建的权限集更少。这降低了权限管理的复杂性。
+ **使用 ABAC，团队可以快速变化和成长** – 当资源在创建时被适当标记时，系统会根据属性自动授予新资源的权限。
+ **通过 ABAC 使用公司目录中的员工属性** – 您可以使用 IAM Identity Center 中配置的任何身份源中的现有员工属性在 AWS中做出访问控制决策。
+ **跟踪谁在访问资源** — 安全管理员可以通过查看中的用户属性来跟踪中的用户活动， AWS CloudTrail 从而轻松确定会话的身份 AWS。

有关使用 IAM Identity Center 控制台如何配置 ABAC 的信息，请参阅 [访问控制属性](attributesforaccesscontrol.md)。有关如何使用 IAM 身份中心启用和配置 ABAC 的信息 APIs，请参阅 I *AM 身份中心 API 参考指南[CreateInstanceAccessControlAttributeConfiguration](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_CreateInstanceAccessControlAttributeConfiguration.html)*中的。

**Topics**
+ [优势](#abac-benefits)
+ [清单： AWS 使用 IAM 身份中心配置 ABAC](abac-checklist.md)
+ [访问控制属性](attributesforaccesscontrol.md)

# 清单： AWS 使用 IAM 身份中心配置 ABAC
<a name="abac-checklist"></a>

此清单包括准备您的 AWS 资源和设置 IAM Identity Center 以进行 ABAC 访问所需的配置任务。按顺序完成此清单中的任务。当参考链接将您带到某个主题时，请返回到该主题，以便您可以继续执行此清单中的其余任务。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/abac-checklist.html)

完成这些步骤后，联合 AWS 账户 使用单点登录的用户将根据匹配的属性访问其 AWS 资源。

# 访问控制属性
<a name="attributesforaccesscontrol"></a>

**访问控制属性**是 IAM Identity Center 控制台中的页面名称，您可以在其中选择要在策略中使用的用户属性来控制对资源的访问。您可以 AWS 根据用户身份源中的现有属性将用户分配给中的工作负载。

例如，假设您想要根据部门名称分配对 S3 桶的访问权限。在**访问控制属性**页面上，您可以选择**部门**用户属性以与基于属性的访问权限控制（ABAC）结合使用。然后，您可以在 IAM Identity Center 权限集中编写一个策略，仅当**部门**属性与您分配给 S3 桶的部门标签匹配时才授予用户访问权限。IAM Identity Center 将用户的部门属性传递给正在访问的帐户。然后，该属性用于根据策略确定访问。有关 ABAC 的更多信息，请参阅[基于属性的访问控制](abac.md)。

## 开始使用
<a name="abac-getting-started"></a>

如何开始配置访问控制属性取决于您使用的身份源。无论您选择哪种身份源，在选择属性后，您都需要创建或编辑权限集策略。这些策略必须授予用户身份访问 AWS 资源的权限。

### 使用 IAM Identity Center 作为身份源时选择属性
<a name="abac-getting-started-sso"></a>

当您将 IAM Identity Center 配置为身份源时，您首先添加用户并配置其属性。接下来，导航到**访问控制的属性**页面，然后选择要在策略中使用的属性。最后，导航到 **AWS 账户** 页面以创建或编辑权限集以使用 ABAC 的属性。

### 在 AWS Managed Microsoft AD 用作身份来源时选择属性
<a name="abac-getting-started-ms-ad"></a>

当您将 IAM Identity Center 配置 AWS Managed Microsoft AD 为身份源时，首先要将 Active Directory 中的一组属性映射到 IAM Identity Center 中的用户属性。接下来，导航到**访问控制的属性**页面。然后，根据从 Active Directory 映射的现有 SSO 属性集选择要在 ABAC 配置中使用的属性。最后，作者使用权限集中的访问控制属性来编写 ABAC 规则，以授予用户身份对 AWS 资源的访问权限。有关 IAM Identity Center 中用户属性与 AWS Managed Microsoft AD 目录中用户属性的默认映射列表，请参阅[IAM Identity Center 与 Microsoft AD 之间的默认映射](attributemappingsconcept.md#defaultattributemappings)。

### 使用外部身份提供者作为身份源时选择属性
<a name="abac-getting-started-idp"></a>

当您使用外部身份提供者（IdP）作为身份源配置 IAM Identity Center 时，有两种方法可以使用 ABAC 的属性。
+ 您可以将 IdP 配置为通过 SAML 断言发送属性。在这种情况下，IAM Identity Center 会传递来自 IdP 的属性名称和值以进行策略评估。
**注意**  
SAML 断言中的属性在**访问控制属性**页面上对您不可见。您必须提前了解这些属性，并在编写策略时将它们添加到访问控制规则中。如果您决定信任外部 IdPs 的属性，那么当用户联合到 AWS 账户时，这些属性将始终被传递。在相同属性通过 SAML 和 SCIM 传入 IAM Identity Center 的情景中，SCIM 属性值在访问控制决策中具有优先级。
+ 您可以从 IAM Identity Center 控制台的**访问控制属性**页面配置要使用的属性。您在此处选择的属性值将替换通过断言来自 IdP 的任何匹配属性的值。根据您是否使用 SCIM，请考虑以下事项：
  + 如果使用 SCIM，IdP 会自动将属性值同步到 IAM Identity Center。SCIM 属性列表中可能不存在访问控制所需的其他属性。在这种情况下，请考虑与 IdP 中的 IT 管理员合作，使用所需的 `https://aws.amazon.com/SAML/Attributes/AccessControl:` 前缀通过 SAML 断言将此类属性发送到 IAM Identity Center。有关如何在 IdP 中配置进行访问控制的用户属性以通过 SAML 断言发送的信息，请参阅 IdP [IAM Identity Center 身份源教程](tutorials.md)。
  + 如果您不使用 SCIM，则必须手动添加用户并设置其属性，就像使用 IAM Identity Center 作为身份源一样。接下来，导航到**访问控制的属性**页面，然后选择要在策略中使用的属性。

有关 IAM Identity Center 中的用户属性与外部用户属性的支持属性的完整列表 IdPs，请参阅[支持的外部身份提供商属性](attributemappingsconcept.md#supportedidpattributes)。

要开始在 IAM Identity Center 中使用 ABAC，请参阅以下主题。

**Topics**
+ [开始使用](#abac-getting-started)
+ [启用并配置访问控制属性](configure-abac.md)
+ [在 IAM Identity Center 中为 ABAC 创建权限策略](configure-abac-policies.md)

# 启用并配置访问控制属性
<a name="configure-abac"></a>

[要使用基于属性的访问权限控制（ABAC），您必须首先在 IAM Identity Center 控制台的**设置**页面或 IAM Identity Center API 中启用它。](https://docs.aws.amazon.com//singlesignon/latest/APIReference/API_CreateInstanceAccessControlAttributeConfiguration.html)无论使用何种身份源，您都可以从身份存储中配置用户属性，用于基于属性的访问控制（ABAC）。在控制台中，您可通过导航至**设置**页面的**访问控制属性**选项卡完成此配置。如果您使用外部身份提供者（IdP）作为身份源，还可以选择通过 SAML 断言接收来自外部 IdP 的属性。在此情况下，您需要配置外部 IdP 以发送所需属性。如果 SAML 断言中的某个属性在 IAM Identity Center 中也被定义为 ABAC 属性，则 IAM Identity Center 会在用户登录 AWS 账户时，将其身份存储中的该属性值作为[会话标签](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_session-tags.html)发送。

**注意**  
您无法从 IAM Identity Center 控制台的**访问控制属性**页面查看外部 IdP 配置和发送的属性。如果您在来自外部 IdP 的 SAML 断言中传递访问控制属性，则当用户进行联合身份验证时，这些属性将直接发送到 AWS 账户 。这些属性在 IAM Identity Center 中不可用于映射。

**Topics**
+ [启用访问控制属性](enable-abac.md)
+ [选择访问控制属性](configure-abac-attributes.md)
+ [禁用访问控制属性](disable-abac.md)

# 启用访问控制属性
<a name="enable-abac"></a>

使用以下过程可使用 IAM Identity Center 控制台启用访问属性 (ABAC) 控制功能。

**注意**  
如果您有现有权限集且计划在 IAM Identity Center 实例中启用 ABAC，则额外的安全限制要求您首先拥有 `iam:UpdateAssumeRolePolicy` 策略。如果您没有在帐户中创建任何权限集，则不需要这些额外的安全限制。  
如果您的 IAM Identity Center 实例是在 2020 年 12 月之前创建的，并且您计划在其中启用 ABAC，则无论您的账户中是否创建了权限集，都必须将`iam:UpdateAssumeRolePolicy`策略与 IAM Identity Center 管理角色相关联。

**启用访问控制的属性**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择 **设置**

1. 在**设置**页面上，找到**访问控制属性** 框，然后选择**启用**。继续执行下一个步骤以对其进行配置。

# 选择访问控制属性
<a name="configure-abac-attributes"></a>

按照以下过程为 ABAC 配置设置 ABAC 配置属性。

**使用 IAM Identity Center 控制台选择您的属性**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择 **设置**

1. 在**设置**页面上，选择**访问控制的属性**选项卡，然后选择**管理属性**。

1. 在**访问控制的属性**页面上，选择**添加属性**并输入**键**和**值**的详细信息。在这里，您可以将来自您的身份源的属性映射到 IAM Identity Center 作为会话标签传递的属性。  
![\[IAM Identity Center 控制台中的键值详细信息。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/abac_key_value.png)

   **密钥**表示您为该属性提供的名称，以便在策略中使用。这可以是任意名称，但您需要在为访问控制编写的策略中指定该确切名称。例如，假设您使用Okta（外部 IdP）作为身份源，并且需要将组织的成本中心数据作为会话标签传递。在 **Key** 中，您可以输入与密钥名称类似**CostCenter**的匹配名称。需要注意的是，无论您在此处选择哪个名称，它都必须与您的 `aws:PrincipalTag 条件键`（即 `"ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"`）中的名称完全相同。
**注意**  
对您的密钥使用单值属性，例如 **Manager**。IAM Identity Center 不支持 ABAC 的多值属性，例如 **Manager, IT Systems**。

   **值**表示来自您配置的身份源的属性内容。您可以在此处输入在 [IAM Identity Center 与外部身份提供者目录之间的属性映射](attributemappingsconcept.md) 中列出的相应身份源表中的任何值。例如，使用上述示例中提供的上下文，您可以查看受支持的 IdP 属性列表，并确定受支持属性的最接近匹配项是 **`${path:enterprise.costCenter}`**，然后输入在**值**字段中。请参阅上面提供的屏幕截图以供参考。请注意，除非您使用通过 SAML 断言传递属性的选项，否则不能使用 ABAC 列表之外的外部 IdP 属性值。

1. 选择**保存更改**。

现在您已经配置了访问控制属性的映射，接下来需要完成 ABAC 配置过程。为此，请创建您的 ABAC 规则并将其添加到您的权限集 and/or 基于资源的策略中。这是必需的，这样您才能向用户身份授予对 AWS 资源的访问权限。有关更多信息，请参阅 [在 IAM Identity Center 中为 ABAC 创建权限策略](configure-abac-policies.md)。

# 禁用访问控制属性
<a name="disable-abac"></a>

使用以下过程禁用 ABAC 功能并删除所有已配置的属性映射。

**禁用访问控制的属性**

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择**设置**。

1. 在**设置**页面上，选择**访问控制的属性**选项卡，然后选择**管理属性**。

1. 在**管理访问控制属性**页面，选择**禁用**。

1. 在**禁用访问控制属性**对话框中，查看相关信息，准备就绪后输入 **DISABLE**，然后选择**确认**。
**重要**  
此步骤将删除所有属性，并停止在联合登录 AWS 账户 时使用属性进行访问控制，无论外部身份源提供者的 SAML 断言中是否包含任何属性。

# 在 IAM Identity Center 中为 ABAC 创建权限策略
<a name="configure-abac-policies"></a>

您可以创建权限策略，根据配置的属性值确定谁可以访问您的 AWS 资源。当您启用 ABAC 并指定属性时，IAM Identity Center 会将经过身份验证的用户的属性值传递到 IAM，以便在策略评估中使用。

## aws:PrincipalTag 条件键
<a name="abac-principaltag"></a>

您可以使用权限集中的访问控制属性，并使用 `aws:PrincipalTag` 条件密钥创建访问控制规则。例如，在以下策略中，您可以使用各自的成本中心标记组织中的所有资源。您还可以使用单个权限集来授予开发人员访问其成本中心资源的权限。现在，每当开发人员使用单点登录及其成本中心属性对账号进行联合身份验证时，他们只能访问各自成本中心中的资源。随着团队向其项目添加更多开发人员和资源，您只需使用正确的成本中心标记资源即可。然后，当开发人员联合进入 AWS 账户时，您可以在会 AWS 话中传递成本中心信息。因此，当组织向成本中心添加新资源和开发人员时，开发人员可以管理与其成本中心一致的资源，而无需任何权限更新。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}"
                }
            }
        }
    ]
}
```

------

有关更多信息，请参阅 *IAM 用户指南*中的[https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag)和 [EC2：根据匹配的主体和资源标签启动或停止实例](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_ec2-start-stop-match-tags.html)。

如果策略的条件中包含无效属性，则策略条件将失败并且访问将被拒绝。有关更多信息，请参阅 [当用户尝试使用外部身份提供者登录时显示错误信息“出现意外错误”](troubleshooting.md#issue8)。

# 了解 IAM Identity Center 中的服务相关角色
<a name="slrconcept"></a>

[服务相关角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html?icmpid=docs_iam_console#iam-term-service-linked-role)是预定义的 IAM 权限，以允许 IAM Identity Center 委派和强制执行哪些用户对您在 AWS Organizations中的组织内的特定 AWS 账户 帐户拥有单点登录访问权限。该服务通过在其组织 AWS 账户 内的每个组织中配置一个与服务相关的角色来实现此功能。然后，该服务允许其他 AWS 服务（例如 IAM Identity Center）利用这些角色来执行与服务相关的任务。有关更多信息，请参阅 [AWS Organizations 和服务相关角色](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html#orgs_integrate_services-using_slrs)。

当您启用 IAM Identity Center 时，IAM Identity Center 在 AWS Organizations中的组织内的所有帐户中创建服务相关角色。IAM Identity Center 还会在随后添加到您的组织的每个帐户中创建相同的服务相关角色。此角色允许 IAM Identity Center 代表您访问每个帐户的资源。有关更多信息，请参阅 [配置访问权限 AWS 账户](manage-your-accounts.md)。

在每个角色中创建的服务相关角色 AWS 账户 都被命名`AWSServiceRoleForSSO`。有关更多信息，请参阅 [使用 IAM Identity Center 的服务相关角色](using-service-linked-roles.md)。

**注意**  
如果您登录了 AWS Organizations 管理账户，则该账户将使用您当前登录的角色而不是与服务相关的角色。这可以防止权限升级。
当 IAM Identity Center 在 AWS Organizations 管理账户中执行任何 IAM 操作时，所有操作都将使用 IAM 委托人的证书进行。这样，登录 CloudTrail 即可查看谁在管理账户中进行了所有权限更改。