

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

# 配置对应用程序的访问
<a name="manage-your-applications"></a>

使用 AWS IAM Identity Center，您可以控制谁可以单点登录访问您的应用程序。用户使用其目录凭证登录后，就可以无缝访问这些应用程序。

IAM Identity Center 通过 IAM Identity Center 与应用程序的服务提供商之间的可信关系与这些应用程序安全地通信。根据应用程序的类型，这种信任可以通过不同的方式建立。

IAM Identity Center 支持两种[应用程序类型：AWS 托管应用程序](awsapps.md)和[客户托管应用程序](customermanagedapps.md)。 AWS 托管应用程序可以直接从相关的应用程序控制台中进行配置，也可以通过应用程序进行配置 APIs。客户托管的应用程序必须添加到 IAM Identity Center 控制台，并为 IAM Identity Center 和服务提供商配置合适的元数据。

将应用程序配置为与 IAM Identity Center 协同使用后，您可以管理哪些用户或组可以访问这些应用程序。默认不会向应用程序分配任何用户。

您还可以授予员工访问组织 AWS 账户 中特定 AWS 管理控制台 人员的访问权限。有关更多信息，请参阅 [配置访问权限 AWS 账户](manage-your-accounts.md)。

**Topics**
+ [AWS 托管应用程序](awsapps.md)
+ [客户托管的应用程序](customermanagedapps.md)
+ [可信身份传播概述](trustedidentitypropagation-overview.md)
+ [设置你自己的 OAuth 2.0 应用程序](trustedidentitypropagation-using-customermanagedapps-setup.md)
+ [轮换 IAM Identity Center 证书](managecerts.md)
+ [了解 IAM Identity Center 控制台中的应用程序属性](appproperties.md)
+ [在 IAM Identity Center 控制台中为用户分配应用程序的访问权限](assignuserstoapp.md)
+ [删除用户对 SAML 2.0 应用程序的访问权限](removeaccessfromapp.md)
+ [将应用程序中的属性映射到 IAM Identity Center 属性](mapawsssoattributestoapp.md)

# AWS 托管应用程序
<a name="awsapps"></a>

AWS IAM Identity Center 简化并简化了将员工用户连接到 Kiro 和 Amazon Quick 等 AWS 托管应用程序的任务。借助 IAM Identity Center，您可以连接现有身份提供者一次并同步目录中的用户和组，或者直接在 IAM Identity Center 中创建和管理用户。通过提供一个联合身份验证点，IAM Identity Center 将免除为每个应用程序设置联合身份验证或用户和组同步的需要，以此减少您的管理工作。您还可以大致[查看用户和组分配](howtoviewandchangepermissionset.md)。

有关与 IAM 身份中心配合使用的 AWS 应用程序表，请参阅[AWS 可与 IAM 身份中心配合使用的托管应用程序](awsapps-that-work-with-identity-center.md)。

## 控制对 AWS 托管应用程序的访问权限
<a name="awsapps-controlling-access"></a>

通过两种方式控制对 AWS 托管应用程序的访问：
+ **应用程序的初始入口** 

  IAM Identity Center 通过对应用程序的分配对此进行管理。默认情况下， AWS 托管应用程序需要分配。如果您是应用程序管理员，可以选择是否需要针对应用程序进行分配。

  如果需要分配，当用户登录 AWS 访问门户时，只有直接或通过组分配分配至应用程序的用户才能查看应用程序磁贴。

  如果不需要分配，您可以允许所有 IAM Identity Center 用户进入应用程序。在这种情况下，应用程序将管理对资源的访问权限，访问 AWS 访问门户的所有用户都可以看到该应用程序磁贴。
**重要**  
如果您是 IAM 身份中心管理员，则可以使用 IAM Identity Center 控制台删除对 AWS 托管应用程序的分配。在删除分配之前，我们建议您与应用程序管理员进行协调。如果您计划修改决定是否需要进行分配的设置，或者计划自动完成应用程序分配，也应该与应用程序管理员进行协调。
+ **对应用程序资源的访问权限**

   应用程序通过其控制的独立资源分配对此进行管理。

AWS 托管应用程序提供了一个管理用户界面，您可以使用该界面来管理对应用程序资源的访问权限。例如，Quick 管理员可以根据用户的群组成员资格为其分配访问仪表板的权限。大多数 AWS 托管应用程序还提供允许您将用户分配给应用程序的 AWS 管理控制台 体验。这些应用程序的控制台体验也许可以整合这两种功能，将用户分配功能与管理应用程序资源访问权限的能力结合起来。

## 共享身份信息
<a name="app-enablement"></a>

### 在中共享身份信息的注意事项 AWS 账户
<a name="considerations-app-enablement"></a>

IAM Identity Center 支持各种应用程序中最常用的属性。这些属性包括名字和姓氏、电话号码、电子邮件地址、住址和首选语言。请仔细考虑哪些应用程序和哪些账户可以使用这些个人身份信息。

您可以通过以下任一方式控制对此信息的访问：
+ 您可以选择仅在 AWS Organizations 管理账户中启用访问权限，也可以选择在中的所有账户中启用访问权限 AWS Organizations。
+ 或者，您可以使用服务控制策略 (SCPs) 来控制哪些应用程序可以访问哪些账户中的信息 AWS Organizations。

例如，如果您仅在 AWS Organizations 管理账户中启用访问权限，则成员账户中的应用程序将无法访问信息。但是，如果您在所有账户中启用访问权限，则可以使用 SCPs 禁止除您想要允许的应用程序之外的所有应用程序进行访问。

服务控制策略是的一项功能 AWS Organizations。有关附加 SCP 的说明，请参阅 *AWS Organizations 用户指南*中的[附加和分离服务控制策略](/organizations/latest/userguide/orgs_manage_policies_scps_attach.html)。

### 配置 IAM Identity Center 以共享身份信息
<a name="configure-app-enablement"></a>

IAM Identity Center 提供了身份存储，其中包含用户和组属性，但不包括登录凭证。您可以使用以下任一方法来更新您的 IAM Identity Center 身份存储中的用户和组：
+ 使用 IAM Identity Center 身份存储作为您的主身份源。如果您选择此方法，则可以从 IAM Identity Center 控制台或 AWS Command Line Interface (AWS CLI) 中管理您的用户、他们的登录凭证和群组。有关更多信息，请参阅 [管理 Identity Center 目录中的用户](manage-your-identity-source-sso.md)。
+ 将来自以下任一身份源的用户和组预调配（同步）到您的 IAM Identity Center 身份存储：
  + **Active Directory** - 有关更多信息，请参阅 [Microsoft AD 目录](manage-your-identity-source-ad.md)。
  + **外部身份提供商** - 有关更多信息，请参阅 [外部身份提供者](manage-your-identity-source-idp.md)。

  如果您选择这种预调配方法，则可以继续从您的身份源中管理您的用户和组，这些更改将同步到 IAM Identity Center 身份存储。

无论您选择哪种身份来源，IAM Identity Center 都可以与 AWS 托管应用程序共享用户和群组信息。这样，您就可以将身份源连接到 IAM Identity Center 一次，然后与 AWS 云中的多个应用程序共享身份信息。这样就无需为每个应用程序单独设置联合身份验证和身份预调配。此共享功能还可以让用户轻松访问不同 AWS 账户中的许多应用程序。

## 限制 AWS 托管应用程序的使用
<a name="awsapps-constrain"></a>

首次启用 IAM Identity Center 时，它将作为身份源供您 AWS Organizations中所有账户的 AWS 托管应用程序使用。要限制应用程序，必须实施服务控制策略 (SCPs)。 SCPs 是其中的 AWS Organizations 一项功能，可用于集中控制组织中的身份（用户和角色）可以拥有的最大权限。您可以使用 SCPs 来阻止访问 IAM Identity Center 用户和群组信息，并阻止应用程序启动，但指定账户除外。有关更多信息，请参阅《*AWS Organizations 用户指南》中的[服务控制策略 (SCPs)](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_scps.html)。*

以下 SCP 示例将阻止对 IAM Identity Center 用户和组信息进行访问，并阻止除指定账户（111111111111 和 222222222222）以外的账户启动应用程序。

```
{
  "Sid": "DenyIdCExceptInDesignatedAWSAccounts",
  "Effect": "Deny",
  "Action": [
    "identitystore:*",
    "sso:*",
    "sso-directory:*",
    "sso-oauth:*"
  ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "aws:PrincipalAccount": [
        "111111111111",
        "222222222222"
      ]
    }
  }
}
```

# AWS 可与 IAM 身份中心配合使用的托管应用程序
<a name="awsapps-that-work-with-identity-center"></a>

IAM Identity Center 允许您连接现有身份源或一次性创建用户。这样，应用程序管理员就可以管理对以下 AWS 托管应用程序的访问权限，而无需单独的联合体或用户和组同步。

下表中的所有 AWS 托管应用程序都与 [IAM Identity Center 的组织实例](organization-instances-identity-center.md)集成。该表还提供了有关支持的 AWS 托管应用程序的以下内容的信息：
+ 应用程序是否也与 IAM Identity Center 的账户实例集成
+  应用程序是否可以通过 IAM Identity Center 启用可信身份传播？
+  应用程序是否支持配置了客户自主管理型 KMS 密钥的 IAM Identity Center
+ 应用程序是否支持在 IAM 身份中心的其他区域部署

**注意**  
支持在 IAM 身份中心其他区域部署的应用程序还支持使用客户托管 KMS 密钥配置的 IAM 身份中心。此处列出的每个 AWS 托管应用程序都支持在主区域部署。有关更多信息，请参阅 [跨多个 AWS 托管应用程序部署和管理托管应用程序 AWS 区域](multi-region-application-use.md#multi-region-aws-managed-applications)。


**AWS 与 IAM 身份中心集成的托管应用程序**  

| AWS 托管应用程序 | 与 [IAM Identity Center 的账户实例](account-instances-identity-center.md)集成 | 通过 IAM Identity Center 启用[可信身份传播](trustedidentitypropagation-overview.md) | 支持配置了[客户自主管理型 KMS 密钥](encryption-at-rest.md)的 IAM Identity Center | 支持在 [IAM 身份中心的其他区域进行](multi-region-iam-identity-center.md)部署 | 
| --- | --- | --- | --- | --- | 
| Amazon Athena SQL | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon CodeCatalyst | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon DataZone | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon EKS 功能 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| EC2 上的 Amazon EMR | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon EMR on EKS | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon EMR Serverless | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon EMR Studio | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Kendra | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Managed Grafana | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Monitron | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| 亚马逊 OpenSearch 服务 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| 亚马逊 OpenSearch 服务 Serverless Service | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Q Business | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Quick | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon Redshift | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是2 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | 
| Amazon S3 Access Grants | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | 
| 亚马逊 SageMaker Studio | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| 亚马逊 SageMaker 联合工作室 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon WorkMail | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon WorkSpaces | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Amazon WorkSpaces Secure Browser | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS App Studio  | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS Deadline Cloud | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | 
| AWS Glue | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS IoT Events | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS IoT SiteWise | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS Lake Formation | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | 
| AWS re:Post 私人版 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS Supply Chain | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS Systems Manager | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg)是-Fleet Manager 远程桌面 | 
| AWS Transfer Family 网络应用程序 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS 转换 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| AWS Verified Access | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| Kiro | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是1 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| 多方审批 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 
| OpenSearch user interface (Dashboards) | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/success_icon.svg) 是 | ![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/negative_icon.svg)没有 | 

1 对于 Kiro，除非您的用户需要访问网站上的 AWS 全套 Kiro 功能，否则支持 IAM 身份中心的账户实例。有关更多信息，请参阅 [Kiro 用户指南中的设置](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/getting-started-q-dev.html) *Kiro*。

2 对于 Amazon Redshift，支持 IAM 身份中心的账户实例，但查询编辑器 v2 等需要权限集的应用程序除外，账户实例不支持权限集。

**注意**  
有些 AWS 服务（例如 Amazon Connect）未在此表中列出，但您可以将其与 IAM 身份中心配合使用。 AWS Client VPN 这是因为它们仅使用 SAML 与 IAM Identity Center 集成，因此被归类为[客户托管的应用程序](customermanagedapps.md)。

# 快速入门：设置 IAM 身份中心以测试 AWS 托管应用程序
<a name="awsapps-identity-center-quick-start"></a>

 如果您的管理员尚未向您提供访问 IAM Identity Center 的权限，则可以使用本主题中的步骤设置 IAM Identity Center 来测试 AWS 托管应用程序。您将学习如何启用 IAM Identity Center、直接在 IAM Identity Center 中创建用户，以及如何将该用户分配给 AWS 托管应用程序。

 本主题提供了通过以下任意一种方式启用 IAM Identity Center 的快速入门步骤：
+ **使用 AWS Organizations** — 如果您选择此选项，则会创建 IAM Identity Center 的*组织实例*。
+ **仅在您的具体**情况下 AWS 账户— 如果您选择此选项，则会创建 IAM Identity Center 的*账户实例*。

 有关这些实例类型的更多信息，请参阅 [IAM Identity Center 的组织和账户实例](identity-center-instances.md)。

## 先决条件
<a name="awsapps-quick-start-set-up-access-prerequisites"></a>

启用 IAM Identity Center 之前，请确认以下事项：
+ **你有一个 AWS 账户** — 如果你没有 AWS 账户，请参阅《*AWS 账户管理参考指南》 AWS 账户中的 “[入门](https://docs.aws.amazon.com//accounts/latest/reference/getting-started.html)”。*
+ ** AWS 托管应用程序可与 IAM Iden** tity Center 配合使用 — 查看列表[AWS 可与 IAM 身份中心配合使用的托管应用程序](awsapps-that-work-with-identity-center.md)以确认您要测试的 AWS 托管应用程序可与 IAM 身份中心配合使用。
+ **您已查看区域注意事项** — 确保启用 IAM Identity Center 的 AWS 区域 位置支持您要测试的 AWS 托管应用程序。有关更多信息，请参阅 AWS 托管应用程序的文档。
**注意**  
您必须在计划启用 IAM Identity Center 的同一区域部署 AWS 托管应用程序。

## 设置 IAM 身份中心的组织实例以测试 AWS 托管应用程序
<a name="awsapps-quick-start-setting-up-identity-center-to-test-awsmanagedapps"></a>

**注意**  
 本主题介绍如何使用启用 IAM 身份中心 AWS Organizations，这是启用 IAM 身份中心的推荐方法。

**确认您的权限**

要启用 IAM Identity Center AWS Organizations，您必须通过以下任一方式登录 AWS 管理控制台：
+ 在将通过 AWS Organizations启用 IAM Identity Center 的 AWS 账户 中具有管理权限的用户。
+ 根用户（除非不存在其他管理用户，否则不推荐使用）。
**重要**  
root 用户有权访问账户中的所有 AWS 服务和资源。作为安全最佳实践，除非您没有其他证书，否则请勿使用账户的根证书访问 AWS 资源。这些凭证可提供不受限的账户访问且难以撤销。

### 步骤 1：使用启用 IAM 身份中心 AWS Organizations
<a name="awsapps-quick-start-enable-identity-center-with-awsorganizations"></a>

1. 请执行以下一项操作，登录 AWS 管理控制台。
   + ** AWS （root 用户）新**手 — 选择 R **oot 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者身份登录。在下一页上，输入您的密码。
   + **已使用 AWS 独立版 AWS 账户 （IAM 证书）**— 使用具有管理权限的 IAM 凭证登录。

1. 在 AWS 管理控制台主页上，选择 IAM 身份中心服务或导航到 [IAM 身份中心控制台](https://console.aws.amazon.com/singlesignon)。

1. 选择**启用**，然后使用启用 IAM 身份中心 AWS Organizations。执行此操作时，您正在创建 IAM Identity Center 的[组织实例](organization-instances-identity-center.md)。

### 步骤 2：创建 IAM Identity Center 中的管理用户
<a name="awsapps-quick-start-create-an-administrative-user-in-identity-center"></a>

此过程介绍如何直接在内置的 Identity Center 目录中创建用户。此目录未连接到管理员可能用于管理工作用户的任何其他目录。在 IAM Identity Center 中创建用户后，您需要为此用户指定新凭证。当您以该用户身份登录以测试您的 AWS 托管应用程序时，您将使用新凭据登录，而不是使用任何用于访问公司资源的现有凭据登录。
**注意**  
建议您仅出于测试目的使用此方法创建用户。

1. 在 IAM Identity Center 控制台的导航窗格中，选择**用户**，然后选择**添加用户**。

1. 请按照控制台中的指导添加用户。保持选中**向该用户发送包含密码设置说明的电子邮件**，并确保指定您有权访问的电子邮件地址。

1. 在导航窗格中，选择 AWS 账户，选中账户旁边的复选框，然后选择**分配用户或群组**。

1. 选择**用户**选项卡，选中您刚添加的用户旁边的复选框，然后选择**下一步**。

1. 选择**创建权限集**，然后按照控制台中的指导创建预定义的 `AdministratorAccess` 权限集。

1. 完成后，新的权限集会显示在列表中。关闭浏览器窗口中的**权限集**选项卡，返回**分配用户和组**选项卡，然后选择**创建权限集**旁边的刷新图标。

1. 在**分配用户和组**浏览器选项卡中，新的权限集会显示在列表中。选中权限集名称旁边的复选框，选择**下一步**，然后选择**提交**。

1. 注销 Console。

### 步骤 3：以管理员用户身份登录 AWS 访问门户
<a name="awsapps-quick-start-sign-in-to-aws-access-portal-as-administrative-user"></a>

 AWS 访问门户是一个 Web 门户，可让您创建的用户访问 AWS 管理控制台。在登录 AWS 访问门户之前，您必须接受加入 IAM Identity Center 的邀请并激活用户凭证。

1. 检查您的电子邮件，查找主题为**邀请加入 AWS IAM Identity Center** 的邮件。

1. 选择**接受邀请**，然后按照注册页面上的指导设置新密码、登录并为您的用户注册 MFA 设备。

1. 注册 MFA 设备后， AWS 访问门户打开。

1. 在 AWS 访问门户中，选择您的， AWS 账户 然后选择**AdministratorAccess**。随后您将被重定向至 AWS 管理控制台。

### 步骤 4：将 AWS 托管应用程序配置为使用 IAM 身份中心
<a name="awsapps-quick-start-configure-aws-managed-app-to-use-identity-center"></a>

1. 登录 AWS 管理控制台后，打开计划使用的 AWS 托管应用程序的控制台。

1. 按照控制台中的指导将 AWS 托管应用程序配置为使用 IAM Identity Center。在此过程中，您可以将创建的用户分配给该应用程序。

## 设置 IAM 身份中心的账户实例以测试 AWS 托管应用程序
<a name="awsapps-quick-start-setting-up-account-instance-identity-center-to-test-awsmanagedapps"></a>

**注意**  
IAM Identity Center 的账户实例将部署范围限定在单个 AWS 账户内。您必须在与要测试的 AWS 应用程序 AWS 区域 相同的情况下启用此实例。

**确认您的应用程序**

 所有与 IAM 身份中心配合使用的 AWS 托管应用程序均可与 IAM 身份中心的组织实例一起使用。但是，只有其中部分应用程序可以与 IAM Identity Center 的账户实例一起使用。查看 [AWS 可与 IAM 身份中心配合使用的托管应用程序](awsapps-that-work-with-identity-center.md) 列表。

### 步骤 1. 启用 IAM Identity Center 的账户实例
<a name="awsapps-quick-start-enable-account-instance-identity-center"></a>

1. 请执行以下一项操作，登录 AWS 管理控制台。
   + ** AWS （root 用户）新**手 — 选择 R **oot 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者身份登录。在下一页上，输入您的密码。
   + **已使用 AWS 独立版 AWS 账户 （IAM 证书）**— 使用具有管理权限的 IAM 凭证登录。

1. 在 AWS 管理控制台主页上，选择 IAM 身份中心服务或导航到 [IAM 身份中心控制台](https://console.aws.amazon.com/singlesignon)。

1. 请选择**启用**。

1. 在**使用 AWS Organizations启用 IAM Identity Center** 页面上，选择**启用 IAM Identity Center 的账户实例**。

1. 在**启用 IAM Identity Center 账户实例**页面上，查看信息并可选地添加要与此账户实例关联的标签。然后选择 **Enable**。

### 步骤 2：在 IAM Identity Center 中创建用户
<a name="awsapps-quick-start-create-user-in-identity-center"></a>

此过程介绍如何直接在内置的 Identity Center 目录中创建用户。此目录未连接到管理员可能用于管理工作用户的任何其他目录。在 IAM Identity Center 中创建用户后，您需要为此用户指定新凭证。当您以该用户身份登录以测试您的 AWS 托管应用程序时，您将使用新的凭据登录。新凭证不允许您访问其他企业资源
**注意**  
建议您仅出于测试目的使用此方法创建用户。

1. 在 IAM Identity Center 控制台的导航窗格中，选择**用户**，然后选择**添加用户**。

1. 请按照控制台中的指导添加用户。保持选中**向该用户发送包含密码设置说明的电子邮件**，并确保指定您有权访问的电子邮件地址。

1. 注销 Console。

### 步骤 3：以 IAM 身份中心用户身份登录 AWS 访问门户
<a name="awsapps-quick-start-sign-in-to-aws-access-portal-as-user"></a>

 AWS 访问门户是一个 Web 门户，可让您创建的用户访问 AWS 管理控制台。在登录 AWS 访问门户之前，您必须接受加入 IAM Identity Center 的邀请并激活用户凭证。

1. 检查您的电子邮件，查找主题为**邀请加入 AWS IAM Identity Center** 的邮件。

1. 选择**接受邀请**，然后按照注册页面上的指导设置新密码、登录并为您的用户注册 MFA 设备。

1. 注册 MFA 设备后， AWS 访问门户打开。当应用程序对您可用时，您可以在**应用程序**选项卡下找到它们。
**注意**  
AWS 支持账户实例的应用程序允许用户无需额外权限即可登录应用程序。因此，**账户**选项卡将保持为空。

### 步骤 4：将 AWS 托管应用程序配置为使用 IAM 身份中心
<a name="awsapps-quick-start-configure-aws-managed-app-to-use-account-instance-identity-center"></a>

1. 登录 AWS 管理控制台后，打开计划使用的 AWS 托管应用程序的控制台。

1. 按照控制台中的指导将 AWS 托管应用程序配置为使用 IAM Identity Center。在此过程中，您可以将创建的用户分配给该应用程序。

# 查看和更改有关 AWS 托管应用程序的详细信息
<a name="aws-managed-applications-view-details"></a>

使用控制台将 AWS 托管应用程序连接到 IAM Identity Center 后，该应用程序将在 IAM Identity Center 中注册。 APIs 应用程序注册到 IAM Identity Center 后，您可以在 IAM Identity Center 控制台查看和更改有关该应用程序的详细信息。

关于应用程序的信息包括是否需要分配用户和组，如果适用，还包括分配的用户和组，以及用于身份传播的可信应用程序。有关可信身份传播的信息，请参阅 [可信身份传播概述](trustedidentitypropagation-overview.md)。

**在 IAM 身份中心控制台中查看和更改有关 AWS 托管应用程序的信息**

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

1. 选择**应用程序**。

1. 选择 **AWS 托管**选项卡。

1. 选择要打开和查看的托管应用程序的链接。

1. 如果要更改有关 AWS 托管应用程序的信息，请选择**操作**，然后选择**编辑详细信息**。

1. 应用程序的显示名称、描述以及用户和组分配方法都可以更改。

   1. 要更改显示名称，请在**显示名称**字段中输入所需名称，然后选择**保存更改**。

   1. 要更改描述，请在**描述**字段中输入所需描述，然后选择**保存更改**。

   1. 要更改用户和组的分配方法，请进行所需更改，然后选择**保存更改**。有关更多信息，请参阅 [IAM Identity Center 中的用户、组和预置](users-groups-provisioning.md)。

# 禁用 AWS 托管应用程序
<a name="awsapps-remove"></a>

要防止用户对 AWS 托管应用程序进行身份验证，您可以在 IAM Identity Center 控制台中禁用该应用程序。

**禁用 AWS 托管应用程序**

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

1. 选择**应用程序**。

1. 在**应用程序**页面上的 **AWS 托管的应用程序**下，选择要禁用的应用程序。

1. 选择应用程序后，选择**操作**，然后选择**禁用**。

1. 在**禁用应用程序**对话框中，选择**禁用**。

1. 在 **AWS 托管的应用程序**列表中，应用程序的状态会显示为**非活动**。

**注意**  
如果 AWS 托管应用程序处于禁用状态，则可以通过选择 “**操作**” 和 “**启**用” 来恢复用户对该应用程序进行身份验证的能力。

# 启用身份增强的控制台会话
<a name="identity-enhanced-sessions"></a>

控制台的身份增强会话通过提供一些额外的用户上下文来个性化用户的体验，从而增强用户的 AWS 控制台会话。目前，Kiro Pro 用户[在 AWS 应用程序和网站上支持 Kiro](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-on-aws.html) 功能。

您可以启用身份增强型控制台会话，而无需对现有访问模式进行任何更改或对控制台进行联 AWS 合。如果您的用户使用 IAM 登录 AWS 控制台（例如，如果他们以 IAM 用户身份登录或通过 IAM 联合访问登录），则他们可以继续使用这些方法。如果您的用户登录 AWS 访问门户，他们可以继续使用他们的 IAM Identity Center 用户证书。

**Topics**
+ [先决条件和注意事项](#prereqs-and-considerations)
+ [如何启用 identity-enhanced-console会话](#enable-identity-enhanced-sessions-q)
+ [身份增强控制台会话的工作原理](#how-identity-enhanced-sessions-work)

## 先决条件和注意事项
<a name="prereqs-and-considerations"></a>

在启用身份增强控制台会话之前，请先查看以下先决条件和注意事项：
+ 如果您的用户通过订阅 Kiro Pro 在 AWS 应用程序和网站上访问 Kiro，则必须启用身份增强型主机会话。
**注意**  
Kiro 用户无需身份增强会话即可访问 Kiro，但他们将无法访问 Kiro Pro 订阅。
+ 身份增强控制台会话需要用到 IAM Identity Center 的[组织实例](organization-instances-identity-center.md)。
+ 如果您选择 AWS 区域启用 IAM 身份中心，则不支持与 Kiro 集成。
+ 要启用身份增强控制台会话，必须具有以下权限：
  + `sso:CreateApplication`
  + `sso:GetSharedSsoConfiguration`
  + `sso:ListApplications`
  + `sso:PutApplicationAssignmentConfiguration`
  + `sso:PutApplicationAuthenticationMethod`
  + `sso:PutApplicationGrant`
  + `sso:PutApplicationAccessScope`
  + `signin:CreateTrustedIdentityPropagationApplicationForConsole`
  + `signin:ListTrustedIdentityPropagationApplicationsForConsole`
+ 要让用户使用身份增强控制台会话，必须在基于身份的策略中向他们授予 `sts:setContext` 权限。有关信息，请参阅[授予使用者使用身份增强控制台会话的权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_sts-setcontext.html)。

## 如何启用 identity-enhanced-console会话
<a name="enable-identity-enhanced-sessions-q"></a>

您可以在 Kiro 控制台或 IAM Identity Center 控制台中启用身份增强控制台会话。

**在 Kiro 控制台中启用身份增强型控制台会话**

在启用身份增强控制台会话之前，您必须拥有连接了身份源的 IAM Identity Center 组织实例。如果已经配置 IAM Identity Center，请跳到步骤 3。

1. 打开 IAM Identity Center 控制台。选择**启用**，然后创建 IAM Identity Center 的组织实例。有关信息，请参阅[启用 IAM Identity Center](enable-identity-center.md)。

1. 将身份源连接到 IAM Identity Center 并将用户预置到 IAM Identity Center 中。您可以将现有身份源连接到 IAM Identity Center；如果尚未使用其他身份源，也可以使用 Identity Center 目录。有关更多信息，请参阅 [IAM Identity Center 身份源教程](tutorials.md)。

1. 完成设置 IAM 身份中心后，打开 Kiro 控制台并按照《K *iro 用户*指南》中[订阅](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-admin-setup-subscribe-management-account.html)中的步骤进行操作。务必启用身份增强控制台会话。
**注意**  
如果您没有足够的权限启用身份增强控制台会话，则可能需要让 IAM Identity Center 管理员在 IAM Identity Center 控制台中代为执行此任务。有关该过程的更多信息，请参阅接下来的步骤。

**在 IAM Identity Center 控制台中启用身份增强控制台会话**

如果您是 IAM Identity Center 管理员，其他管理员可能会让您在 IAM Identity Center 控制台中启用身份增强控制台会话。

1. 打开 IAM Identity Center 控制台。

1. 在导航窗格中，选择**设置**。

1. 在**启用身份增强会话**下，选择**启用**。

1. 在第二条消息中选择**启用**。

1. 完成启用身份增强控制台会话后，**设置**页面的顶部会显示一条确认消息。

1. 在**详细信息**部分中，**身份增强会话**的状态显示为**已启用**。

## 身份增强控制台会话的工作原理
<a name="how-identity-enhanced-sessions-work"></a>

IAM Identity Center 可增强用户当前的控制台会话，使其包含活跃的 IAM Identity Center 用户的 ID 和 IAM Identity Center 会话 ID。

身份增强控制台会话包含以下三个值：
+ **身份存储用户 ID**（[身份存储：UserId](condition-context-keys-sts-idc.md#condition-keys-identity-store-user-id)）：此值用于唯一标识连接到 IAM Identity Center 的身份源中的用户。
+ **身份存储目录 ARN**（[身份存储：IdentityStoreArn](condition-context-keys-sts-idc.md#condition-keys-identity-store-arn)）：此值是连接到 IAM Identity Center 的身份存储的 ARN，可在其中查找 `identitystore:UserId` 的属性。
+ **IAM Identity Center 会话 ID**：此值表示用户的 IAM Identity Center 会话是否仍然有效。

这些值虽然相同，但以不同方式获得，且在过程的不同时刻添加，具体取决于用户的登录方式：
+ **IAM 身份中心（AWS 访问门户）**：在本例中，用户的身份存储用户 ID 和 ARN 值已在活动的 IAM 身份中心会话中提供。IAM Identity Center 通过仅添加会话 ID 增强当前会话。
+ **其他登录方法**：如果用户以 IAM 用户、IAM 角色或 IAM 的联合用户身份登录 AWS ，则不提供这些值。IAM Identity Center 通过添加身份存储用户 ID、身份存储目录 ARN 和会话 ID 增强当前会话。

# 客户托管的应用程序
<a name="customermanagedapps"></a>

IAM Identity Center 充当员工用户和组的中央身份服务。如果您已经使用了身份提供商 (IdP)，IAM Identity Center 可以与您的 IdP 集成，以便您将用户和组预置到 IAM Identity Center，并使用您的 IdP 进行身份验证。通过单个连接，IAM Identity Center 在多个连接前面代表您的 IdP， AWS 服务 并使您的 OAuth 2.0 应用程序能够代表您的用户请求访问这些服务中的数据。您还可以使用 IAM Identity Center 为用户分配对 [SAML 2.0](https://wiki.oasis-open.org/security) 应用程序的访问权限。这包括诸如 Amazon Connect 和之类的 AWS 服务 AWS Client VPN，这些服务仅使用 SAML 与 IAM 身份中心集成，因此被归类为客户托管的应用程序。
+ 如果您的应用程序支持 **JSON Web 令牌 (JWTs)**，则可以使用 IAM Identity Center 的可信身份传播功能使您的应用程序能够 AWS 服务 代表您的用户请求访问数据。可信身份传播建立在 OAuth 2.0 授权框架之上，包括一个选项，允许应用程序将来自外部 OAuth 2.0 授权服务器的身份令牌交换为 IAM Identity Center 颁发并由其识别的令牌 AWS 服务。有关更多信息，请参阅 [可信身份传播应用场景](trustedidentitypropagation-integrations.md)。
+ 如果应用程序支持 **SAML 2.0**，则可以将其连接到 [IAM Identity Center 的组织实例](identity-center-instances.md)。您可以使用 IAM Identity Center 分配对 SAML 2.0 应用程序的访问权限。

**注意**  
将客户托管的应用程序与使用[客户托管 KMS 密钥](encryption-at-rest.md)的 IAM Identity Center 实例集成时，请验证应用程序是否调用 IAM Identity Center 服务 APIs以确认该应用程序是否需要 KMS 密钥权限。按照 IAM Identity Center 用户指南的[基准 KMS 密钥策略中关于向自定义工作流程授予 KMS 密钥](baseline-KMS-key-policy.md#baseline-kms-key-policy-statements-for-use-of-custom-workflows-with-iam-identity-center)权限的指导进行操作。

**Topics**
+ [对 SAML 2.0 和 OAuth 2.0 应用程序的单点登录访问权限](customermanagedapps-saml2-oauth2.md)
+ [设置客户托管的 SAML 2.0 应用程序](customermanagedapps-saml2-setup.md)

# 对 SAML 2.0 和 OAuth 2.0 应用程序的单点登录访问权限
<a name="customermanagedapps-saml2-oauth2"></a>

IAM Identity Center 使您能够为用户提供对 SAML 2.0 或 OAuth 2.0 应用程序的单点登录访问权限。以下主题提供了 SAML 2.0 和 OAuth 2.0 的高级概述。

**Topics**
+ [SAML 2.0](#samlfederationconcept)
+ [OAuth 2.0](#oidc-concept)

## SAML 2.0
<a name="samlfederationconcept"></a>

SAML 2.0 是一种用于安全交换 SAML 断言的行业标准，它在 SAML 机构（称为身份提供商或 IdP）与 SAML 2.0 使用者（称为服务提供商或 SP）之间传递用户的相关信息。IAM Identity Center 使用这些信息为有权在访问门户中使用应用程序的用户提供联合单点登录 AWS 访问权限。

**注意**  
IAM Identity Center 不支持验证来自 SAML 应用程序的传入 SAML 身份验证请求的签名。

## OAuth 2.0
<a name="oidc-concept"></a>

OAuth 2.0 是一种允许应用程序在不共享密码的情况下安全地访问和共享用户数据的协议。这项功能提供了一种安全、标准化的方式，让用户允许应用程序访问其资源。不同的 OAuth 2.0 拨款流程为访问提供了便利。

IAM Identity Center 允许在公共客户端上运行的应用程序检索临时证书，以便以编程方式代表其用户访问 AWS 账户 和服务。公共客户端通常是用于在本地运行应用程序的台式机、笔记本电脑或其他移动设备。在公共客户端上运行的 AWS 应用程序的示例包括 AWS Command Line Interface (AWS CLI) AWS Toolkit、和 AWS 软件开发套件 (SDKs)。为了使这些应用程序能够获得证书，IAM Identity Center 支持以下 OAuth 2.0 流程的部分内容：
+ 采用代码交换验证密钥（Proof Key for Code Exchange，PKCE）的授权码授予（[RFC 6749](https://www.rfc-editor.org/rfc/rfc6749#section-4.1) 和 [RFC 7636](https://www.rfc-editor.org/rfc/rfc7636)）
+ 设备授权授予（[RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628)）

**注意**  
这些授权类型只能用于支持此功能 AWS 服务 的授予类型。这些服务可能并非在所有 AWS 区域中都支持此授权类型。有关地区差异， AWS 服务 请参阅相关文档。

OpenID Connect (OIDC) 是一种基于 2.0 框架的身份验证协议。 OAuthOIDC 指定了如何使用 OAuth 2.0 进行身份验证。通过 [IAM Identity Center OIDC 服务 APIs](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_Operations.html)，应用程序注册一个 OAuth 2.0 客户端，并使用其中一个流程获取访问令牌，该令牌为受保护的 IAM Identity Center 提供权限。 APIs应用程序会指定[访问范围](https://docs.aws.amazon.com/singlesignon/latest/userguide/customermanagedapps-saml2-oauth2.html#scopes-oidc)，声明其预期的 API 用户。在您以 IAM Identity Center 管理员身份配置身份源之后，应用程序最终用户必须完成登录过程（如果他们尚未这么做）。然后，最终用户必须给予同意，才能允许应用程序进行 API 调用。这些 API 调用是使用用户的权限进行的。作为响应，IAM Identity Center 会向应用程序返回一个访问令牌，其中包含用户同意的访问范围。

### 使用 OAuth 2.0 拨款流程
<a name="using-oauth-flows"></a>

OAuth 2.0 拨款流只能通过支持资金流的 AWS 托管应用程序获得。要使用 OAuth 2.0 流程，您的 IAM Identity Center 实例和您使用的任何 AWS 受支持的托管应用程序都必须部署在单个服务器中 AWS 区域。请参阅每个应用程序的文档， AWS 服务 以确定 AWS 托管应用程序的区域可用性以及您要使用的 IAM Identity Center 实例。

要使用使用 OAuth 2.0 流程的应用程序，最终用户必须输入应用程序连接的 URL，并向您的 IAM Identity Center 实例注册。根据应用程序的不同，作为管理员的您必须向用户提供 **AWS 访问门户 URL** 或 IAM Identity Center 实例的**发布者 URL**。您可以在 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon/)的 **设置**页面上找到这两个设置。有关配置客户端应用程序的其他信息，请参阅相应的应用程序文档。

最终用户登录应用程序和给予同意的体验取决于应用程序使用的是 [具有 PKCE 的授权代码授予](#auth-code-grant-pkce)，还是 [设备授权授予](#device-auth-grant)。

#### 具有 PKCE 的授权代码授予
<a name="auth-code-grant-pkce"></a>

此流程由在装有浏览器的设备上运行的应用程序使用。

1. 打开浏览器窗口。

1. 如果用户尚未进行身份验证，浏览器会重定向用户来完成用户身份验证。

1. 完成身份验证后，用户会看到一个同意屏幕，其中显示以下信息：
   + 应用程序的名称
   + 应用程序请求同意使用的访问范围

1. 用户可以取消同意过程，也可以给予同意，然后应用程序会根据用户的权限继续进行访问。

#### 设备授权授予
<a name="device-auth-grant"></a>

此流程可能由在装有或未装浏览器的设备上运行的应用程序使用。当应用程序启动该流时，应用程序会提供一个 URL 和一个用户代码，用户必须稍后在流中对其进行验证。用户代码是必要的，因为启动流程的应用程序可能在不是用户给予同意的设备上运行。该代码可确保用户同意他们在另一台设备上启动的流程。

**注意**  
如果您的客户端使用 `device.sso.region.amazonaws.com`，则必须更新授权流程以使用代码交换的证明密钥（PKCE）。有关更多信息，请参阅*《AWS Command Line Interface 用户指南》*中的[使用 AWS CLI配置 IAM Identity Center 身份验证](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)。

1. 当流程从装有浏览器的设备启动时，会打开一个浏览器窗口。当流程从未装浏览器的设备启动时，用户必须在另一台设备上打开浏览器，然后前往应用程序提供的 URL。

1. 无论是哪种情况，如果用户尚未进行身份验证，浏览器会重定向用户来完成用户身份验证。

1. 完成身份验证后，用户会看到一个同意屏幕，其中显示以下信息：
   + 应用程序的名称
   + 应用程序请求同意使用的访问范围
   + 应用程序提供给用户的用户代码

1. 用户可以取消同意过程，也可以给予同意，然后应用程序会根据用户的权限继续进行访问。

### 访问范围
<a name="scopes-oidc"></a>

*作用域*定义了可通过 OAuth 2.0 流程访问的服务的访问权限。作用域是服务（也称为资源服务器）对与操作和服务资源相关的权限进行分组的一种方式，它们指定了 OAuth 2.0 客户端可以请求的粗粒度操作。 OAuth 2.0 客户端[向 IAM Identity Center OIDC 服务](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/Welcome.html)注册时，该客户端会指定范围以声明其预期操作，用户必须同意才能执行这些操作。

OAuth 2.0 客户端使用 [ OAuth 2.0 第 3.3 节（RFC 6749）](https://www.rfc-editor.org/rfc/rfc6749.html#section-3.3)中定义的`scope`值来指定访问令牌请求的权限。在请求访问令牌时，客户端最多可以指定 25 个范围。当用户在采用 PKCE 的授权码授予流程或设备授权授予流程中给予同意时，IAM Identity Center 会将范围编码到其返回的访问令牌中。

AWS 将范围添加到 IAM 身份中心以获得支持 AWS 服务。下表列出了注册公共客户端时，IAM Identity Center OIDC 服务支持的范围。

#### 注册公共客户端时，IAM Identity Center OIDC 服务支持的访问范围
<a name="supported-access-scopes"></a>


****  

| Scope | 说明 | 支持的服务 | 
| --- | --- | --- | 
| sso:account:access | 访问 IAM Identity Center 管理型帐户和权限集。 | IAM Identity Center | 
| codewhisperer:analysis | 启用对 Kiro 代码分析的访问权限。 | AWS 构建者 ID 和 IAM 身份中心 | 
| codewhisperer:completions | 启用对 Kiro 内联代码建议的访问权限。 | AWS 构建者 ID 和 IAM 身份中心 | 
| codewhisperer:conversations | 启用对 Kiro 聊天的访问权限。 | AWS 构建者 ID 和 IAM 身份中心 | 
| codewhisperer:taskassist | 允许访问 Kiro Agent 以进行软件开发。 | AWS 构建者 ID 和 IAM 身份中心 | 
| codewhisperer:transformations | 启用对 Kiro 代理的访问权限以进行代码转换。 | AWS 构建者 ID 和 IAM 身份中心 | 
| codecatalyst:read\$1write | 读取和写入您的 Amazon CodeCatalyst 资源，允许访问您的所有现有资源。 | AWS 构建者 ID 和 IAM 身份中心 | 
| verified\$1access:application:connect | 启用 AWS Verified Access | AWS Verified Access | 
| redshift:connect | 连接到 Amazon Redshift | Amazon Redshift | 
| datazone:domain:access | 访问您的 DataZone 域名执行角色 | Amazon DataZone | 
| nosqlworkbench:datamodeladviser | 创建与读取数据模型 | NoSQL Workbench | 
| transform:read\$1write | 启用对 AWS 转换代理的访问权限以进行代码转换 | AWS 转换 | 

# 设置客户托管的 SAML 2.0 应用程序
<a name="customermanagedapps-saml2-setup"></a>

如果您使用的客户托管应用程序支持 [SAML 2.0](https://wiki.oasis-open.org/security)，则可以通过 SAML 2.0 将您的 IdP 与 IAM Identity Center 联合起来，并使用 IAM Identity Center 管理用户对这些应用程序的访问。您可以在 IAM Identity Center 控制台中从常用应用程序目录中选择一个 SAML 2.0 应用程序，也可以设置自己的 SAML 2.0 应用程序。

**注意**  
如果您有支持 OAuth 2.0 的客户托管应用程序，并且您的用户需要从这些应用程序进行访问 AWS 服务，则可以使用可信身份传播。通过可信身份传播，用户可以登录应用程序，而该应用程序可以在请求中传递用户的身份，以访问 AWS 服务中的数据。

**Topics**
+ [设置来自 IAM Identity Center 应用程序目录的应用程序](saasapps.md)
+ [设置您自己的 SAML 2.0 应用程序](customermanagedapps-set-up-your-own-app-saml2.md)

# 设置来自 IAM Identity Center 应用程序目录的应用程序
<a name="saasapps"></a>

您可以使用 IAM Identity Center 控制台中的应用程序目录添加许多可与 IAM Identity Center 配合使用的常用 SAML 2.0 应用程序。例如，其中包括 Salesforce、Box 和 Microsoft 365。

大多数应用程序都会提供详细信息，介绍如何设置 IAM Identity Center 与应用程序服务提供商之间的信任。在目录中选择应用程序后，您可在应用程序的配置页面中找到此信息。配置应用程序后，您可以根据需要，向 IAM Identity Center 中的用户或组分配访问权限。

请使用此过程在 IAM Identity Center 和应用程序的服务提供商之间设置 SAML 2.0 信任关系。

开始执行此过程之前，获得服务提供者的元数据交换文件将很有帮助，这样可以让您更有效地设置信任。如果您没有此文件，仍可以使用此过程手动配置信任。

**要添加并配置应用程序目录中的应用程序**

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

1. 选择**应用程序**。

1. 选择**客户托管**选项卡。

1. 选择**添加应用程序**。

1. 在**选择应用程序类型**页面，选择**设置首选项**下的**我想从目录中选择应用程序**。

1. 在**应用程序目录**下，开始在搜索框中键入要添加的应用程序名称。

1. 当应用程序出现在搜索结果中时，从列表中选择该应用程序的名称，然后选择**下一步**。

1. 在**配置应用程序**页面，**显示名称**和**描述**字段会预先填充应用程序的相关详细信息。您可以编辑这些信息。

1. 在 **IAM Identity Center 元数据**下，执行以下操作：

   1. 在 **IAM Identity Center SAML 元数据文件**下，选择**下载**以下载身份提供商元数据。

   1. 在 **IAM Identity Center 证书**下，选择**下载证书**以下载身份提供商证书。
**注意**  
稍后通过服务提供商的网站设置应用程序时，您会用到这些文件。按照该提供商的说明进行操作。

1. （可选）在**应用程序属性**下，您可以指定**应用程序启动 URL**、**中继状态**和**会话持续时间**。有关更多信息，请参阅 [了解 IAM Identity Center 控制台中的应用程序属性](appproperties.md)。

1. 在**应用程序元数据**下，执行以下操作之一：

   1. 如果您有元数据文件，请选择**上传应用程序 SAML 元数据文件**。然后，选择**选择文件**以查找并选择元数据文件。

   1. 如果您没有元数据文件，请选择**手动键入元数据值**，然后提供**应用程序 ACS URL** 和**应用程序 SAML 受众**值。

1. 选择**提交**。您将进入刚刚添加的应用程序的详细信息页面。

# 设置您自己的 SAML 2.0 应用程序
<a name="customermanagedapps-set-up-your-own-app-saml2"></a>

您可以自行设置允许使用 SAML 2.0 进行身份联合验证的应用程序，然后将其添加到 IAM Identity Center。要设置自己的 SAML 2.0 应用程序，其大部分步骤与在 IAM Identity Center 控制台设置应用程序目录中的 SAML 2.0 应用程序相同。但是，您还必须为自己的 SAML 2.0 应用程序提供额外的 SAML 属性映射。这些映射将使 IAM Identity Center 为您的应用程序正确填充 SAML 2.0 断言。您可以在首次设置应用程序时提供此附加 SAML 属性映射。您还可以在 IAM Identity Center 控制台的应用程序详细信息页面上提供 SAML 2.0 属性映射。

请使用以下过程在 IAM Identity Center 和您的 SAML 2.0 应用程序服务提供商之间设置 SAML 2.0 信任关系。开始执行此过程之前，请确保您拥有服务提供商的证书和元数据交换文件，以便您完成信任的设置。

**要设置您自己的 SAML 2.0 应用程序**

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

1. 选择**应用程序**。

1. 选择**客户托管**选项卡。

1. 选择**添加应用程序**。

1. 在**选择应用程序类型**页面，选择**设置首选项**下的**我有想设置的应用程序**。

1. 在**应用程序类型**下，选择 **SAML 2.0**。

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

1. 在**配置应用程序**页面上的**配置应用程序**下，输入应用程序的**显示名称**，例如 **MyApp**。然后，输入**描述**。

1. 在 **IAM Identity Center 元数据**下，执行以下操作：

   1. 在 **IAM Identity Center SAML 元数据文件**下，选择**下载**以下载身份提供商元数据。

   1. 在 **IAM Identity Center 证书**下，选择**下载**，以下载身份提供商证书。
**注意**  
稍后在您通过服务提供商的网站设置自定义应用程序时，您会用到这些文件。

1. （可选）在**应用程序属性**下，您也可以指定**应用程序启动 URL**、**中继状态**和**会话持续时间**。有关更多信息，请参阅 [了解 IAM Identity Center 控制台中的应用程序属性](appproperties.md)。

1. 在**应用程序元数据**下，选择**手动键入您的元数据值**。然后，提供**应用程序 ACS URL** 和**应用程序 SAML 受众**值。

1. 选择**提交**。您将进入刚刚添加的应用程序的详细信息页面。

# 可信身份传播概述
<a name="trustedidentitypropagation-overview"></a>

可信身份传播是 IAM Identity Center 的一项功能，让 AWS 服务 的管理员可以根据用户属性（例如组关系）授予权限。通过可信身份传播，可以向 IAM 角色添加身份上下文，以识别请求访问 AWS 资源的用户。此上下文会传播到其他 AWS 服务上下文。

身份上下文包含在他们收到访问请求时 AWS 服务 用于做出授权决策的信息。这些信息包括识别请求者（例如，IAM 身份中心用户）、请求访问权限的元数据（例如 Amazon Redshift）和访问范围（例如，只读权限）的元数据。 AWS 服务 接收方 AWS 服务 使用此上下文以及分配给用户的任何权限来授权访问其资源。

## 可信身份传播的优势
<a name="benefits-trusted-identity-propagation"></a>

可信身份传播允许管理员使用员工的 AWS 服务 企业身份授予对资源（例如数据）的权限。此外，他们还可以通过查看服务日志或来审核谁访问了哪些数据 AWS CloudTrail。如果您是 IAM Identity Center 管理员，其他 AWS 服务 管理员可能会要求您启用可信身份传播。

## 启用可信身份传播
<a name="enabling-tip"></a>

启用可信身份传播的流程包括以下两个步骤：

1. **启用 IAM Identity Center 并将您现有的身份来源连接到 IAM Identity Center**-您将继续使用现有身份来源管理员工身份；将其连接到 IAM Identity Center 可创建对您的员工的引用，供您的用例 AWS 服务 中的所有人共享。数据所有者也可在未来的使用案例中使用该引用。

1. 将@@ **您的用例中的 IAM Identity Center 连接到 IAM Identity Center**-可信身份传播用例中的管理员遵循相应服务文档中的指导将服务连接到 IAM Identity Center。 AWS 服务 AWS 服务 

**注意**  
如果您的使用案例涉及*第三方*或*客户开发的应用程序*，您可以通过在验证应用程序用户身份的身份提供者和 IAM Identity Center 之间配置信任关系来启用可信身份传播。这样，您的应用程序就能利用前文所述的可信身份传播流程。  
有关更多信息，请参阅 [通过可信令牌发布者使用应用程序](using-apps-with-trusted-token-issuer.md)。

## 可信身份传播如何工作
<a name="how-tip-works"></a>

下图展示了可信身份传播的高层级工作流：

![\[简化的可信身份传播工作流。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/simplied-tip-1.png)


1. 用户使用面向客户端的应用程序（例如 Quick）进行身份验证。

1. 面向客户的应用程序请求访问权限以使用 AWS 服务 来查询数据，并包含有关用户的信息。
**注意**  
一些可信身份传播用例涉及与 AWS 服务 使用服务驱动程序进行交互的工具。您可以在[使用案例指南](trustedidentitypropagation-integrations.md)中查看这是否适用于您的使用案例。

1. 使用 IAM Identity Center AWS 服务 验证用户身份，并将用户属性（例如群组关联）与访问所需的属性进行比较。只要用户或其组具有必要的权限，就会 AWS 服务 授予访问权限。

1. AWS 服务 可能会将用户标识符记录在服务日志中 AWS CloudTrail 和服务日志中。有关详细信息，请参阅相应服务文档。

下图概述了前文所述的可信身份传播工作流步骤：

![\[简化的可信身份传播工作流。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/simplied-tip-2.png)


**Topics**
+ [可信身份传播的优势](#benefits-trusted-identity-propagation)
+ [启用可信身份传播](#enabling-tip)
+ [可信身份传播如何工作](#how-tip-works)
+ [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)
+ [可信身份传播应用场景](trustedidentitypropagation-integrations.md)
+ [授权服务](authorization-services.md)

# 先决条件和注意事项
<a name="trustedidentitypropagation-overall-prerequisites"></a>

在设置可信身份传播之前，请先查看以下先决条件和注意事项。

**Topics**
+ [先决条件](#trustedidentitypropagation-prerequisites)
+ [注意事项](#trustedidentitypropagation-considerations)
+ [客户自主管理型应用程序的注意事项](#trustedidentitypropagation-customer-apps)

## 先决条件
<a name="trustedidentitypropagation-prerequisites"></a>

要使用可信身份传播，请确保您的环境满足以下先决条件：
+ 启用和预置 IAM Identity Center
  + 要使用可信身份传播，您必须在启用用户将要访问的 AWS 应用程序和服务的相同 AWS 区域 位置启用 IAM Identity Center。有关信息，请参阅[启用 IAM Identity Center](enable-identity-center.md)。
    + 推荐使用 IAM Identity Center 组织实例 - 我们建议您使用在 AWS Organizations管理账户中启用的 IAM Identity Center [组织实例](organization-instances-identity-center.md)。您可以将 IAM Identity Center 组织实例的[管理权限委托](organization-instances-identity-center.md)给成员账户。如果您选择 IAM Identity Center 的[账户实例](account-instances-identity-center.md)，则所有希望用户通过可信身份传播访问的 AWS 服务 必须位于您启用 IAM Identity Center 的同一 AWS 账户 中。有关更多信息，请参阅 [IAM Identity Center 的账户实例](account-instances-identity-center.md)。
  + 将您现有的身份提供者连接到 IAM Identity Center，并将用户和组配置到 IAM Identity Center 中。有关更多信息，请参阅 [IAM Identity Center 身份源教程](tutorials.md)。
+ 将您的可信身份传播用例中的 AWS 托管应用程序和服务连接到 IAM Identity Center。要使用可信身份传播， AWS 托管应用程序必须连接到 IAM 身份中心。

## 注意事项
<a name="trustedidentitypropagation-considerations"></a>

配置和使用可信身份传播时，请记住以下注意事项：
+ **IAM Identity Center 的组织和账户实例**
  + IAM Identity Center 的[组织实例](organization-instances-identity-center.md)能为您提供最大的控制权和灵活性，支持将使用案例扩展到多个 AWS 账户、用户和 AWS 服务。如果您无法使用组织实例，您的使用案例可能支持通过 IAM Identity Center 的账户实例实现。有关您使用案例中的哪些 AWS 服务 支持 IAM Identity Center 账户实例，请参阅 [AWS 可与 IAM 身份中心配合使用的托管应用程序](awsapps-that-work-with-identity-center.md)。
+ **不需要多账户权限（权限集）**
  + 可信身份传播不需要您设置[多账户权限](manage-your-accounts.md)（权限集）。您可以启用 IAM Identity Center，仅将其用于可信身份传播。

## 客户自主管理型应用程序的注意事项
<a name="trustedidentitypropagation-customer-apps"></a>

即使您的用户与不由 AWS您定制开发的应用程序管理的面向客户的应用程序进行交互，您的员工也可以从可信的身份Tableau传播中受益。这些应用程序的用户可能未在 IAM Identity Center 中配置。为了顺利识别和授权用户访问 AWS 资源，IAM Identity Center 允许您在对用户进行身份验证的身份提供商与 IAM Identity Center 之间配置可信关系。有关更多信息，请参阅 [通过可信令牌发布者使用应用程序](using-apps-with-trusted-token-issuer.md)。

此外，为您的应用程序配置可信身份传播还需满足以下要求：
+ 您的应用程序必须使用 OAuth 2.0 框架进行身份验证。可信身份传播不支持 SAML 2.0 集成。
+ 您的应用程序必须获得 IAM Identity Center 的认可。请遵循您的[使用案例](trustedidentitypropagation-integrations.md)专属指引。

# 可信身份传播应用场景
<a name="trustedidentitypropagation-integrations"></a>

作为 IAM Identity Center 管理员，您可能需要协助配置从面向用户的应用程序到 AWS 服务的可信身份传播。为支持此请求，您需要以下信息：
+ 您的用户将使用哪个面向客户端的应用程序？
+  AWS 服务 哪些用于查询数据和授权访问数据？
+ 哪个 AWS 服务 授权访问数据？

在启用**不涉及第三方应用程序或自定义开发应用程序的可信身份传播使用案例**时，您的职责包括：

1. [启用 IAM 身份中心](enable-identity-center.md)。

1. [将现有身份源连接到 IAM Identity Center](tutorials.md)。

这些用例的可信身份配置的其余步骤将在连接 AWS 服务 的应用程序中执行。已连接 AWS 服务 或应用程序的管理员应参阅相应的用户指南，以获得全面的服务特定指导。

在启用**涉及第三方应用程序或自定义开发应用程序的可信身份传播使用案例**时，您的职责包括 [启用 IAM Identity Center](enable-identity-center.md) 和[连接身份源](tutorials.md)的步骤，以及：

1. 配置身份提供者（IdP）与第三方或自定义开发应用程序的连接。

1. 使 IAM Identity Center 能够识别该第三方或自定义开发应用程序。

1. 在 IAM Identity Center 中将您的 IdP 配置为可信令牌颁发者。有关更多信息，请参阅 [通过可信令牌发布者使用应用程序](using-apps-with-trusted-token-issuer.md)。

所连接应用程序的管理员 AWS 服务 应参阅相应的用户指南，以获得全面的服务特定指导。

## 分析、数据湖仓和机器学习使用案例
<a name="tip-data-analytic-usecases-overview"></a>

您可以通过以下分析和机器学习服务启用可信传播使用案例：
+ **Amazon Redshift** - 有关指导，请参阅 [使用 Amazon Redshift 的可信身份传播](tip-usecase-redshift.md)。
+ **Amazon EMR** - 有关指导，请参阅 [使用 Amazon EMR 的可信身份传播](tip-usecase-emr.md)。
+ **Amazon Athena** - 有关指导，请参阅 [使用 Amazon Athena 的可信身份传播](tip-usecase-ate.md)。
+ **SageMaker Studio**-有关指导，请参阅[使用 Amazon SageMaker Studio 进行可信身份传](trusted-identity-propagation-usecase-sagemaker-studio.md)。

## 其他使用案例
<a name="tip-additional-usecases"></a>

您还可以通过以下 AWS 服务启用 IAM Identity Center 和可信身份传播：
+ **Amazon Q Business** - 有关指导，请参阅：
  + [使用 IAM Identity Center 的应用程序的管理员工作流](https://docs.aws.amazon.com//amazonq/latest/qbusiness-ug/how-it-works.html#admin-flow-idc)
  + [使用 IAM Identity Center 配置 Amazon Q Business 应用程序](https://docs.aws.amazon.com//amazonq/latest/qbusiness-ug/create-application.html)。
  + [使用 IAM Identity Center 可信身份传播配置 Amazon Q Business](https://aws.amazon.com/blogs//machine-learning/configuring-amazon-q-business-with-aws-iam-identity-center-trusted-identity-propagation/)。
+ **Amazon OpenSearch 服务**-有关指导，请参阅：
  + [IAM Identity Center 可信身份传播支持 Amazon OpenSearch 服务](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/idc-aos.html)。
  + [Amazon OpenSearch 服务的集中式 OpenSearch 用户界面（控制面板）](https://docs.aws.amazon.com//opensearch-service/latest/developerguide/application.html)。
+ **AWS Transfer Family** - 有关指导，请参阅：
  + [Transfer Family Web 应用程序](https://docs.aws.amazon.com//transfer/latest/userguide/web-app.html)。

**Topics**
+ [分析、数据湖仓和机器学习使用案例](#tip-data-analytic-usecases-overview)
+ [其他使用案例](#tip-additional-usecases)
+ [使用 Amazon Redshift 的可信身份传播](tip-usecase-redshift.md)
+ [使用 Amazon EMR 的可信身份传播](tip-usecase-emr.md)
+ [使用 Amazon Athena 的可信身份传播](tip-usecase-ate.md)
+ [使用 Amazon SageMaker Studio 进行可信身份传](trusted-identity-propagation-usecase-sagemaker-studio.md)

# 使用 Amazon Redshift 的可信身份传播
<a name="tip-usecase-redshift"></a>

启用可信身份传播的步骤取决于您的用户是与托管应用程序交互还是与客户 AWS 托管的应用程序进行交互。下图显示了面向客户端的应用程序（无论是 AWS 托管的还是外部的）的可信身份传播配置，这些应用程序通过Amazon Redshift或授权服务（例如Amazon S3）提供的访问控制来查询 Amazon Redshift 数据。 AWS AWS Lake Formation Access Grants

![\[使用 Amazon Redshift、Quick、Lake Formation 和 IAM 身份中心进行可信身份传播示意图\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/rs-tip-diagram.png)


启用面向 Amazon Redshift 的可信身份传播后，Redshift 管理员可以将 Redshift 配置为[自动创建角色](https://docs.aws.amazon.com//redshift/latest/mgmt/redshift-iam-access-control-sso-autocreate.html)（以 IAM Identity Center 作为身份提供者）、将 Redshift 角色映射到 IAM Identity Center 中的组，并使用 [Redshift 基于角色的访问控制授予访问权限](https://docs.aws.amazon.com//redshift/latest/dg/r_tutorial-RBAC.html)。

## 支持的面向客户端的应用程序
<a name="redshift-mgn-apps-and-customer-apps"></a>

**AWS 托管应用程序**  
以下面向客户的 AWS 托管应用程序支持向 Amazon Redshift 传播可信身份：
+ [Amazon RedshiftQuery Editor V2](setting-up-tip-redshift.md)
+ [快点](https://docs.aws.amazon.com//quicksight/latest/user/redshift-trusted-identity-propagation.html)

**注意**  
如果您使用 Amazon Redshift Spectrum 访问 AWS Glue Data Catalog中的外部数据库或表，建议设置 [Lake Formation](tip-tutorial-lf.md) 和 [Amazon S3 Access Grants](tip-tutorial-s3.md) 以提供细粒度访问控制。

**客户托管的应用程序**  
以下客户自主管理型应用程序支持面向 Amazon Redshift 的可信身份传播：
+ **Tableau**，包括 Tableau Desktop、Tableau Server 和 Tableau Prep
  + 要为 Tableau 用户启用可信身份传播，请参阅《*AWS 大数据博客*》中的[使用 IAM Identity Center 将 Tableau 和 Okta 与 Amazon Redshift 集成](https://aws.amazon.com/blogs//big-data/integrate-tableau-and-okta-with-amazon-redshift-using-aws-iam-identity-center/)。
+ **SQL 客户端**（DBeaver 和 DBVisualizer）
  + 要为 SQL 客户端（DBeaver 和 DBVisualizer）用户启用可信身份传播，请参阅《*AWS 大数据博客*》中的[使用 IAM Identity Center 将身份提供者（IdP）与 Amazon Redshift 查询编辑器 V2 和 SQL 客户端集成以实现无缝单点登录](https://aws.amazon.com/blogs//big-data/integrate-identity-provider-idp-with-amazon-redshift-query-editor-v2-and-sql-client-using-aws-iam-identity-center-for-seamless-single-sign-on/)。

# 设置 Amazon Redshift 查询编辑器 V2 的可信身份传播
<a name="setting-up-tip-redshift"></a>

以下过程将引导您实现从 Amazon Redshift 查询编辑器 V2 到 Amazon Redshift 的可信身份传播。

## 先决条件
<a name="setting-up-tip-redshift-prereqs"></a>

在开始本教程之前，您需要设置以下方面：

1. [启用 IAM 身份中心](enable-identity-center.md)。建议使用[组织实例](organization-instances-identity-center.md)。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

1. [将身份源中的用户和组配置到 IAM Identity Center](tutorials.md)。

启用可信身份传播涉及两项操作：IAM Identity Center 管理员在 IAM Identity Center 控制台执行的任务，以及 Amazon Redshift 管理员在 Amazon Redshift 控制台执行的任务。

## IAM Identity Center 管理员需执行的任务
<a name="setting-up-tip-redshift-ssoadmin-tasks"></a>

IAM Identity Center 管理员需完成以下任务：

1. 在 Amazon Redshift 集群或无服务器实例所在的账户中，**创建 [IAM 角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles.html)** 并附加以下权限策略。有关更多信息，请参阅 [IAM 角色创建](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。

   1. 以下策略示例包含完成本教程所需的权限。要使用此政策，请将示例策略*italicized placeholder text*中的替换为您自己的信息。有关详细操作指引，请参阅[创建策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)或[编辑策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html)。

     **权限策略：**

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "AllowRedshiftApplication",
                 "Effect": "Allow",
                 "Action": [
                     "redshift:DescribeQev2IdcApplications",
                     "redshift-serverless:ListNamespaces",
                     "redshift-serverless:ListWorkgroups",
                     "redshift-serverless:GetWorkgroup"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "AllowIDCPermissions",
                 "Effect": "Allow",
                 "Action": [
                     "sso:DescribeApplication",
                     "sso:DescribeInstance"
                 ],
                 "Resource": [
                     "arn:aws:sso:::instance/Your-IAM-Identity-Center-Instance ID",
                     "arn:aws:sso::111122223333:application/Your-IAM-Identity-Center-Instance-ID/*"
                 ]
             }
         ]
     }
     ```

------

     **信任政策：**

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Principal": {
                     "Service": [
                         "redshift-serverless.amazonaws.com",
                         "redshift.amazonaws.com"
                     ]
                 },
                 "Action": [
                     "sts:AssumeRole",
                     "sts:SetContext"
                 ]
             }
         ]
     }
     ```

------

1. 在启用 IAM Identity Center 的 AWS Organizations 管理账户中**创建权限集**。下一步将使用该权限集允许联合用户访问 Redshift 查询编辑器 V2。

   1. 访问 **IAM Identity Center** 控制台，在**多账户权限**下选择**权限集**。

   1. 选择**创建权限集**。

   1. 选择**自定义权限集**，然后选择**下一步**。

   1. 在 **AWS 托管策略**下，选择 **`AmazonRedshiftQueryEditorV2ReadSharing`**。

   1. 在**内联策略**下，添加以下策略：

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "Statement1",
                  "Effect": "Allow",
                  "Action": [
                      "redshift:DescribeQev2IdcApplications",
                      "redshift-serverless:ListNamespaces",
                      "redshift-serverless:ListWorkgroups",
                      "redshift-serverless:GetWorkgroup"
                  ],
                  "Resource": "*"
              }
          ]
      }
      ```

------

   1. 选择**下一步**，然后为权限集命名。例如 **Redshift-Query-Editor-V2**。

   1. 在**中继状态 - 可选**下，将默认中继状态设置为查询编辑器 V2 URL，格式为：`https://your-region.console.aws.amazon.com/sqlworkbench/home`。

   1. 检查设置，然后选择**创建**。

   1. 导航到 IAM Identity Center 仪表板，并从**设置摘要**部分复制 AWS 访问门户 URL。  
![\[第 i 步，从 IAM 身份中心控制台复制 AWS 访问门户 URL。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/setting-up-redshift-step-i.png)

   1. 打开一个新的隐身浏览器窗口并粘贴该 URL。

      这将带您 AWS 进入访问门户，确保您使用的是 IAM Identity Center 用户登录。  
![\[步骤 j，登录 AWS 访问门户。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/setting-up-redshift-step-j.png)

      有关权限集的更多信息，请参阅 [AWS 账户 使用权限集进行管理](permissionsetsconcept.md)。

1. **启用联合用户访问 Redshift 查询编辑器 V2**。

   1. 在 AWS Organizations 管理账户中，打开 **IAM 身份中心**控制台。

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

   1. 在 AWS 账户 页面上，选择 AWS 账户 要为其分配访问权限的。

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

   1. 在**分配用户和组**页面上，选择要为其创建权限集的用户和/或组。然后选择**下一步**。

   1. 在**分配权限集**页面上，选择您在上一步中创建的权限集。然后选择**下一步**。

   1. 在**查看并提交分配**页面上，查看您的选择，选择**提交**。

## Amazon Redshift 管理员执行的任务
<a name="setting-up-tip-redshift-admin-tasks"></a>

启用面向 Amazon Redshift 的可信身份传播，需要 Amazon Redshift 集群管理员或 Amazon Redshift Serverless 管理员在 Amazon Redshift 控制台执行多项操作。有关更多信息，请参阅《*AWS 大数据博客*》中的[使用 IAM Identity Center 将身份提供者（IdP）与 Amazon Redshift 查询编辑器 V2 和 SQL 客户端集成以实现无缝单点登录](https://aws.amazon.com/blogs//big-data/integrate-identity-provider-idp-with-amazon-redshift-query-editor-v2-and-sql-client-using-aws-iam-identity-center-for-seamless-single-sign-on/)。

# 使用 Amazon EMR 的可信身份传播
<a name="tip-usecase-emr"></a>

下图显示了 Amazon EMR Studio 的可信身份传播配置，使用亚马逊 EC2 上的 Amazon EMR，访问控制由和 Amaz AWS Lake Formation on S3 提供。Access Grants

![\[使用 Amazon EMR、Lake Formation 和 IAM Identity Center 的可信身份传播示意图\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/emr-tip-diagram.png)


**支持的面向客户端的应用程序**
+ Amazon EMR Studio

**如需启用可信身份传播，请执行以下步骤：**
+ [设置 Amazon EMR Studio](setting-up-tip-emr.md) 作为 Amazon EMR 集群的面向客户端应用程序。
+ 设置[搭载 Apache Spark 的 Amazon EC2 上的 Amazon EMR 集群](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-idc-start.html)。
+ *推荐*：[AWS Lake Formation](tip-tutorial-lf.md)以及 [Amazon S3 Access Grants](tip-tutorial-s3.md)，以提供对 S3 中底层数据位置 AWS Glue Data Catalog 和底层数据位置的精细访问控制。

# 设置 Amazon EMR Studio 的可信身份传播
<a name="setting-up-tip-emr"></a>

以下过程将引导您设置 Amazon EMR Studio，以实现对 Amazon Athena 工作组或运行 Apache Spark 的 Amazon EMR 集群执行查询时的可信身份传播。

## 先决条件
<a name="setting-up-tip-emr-prereqs"></a>

在开始本教程之前，您需要设置以下方面：

1. [启用 IAM 身份中心](enable-identity-center.md)。建议使用[组织实例](organization-instances-identity-center.md)。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

1. [将身份源中的用户和组配置到 IAM Identity Center](tutorials.md)。

要完成 Amazon EMR Studio 的可信身份传播配置，EMR Studio 管理员必须执行以下步骤。

## 步骤 1：为 EMR Studio 创建所需的 IAM 角色
<a name="setting-up-tip-emr-step1"></a>

本步骤中，Amazon EMR Studio 管理员需为 EMR Studio 创建 IAM 服务角色和 IAM 用户角色。

1. **[创建 EMR Studio 服务角色](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-service-role.html)** - EMR Studio 将通过该 IAM 角色安全管理工作区和笔记本、连接集群并处理数据交互。

   1. 导航到 IAM 控制台 ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) 并创建 IAM 角色。

   1. 选择 **AWS 服务** 作为可信实体，然后选择 **Amazon EMR**。附加以下策略以定义该角色的权限和信任关系。

      要使用这些政策，请将示例策略*italicized placeholder text*中的替换为您自己的信息。有关详细操作指引，请参阅[创建策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)或[编辑策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html)。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "ObjectActions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:GetObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:ResourceAccount": "Your-AWS-Account-ID"
                      }
                  }
              },
              {
                  "Sid": "BucketActions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:ListBucket",
                      "s3:GetEncryptionConfiguration"
                  ],
                  "Resource": [
                      "arn:aws:s3:::Your-S3-Bucket-For-EMR-Studio"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:ResourceAccount": "Your-AWS-Account-ID"
                      }
                  }
              }
          ]
      }
      ```

------

      有关服务角色的所有权限参考，请参阅 [EMR Studio 服务角色权限](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-permissions-table)。

1. **[创建用于 IAM Identity Center 身份验证的 EMR Studio 用户角色](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-create-user-role)** - 当用户通过 IAM Identity Center 登录以管理工作区、EMR 集群、作业和 Git 代码库时，EMR Studio 将使用该角色。**该角色用于启动可信身份传播工作流**。
**注意**  
EMR Studio 用户角色不需要包含访问目录中 AWS Glue 表的 Amazon S3 位置的权限。 AWS Lake Formation 权限和注册的湖泊位置将用于获得临时权限。

   以下示例策略可用于允许 EMR Studio 用户通过 Athena 工作组运行查询的角色。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDefaultEC2SecurityGroupsCreationInVPCWithEMRTags",
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateSecurityGroup"
               ],
               "Resource": [
                   "arn:aws:ec2:*:*:vpc/*"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/for-use-with-amazon-emr-managed-policies": "true"
                   }
               }
           },
           {
               "Sid": "AllowAddingEMRTagsDuringDefaultSecurityGroupCreation",
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": "arn:aws:ec2:*:*:security-group/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true",
                       "ec2:CreateAction": "CreateSecurityGroup"
                   }
               }
           },
           {
               "Sid": "AllowSecretManagerListSecrets",
               "Action": [
                   "secretsmanager:ListSecrets"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Sid": "AllowSecretCreationWithEMRTagsAndEMRStudioPrefix",
               "Effect": "Allow",
               "Action": "secretsmanager:CreateSecret",
               "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/for-use-with-amazon-emr-managed-policies": "true"
                   }
               }
           },
           {
               "Sid": "AllowAddingTagsOnSecretsWithEMRStudioPrefix",
               "Effect": "Allow",
               "Action": "secretsmanager:TagResource",
               "Resource": "arn:aws:secretsmanager:*:*:secret:emr-studio-*"
           },
           {
               "Sid": "AllowPassingServiceRoleForWorkspaceCreation",
               "Action": "iam:PassRole",
               "Resource": [
                   "arn:aws:iam::111122223333:role/service-role/AmazonEMRStudio_ServiceRole_Name"
               ],
               "Effect": "Allow"
           },
           {
               "Sid": "AllowS3ListAndLocationPermissions",
               "Action": [
                   "s3:ListAllMyBuckets",
                   "s3:ListBucket",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::*",
               "Effect": "Allow"
           },
           {
               "Sid": "AllowS3ReadOnlyAccessToLogs",
               "Action": [
                   "s3:GetObject"
               ],
               "Resource": [
                   "arn:aws:s3:::aws-logs-Your-AWS-Account-ID-Region/elasticmapreduce/*"
               ],
               "Effect": "Allow"
           },
           {
               "Sid": "AllowAthenaQueryExecutions",
               "Effect": "Allow",
               "Action": [
                   "athena:StartQueryExecution",
                   "athena:GetQueryExecution",
                   "athena:GetQueryResults",
                   "athena:StopQueryExecution",
                   "athena:ListQueryExecutions",
                   "athena:GetQueryResultsStream",
                   "athena:ListWorkGroups",
                   "athena:GetWorkGroup",
                   "athena:CreatePreparedStatement",
                   "athena:GetPreparedStatement",
                   "athena:DeletePreparedStatement"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowGlueSchemaManipulations",
               "Effect": "Allow",
               "Action": [
                   "glue:GetDatabase",
                   "glue:GetDatabases",
                   "glue:GetTable",
                   "glue:GetTables",
                   "glue:GetPartition",
                   "glue:GetPartitions"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AllowQueryEditorToAccessWorkGroup",
               "Effect": "Allow",
               "Action": "athena:GetWorkGroup",
               "Resource": "arn:aws:athena:*:111122223333:workgroup*"
           },
           {
               "Sid": "AllowConfigurationForWorkspaceCollaboration",
               "Action": [
                   "elasticmapreduce:UpdateEditor",
                   "elasticmapreduce:PutWorkspaceAccess",
                   "elasticmapreduce:DeleteWorkspaceAccess",
                   "elasticmapreduce:ListWorkspaceAccessIdentities"
               ],
               "Resource": "*",
               "Effect": "Allow",
               "Condition": {
                   "StringEquals": {
                       "elasticmapreduce:ResourceTag/creatorUserId": "${aws:userId}"
                   }
               }
           },
           {
               "Sid": "DescribeNetwork",
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeVpcs",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups"
               ],
               "Resource": "*"
           },
           {
               "Sid": "ListIAMRoles",
               "Effect": "Allow",
               "Action": [
                   "iam:ListRoles"
               ],
               "Resource": "*"
           },
           {
               "Sid": "AssumeRole",
               "Effect": "Allow",
               "Action": [
                   "sts:AssumeRole"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   以下信任策略允许 EMR Studio 扮演该角色：
**注意**  
使用 EMR Studio 工作区和 EMR 笔记本需额外配置权限。有关更多信息，请参阅[为 EMR Studio 用户创建权限策略](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-user-permissions.html#emr-studio-permissions-policies)。

**您可通过以下链接获取更多信息：**
   + [使用客户管理型策略定义自定义 IAM 权限](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)
   + [EMR Studio 服务角色权限](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-permissions-table)

## 步骤 2：创建并配置 EMR Studio
<a name="setting-up-tip-emr-step2"></a>

本步骤中，您将在 EMR Studio 控制台创建 Amazon EMR Studio，并使用在 [步骤 1：为 EMR Studio 创建所需的 IAM 角色步骤 2：创建并配置 EMR Studio](#setting-up-tip-emr-step1) 中创建的 IAM 角色。

1. 访问 EMR Studio 控制台，选择**创建 Studio** 并选择**自定义设置**选项。您可以创建新的 S3 存储桶或使用现有存储桶。您可勾选**使用自己的 KMS 密钥加密工作区文件**选项。有关更多信息，请参阅 [AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/overview.html)。  
![\[步骤 1：在 EMR 控制台创建 EMR Studio。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/emr-tutorial-step-3.1.png)

1. 在**允许 Studio 访问您资源的服务角色**下，从下拉菜单中选择在 [步骤 1：为 EMR Studio 创建所需的 IAM 角色步骤 2：创建并配置 EMR Studio](#setting-up-tip-emr-step1) 中创建的服务角色。

1. 在**身份验证**下选择 **IAM Identity Center**。选择在 [步骤 1：为 EMR Studio 创建所需的 IAM 角色步骤 2：创建并配置 EMR Studio](#setting-up-tip-emr-step1) 中创建的用户角色。  
![\[步骤 3：在 EMR 控制台创建 EMR Studio，选择 IAM Identity Center 作为身份验证方式。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/emr-tutorial-step-3.3.png)

1. 勾选**可信身份传播**选项框。在应用程序访问部分选择**仅已分配的用户和组**，这样仅授权的用户和组可访问该 Studio。

1. *（可选）*– 如果您将该 Studio 与 EMR 集群配合使用，可配置 VPC 和子网。  
![\[步骤 4：在 EMR 控制台创建 EMR Studio，配置网络和安全设置。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/emr-tutorial-step-3.4.png)

1. 审核所有详细信息并选择**创建 Studio**。

1. 配置 Athen WorkGroup a 或 EMR 集群后，请登录 Studio 的 URL，以：

   1. 通过查询编辑器运行 Athena 查询。

   1. 在工作区中通过 Jupyter Notebook 运行 Spark 作业。

# 使用 Amazon Athena 的可信身份传播
<a name="tip-usecase-ate"></a>

启用可信身份传播的步骤取决于您的用户是与托管应用程序交互还是与客户 AWS 托管的应用程序进行交互。下图显示了面向客户端的应用程序（无论是 AWS 托管应用程序还是外部应用程序）的可信身份传播配置，该配置使用 Amazon Athena 通过 AWS Lake Formation 和 Amazon S3 提供的访问控制来 AWS 查询 Amazon S3 数据。Access Grants

**注意**  
Amazon Athena 的可信身份传播需使用 Trino。
不支持通过 ODBC 和 JDBC 驱动程序连接到 Amazon Athena 的 Apache Spark 和 SQL 客户端。

![\[使用 Athena、Amazon EMR、Lake Formation 和 IAM Identity Center 的可信身份传播示意图\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/ate-tip-diagram.png)


**AWS 托管应用程序**

以下面向客户端的 AWS 托管应用程序支持通过 Athena 进行可信身份传播：
+ Amazon EMR Studio

**如需启用可信身份传播，请执行以下步骤：**
+ [设置 Amazon EMR Studio](setting-up-tip-emr.md) 作为 Athena 的面向客户端应用程序。启用可信身份传播后，需通过 EMR Studio 中的查询编辑器运行 Athena 查询。
+ [设置 Athena 工作组](setting-up-tip-ate.md)。
+ [设置 AWS Lake Formation为](tip-tutorial-lf.md)根据 IAM Identity Center 中的用户或群组对 AWS Glue 表启用精细访问控制。
+ [设置 Amazon S3 Access Grants](tip-tutorial-s3.md)，以便允许临时访问 S3 中的底层数据位置。

**注意**  
Lake Formation 和 Amazon S3 Access Grants 都需要对亚马逊 S3 中的 Athena 查询结果进行访问控制。 AWS Glue Data Catalog 

**客户托管的应用程序**  
要为*自定义开发的应用程序*的用户启用可信身份传播，请参阅*AWS 安全*博客中的[使用可信身份传播 AWS 服务 以编程方式访问](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/)。

# 设置 Amazon Athena 工作组的可信身份传播
<a name="setting-up-tip-ate"></a>

以下过程将引导您设置 Amazon Athena 工作组以实现可信身份传播。

## 先决条件
<a name="setting-up-tip-ate-prereqs"></a>

在开始本教程之前，您需要设置以下方面：

1. [启用 IAM 身份中心](enable-identity-center.md)。建议使用[组织实例](organization-instances-identity-center.md)。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

1. [将身份源中的用户和组配置到 IAM Identity Center](tutorials.md)。

1. 该配置需要依赖 [Amazon EMR Studio](setting-up-tip-emr.md)、[AWS Lake Formation](tip-tutorial-lf.md) 和 [Amazon S3 访问权限管控](tip-tutorial-s3.md)。

## 设置 Athena 的可信身份传播
<a name="setting-up-tip-ate-step1"></a>

要设置 Athena 的可信身份传播，Athena 管理员必须：

1. 查看[使用已启用 IAM Identity Center 的 Athena 工作组的注意事项和限制](https://docs.aws.amazon.com//athena/latest/ug/workgroups-identity-center.html#workgroups-identity-center-considerations-and-limitations)。

1. [创建启用 IAM Identity Center 的 Athena 工作组](https://docs.aws.amazon.com//athena/latest/ug/workgroups-identity-center.html#workgroups-identity-center-creating-an-identity-center-enabled-athena-workgroup)。

# 使用 Amazon SageMaker Studio 进行可信身份传
<a name="trusted-identity-propagation-usecase-sagemaker-studio"></a>

A@@ [mazon SageMaker Studio](https://docs.aws.amazon.com//sagemaker/latest/dg/studio-updated.html) 与 IAM 身份中心集成，它支持[用户后台会话](user-background-sessions.md)和可信身份传播。用户后台会话允许用户在 SageMaker Studio 上启动长时间运行的作业，而无需在作业运行时保持登录状态。作业将立即在后台运行，并使用启动作业的用户的权限。即使用户关闭计算机、IAM Identity Center 登录会话过期或用户退出 AWS 访问门户，该作业仍可以继续运行。用户后台会话的默认持续时间为 7 天，但您可以指定最长 90 天的持续时间。可信身份传播支持基于用户身份或组成员身份，为 Amazon S3 存储桶等 AWS 资源提供细粒度访问权限。

下图显示了 SageMaker Studio 的可信身份传播配置，可访问存储在 Amazon S3 存储桶中的数据。IAM Identity Center 已启用用户后台会话，这允许 SageMaker Studio 训练作业在后台运行。训练数据的访问控制由 Amazon S3 Access Grants 提供。

![\[Studio 的可信身份传播示意图， SageMaker SageMaker Studio 训练作业在用户后台会话中运行，并访问由 Amazon S3 提供的 Amazon S3 中的训练数据Access Grants。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/sagemaker-studio-s3-user-background-session-training-job-s3-access-grants-diagram.png)


**AWS 托管应用程序**

以下面向客户端的 AWS 托管应用程序支持可信身份传播：
+ [亚马逊 SageMaker Studio](setting-up-trusted-identity-propagation-sagemaker-studio.md)

**如需启用可信身份传播和用户后台会话，请执行以下步骤：**
+ [将 SageMaker Studio 设置为面向客户端的应用程序。](setting-up-trusted-identity-propagation-sagemaker-studio.md)
+ [设置 Amazon S3 Access Grants](tip-tutorial-s3.md)，以便允许临时访问 Amazon S3 中的底层数据位置。

# 使用 SageMaker Studio 设置可信身份传播
<a name="setting-up-trusted-identity-propagation-sagemaker-studio"></a>

以下过程将引导您完成设置 SageMaker Studio 以进行可信身份传播和用户后台会话的过程。

## 先决条件
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-prereqs"></a>

开始本教程之前，您需要完成以下任务：

1. [启用 IAM 身份中心](enable-identity-center.md)。需使用组织实例。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

1. [将身份源中的用户和组配置到 IAM Identity Center](tutorials.md)。

1. 在 IAM Identity Center 控制台中[确认已启用用户后台会话](user-background-sessions.md)。默认情况下，用户后台会话处于启用状态，会话持续时间设置为 7 天。您可以修改此持续时间。

要从 SageMaker Studio 设置可信身份传播， SageMaker Studio 管理员必须执行以下步骤。

## 步骤 1：在新的 Studio 域或现有 SageMaker Studio 域中启用可信身份传播
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-enable-in-domain"></a>

SageMaker Studio 使用域来组织用户个人资料、应用程序及其相关资源。要启用可信身份传播，必须按照以下步骤创建 SageMaker Studio 域或修改现有域。

1. 打开 SageMaker AI 控制台，导航到 “**域**”，然后执行以下任一操作。
   + **使用[组织安装程序](https://docs.aws.amazon.com//sagemaker/latest/dg/onboard-custom.html#onboard-custom-instructions)创建新的 SageMaker Studio 域。**

     选择**为组织设置**，然后执行以下操作：
     + 选择 **AWS Identity Center** 作为身份验证方式。
     + 勾选**为该域上的所有用户启用可信身份传播**复选框。
   + **修改现有的 SageMaker Studio 域名。**
     + 选中使用 IAM Identity Center 进行身份验证的现有域。
**重要**  
仅在使用 IAM 身份中心进行身份验证的 SageMaker Studio 域中支持可信身份传播。如果该域使用 IAM 进行身份验证，则无法更改身份验证方式，因此也无法启用可信身份传播。
     + [编辑域设置](https://docs.aws.amazon.com//sagemaker/latest/dg/domain-edit)。编辑**身份验证和权限**设置，启用可信身份传播。

1. 继续执行[步骤 2：配置默认域执行角色](#setting-up-trusted-identity-propagation-sagemaker-studio-domain-execution-role)。 SageMaker Studio 域的用户需要此角色才能访问其他 AWS 服务，例如 Amazon S3。

## 步骤 2：配置默认域执行角色与角色信任策略
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-domain-execution-role"></a>

*域执行角色*是 SageMaker Studio 域代表网域中所有用户担任的 [IAM 角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles)。您分配给该角色的权限决定了 SageMaker Studio 可以执行的操作。

1. 要创建或选择域执行角色，请执行以下任一操作：
   + **通过[组织设置](https://docs.aws.amazon.com//sagemaker/latest/dg/onboard-custom.html#onboard-custom-instructions)创建或选择角色。**
     + 打开 SageMaker AI 控制台，按照**步骤 2：配置角色和机器学习活动**中的控制台指南创建新的域执行角色或选择现有角色。
     + 完成其余设置步骤以创建您的 SageMaker Studio 域名。
   + **手动创建执行角色。**
     + 打开 IAM 控制台并[自行创建执行角色](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-create-execution-role)。

1. [更新](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_update-role-trust-policy.html)附加到域执行角色的信任策略，使其包含以下两个操作：[https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html) 和 [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_iam-condition-keys.html](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_iam-condition-keys.html)。有关如何查找 SageMaker Studio 域的执行角色的信息，请参阅[获取域执行角色](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role-domain)。

   *信任策略*用于指定可以扮演该角色的身份。此策略是允许 SageMaker Studio 服务担任域执行角色所必需的。添加这两个操作，使其在策略中显示如下。

   ```
   {
   
       "Version": "2012-10-17", 		 	 	  
   
   
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "sagemaker.amazonaws.com"
                   ]
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:SetContext"
               ]
           }
       ]
   }
   ```

## 步骤 3：验证域执行角色所需的 Amazon S3 访问权限管控权限
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-s3-access-grant-permissions-execution-role"></a>

要使用 Amazon S3 访问授权，您必须将包含以下权限的 SageMaker Studio 域执行角色附加权限策略（内联策略或客户托管策略）。

```
{

    "Version": "2012-10-17", 		 	 	  

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetDataAccess",
                "s3:GetAccessGrantsInstanceForPrefix"
                ],
            "Resource": "arn:aws:s3:us-east-2:111122223333:access-grants/default"
        }
    ]
}
```

如果您暂无包含这些权限的策略，请参阅《*AWS Identity and Access Management 用户指南*》中的[添加和移除 IAM 身份权限](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html)。

## 步骤 4：为域分配组和用户
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-assign-users-groups-to-domain"></a>

按照[添加群组和用户中的步骤将群组和用户](https://docs.aws.amazon.com//sagemaker/latest/dg/domain-groups-add.html)分配到 SageMaker Studio 域。

## 步骤 5：设置 Amazon S3 访问权限管控
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-set-up-s3-access-grants"></a>

要设置 Amazon S3 访问权限管控，请遵循[通过 IAM Identity Center 配置可信身份传播的 Amazon S3 访问权限管控](tip-tutorial-s3.md#tip-tutorial-s3-configure)中的步骤。按照 step-by-step说明完成以下任务：

1. 创建 Amazon S3 访问权限管控实例。

1. 在该实例中注册位置。

1. 创建授权，允许特定 IAM Identity Center 用户或组访问指定的 Amazon S3 位置或这些位置内的子集（例如特定前缀）。

## 第 6 步：提交 SageMaker 训练作业并查看用户后台会话详情
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-submit-training-job-view-user-background-session-details"></a>

在 SageMaker Studio 中，启动一台新的 Jupyter 笔记本并提交一份训练作业。作业运行期间，完成以下步骤以查看会话信息并验证用户后台会话上下文是否处于活跃状态。

1. 打开 IAM Identity Center 控制台。

1. 选择**用户**。

1. 在**用户**页面上，选择要管理其会话的用户的用户名。这会让您转至包含用户信息的页面。

1. 在用户页面上，选择**活跃会话**选项卡。**活跃会话**旁边括号中的数字表示该用户处于活跃状态的会话数。

1. 要按使用该会话的作业的 Amazon 资源名称（ARN）搜索会话，请在**会话类型**列表中选择**用户后台会话**，然后在搜索框中输入作业 ARN。

以下示例展示了使用用户后台会话的训练作业在用户的**活跃会话**选项卡中的显示形式。

![\[alt text not found\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/sagemaker-studio-training-job-displayed-in-identity-center-console-active-sessions.png)


## 步骤 7：查看 CloudTrail 日志以验证可信身份的传播 CloudTrail
<a name="setting-up-trusted-identity-propagation-sagemaker-studio-view-cloudtrail-logs"></a>

启用可信身份传播后，操作会显示在`onBehalfOf`元素下方 CloudTrail 的事件日志中。`userId` 字段将显示启动训练作业的 IAM Identity Center 用户的 ID。以下 CloudTrail 事件捕获了可信身份传播的过程。

```
                            "userIdentity": {
    "type": "AssumedRole",
    "principalId": "AROA123456789EXAMPLE:SageMaker",
    "arn": "arn:aws:sts::111122223333:assumed-role/SageMaker-ExecutionRole-20250728T125817/SageMaker",
    "accountId": "111122223333",
    "accessKeyId": "ASIAIOSFODNN7EXAMPLE",
    "sessionContext": {
        "sessionIssuer": {
            "type": "Role",
            "principalId": "AROA123456789EXAMPLE",
            "arn": "arn:aws:iam::111122223333:role/service-role/SageMaker-ExecutionRole-20250728T125817",
            "accountId": "111122223333",
            "userName": "SageMaker-ExecutionRole-20250728T125817"
        },
        "attributes": {
            "creationDate": "2025-07-29T17:17:10Z",
            "mfaAuthenticated": "false"
        }
    },
    "onBehalfOf": {
        "userId": "2801d3e0-f0e1-707f-54e8-f558b19f0a10",
        "identityStoreArn": "arn:aws:identitystore::777788889999:identitystore/d-1234567890"
    }
},
```

## 运行时系统注意事项
<a name="setting-up-trusted-identity-propagation-sagemaker-ai-runtime-considerations"></a>

如果管理员将长时间运行的训练或处理作业设置**MaxRuntimeInSeconds**为低于用户后台会话持续时间， SageMaker Studio 会运行该作业的时间至少为用户后台会话持续时间中的一个**MaxRuntimeInSeconds **或一个。

有关更多信息 **MaxRuntimeInSeconds**，请参阅 *Amazon SageMaker API 参考*中的`CreateTrainingJob`[StoppingCondition](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-StoppingCondition)参数指南。

# 授权服务
<a name="authorization-services"></a>

在所有[分析和数据湖仓使用案例](trustedidentitypropagation-integrations.md#tip-data-analytic-usecases-overview)中，您可以通过以下服务实现细粒度访问控制：
+ AWS Lake Formation -有关指导，请参阅[AWS Lake Formation 使用 IAM 身份中心进行设置](tip-tutorial-lf.md)。
+ Amazon S3 Access Grants - 有关指导，请参阅 [使用 IAM Identity Center 设置 Amazon S3 访问权限管控](tip-tutorial-s3.md)。

# AWS Lake Formation 使用 IAM 身份中心进行设置
<a name="tip-tutorial-lf"></a>

[AWS Lake Formation](https://docs.aws.amazon.com//lake-formation/latest/dg/what-is-lake-formation.html) 是一项托管服务，可简化 AWS上数据湖的创建和管理。它可自动化数据收集、编目和安全配置，为存储和分析多种数据类型提供集中式存储库。Lake Formation 提供精细的访问控制并与各种 AWS 分析服务集成，使组织能够高效地设置、保护数据湖并从中获取见解。

按照以下步骤配置 Lake Formation，使其能够通过 IAM Identity Center 和可信身份传播，基于用户身份授予数据权限。

## 先决条件
<a name="tip-tutorial-lf-prereqs"></a>

在开始本教程之前，您需要设置以下方面：
+ [启用 IAM 身份中心](enable-identity-center.md)。建议使用[组织实例](organization-instances-identity-center.md)。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

## 设置可信身份传播的步骤
<a name="tip-tutorial-lf-step1"></a>

1. **集成 IAM Identity Center 与 AWS Lake Formation**，请遵循[将 Lake Formation 与 IAM Identity Center 连接](https://docs.aws.amazon.com//lake-formation/latest/dg/connect-lf-identity-center.html)中的指引。
**重要**  
**如果您暂无 AWS Glue Data Catalog 表**，则必须创建这些表才能通过 AWS Lake Formation 向 IAM Identity Center 用户和组授予访问权限。有关更多信息，请参阅[在 AWS Glue Data Catalog中创建对象](https://docs.aws.amazon.com//lake-formation/latest/dg/populating-catalog.html)。

1. **注册数据湖位置**。

   [注册 Glue 表数据所在的 S3 位置](https://docs.aws.amazon.com//lake-formation/latest/dg/register-location.html)。这样，Lake Formation 将在查询表时提供对所需 S3 位置的临时访问权限，从而无需在服务角色中包含 S3 权限（例如，上配置的 Athena 服务角色）。 WorkGroup

   1. 导航到 AWS Lake Formation 控制台导航窗格中 “**管理**” 部分下的**数据湖位置**。选择**注册位置**。

      这将允许 Lake Formation 生成具有访问 S3 数据位置所需权限的临时 IAM 凭据。  
![\[步骤 1：在 Lake Formation 控制台注册数据湖位置。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/lf-tutorial-step-3.1.png)

   1. 在 **Amazon S3 路径**字段中，输入 AWS Glue 表数据位置的 S3 路径。

   1. 在 **IAM 角色**部分，如果要配合可信身份传播使用，请不要选择服务关联角色。创建具有以下权限的单独角色。

      要使用这些政策，请用您自己的信息替换示例*italicized placeholder text*中的策略。有关详细操作指引，请参阅[创建策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)或[编辑策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html)。权限策略应授予对路径中指定的 S3 位置的访问权限：

      1. **权限策略**：

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

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Sid": "LakeFormationDataAccessPermissionsForS3",
                     "Effect": "Allow",
                     "Action": [
                         "s3:PutObject",
                         "s3:GetObject",
                         "s3:DeleteObject"
                     ],
                     "Resource": [
                         "arn:aws:s3:::Your-S3-Bucket/*"
                     ]
                 },
                 {
                     "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket",
                     "Effect": "Allow",
                     "Action": [
                         "s3:ListBucket"
                     ],
                     "Resource": [
                         "arn:aws:s3:::Your-S3-Bucket"
                     ]
                 },
                 {
                     "Sid": "LakeFormationDataAccessServiceRolePolicy",
                     "Effect": "Allow",
                     "Action": [
                         "s3:ListAllMyBuckets"
                     ],
                     "Resource": [
                         "arn:aws:s3:::*"
                     ]
                 }
             ]
         }
         ```

------

      1. **信任关系**：应包含 `sts:SectContext`（可信身份传播的必需操作）。

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

****  

         ```
         {
             "Version":"2012-10-17",		 	 	 
             "Statement": [
                 {
                     "Sid": "",
                     "Effect": "Allow",
                     "Principal": {
                         "Service": "lakeformation.amazonaws.com"
                     },
                     "Action": [
                         "sts:AssumeRole",
                         "sts:SetContext"
                     ]
                 }
             ]
         }
         ```

------
**注意**  
向导创建的 IAM 角色为服务关联角色，不包含 `sts:SetContext` 操作权限。

   1. 创建 IAM 角色后，选择**注册位置**。

## 使用 Lake Formation 进行可信身份传播 AWS 账户
<a name="tip-lf-across-accts"></a>

AWS Lake Formation 支持使用 [AWS Resource Access Manager (RAM)](https://docs.aws.amazon.com//ram/latest/userguide/what-is.html) 共享表，当授予者账户 AWS 账户 和被授权者账户处于相同 AWS 区域、相同且共享相同的 IAM Identity Center 组织实例时 AWS Organizations，它可以进行可信身份传播。有关更多信息，请参阅 [Lake Formation 中的跨账户数据共享](https://docs.aws.amazon.com//lake-formation/latest/dg/cross-data-sharing-lf.html)。

# 使用 IAM Identity Center 设置 Amazon S3 访问权限管控
<a name="tip-tutorial-s3"></a>

[Amazon S3 Access Grants](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-get-started.html) 提供灵活的基于身份的细粒度访问控制能力，可用于授权访问 S3 位置。您可以通过 Amazon S3 Access Grants，直接向企业用户和组授予 Amazon S3 存储桶的访问权限。按照以下步骤启用 S3 Access Grants 与 IAM Identity Center 的集成，实现可信身份传播。

## 先决条件
<a name="tip-tutorial-s3-prereqs"></a>

在开始本教程之前，您需要设置以下方面：
+ [启用 IAM 身份中心](enable-identity-center.md)。建议使用[组织实例](organization-instances-identity-center.md)。有关更多信息，请参阅 [先决条件和注意事项](trustedidentitypropagation-overall-prerequisites.md)。

## 通过 IAM Identity Center 配置可信身份传播的 S3 访问权限管控
<a name="tip-tutorial-s3-configure"></a>

**如果您已创建 Amazon S3 Access Grants 实例且已注册位置，请执行以下步骤：**

1. [关联您的 IAM Identity Center 实例](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-instance-idc.html)。

1. [创建授权](#tip-tutorial-s3-create-grant)。

**如果您尚未创建 Amazon S3 Access Grants，请执行以下步骤：**

1. [https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-instance-create.html](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-instance-create.html)-您可以为每个Access Grants实例创建一个 S3 实例 AWS 区域。创建 S3 Access Grants 实例时，请务必勾选**添加 IAM Identity Center 实例**选项框，并提供您的 IAM Identity Center 实例 ARN。选择**下一步**。

   下图展示了 Amazon S3 Access Grants 控制台中的“创建 S3 Access Grants 实例”页面：  
![\[S3 访问权限管控控制台的“创建 S3 Access Grants 实例”页面。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/s3-tutorial-step-1.1.png)

1. **注册营业地点**-在您的账户中[创建 Amazon S3 Access Grants 实例](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-instance-create.html)后，您就可以在该实例中[注册一个 S3 地点](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-location-register.html)。 AWS 区域 S3 Access Grants 位置会将默认 S3 区域（`S3://`）、存储桶或前缀映射到某个 IAM 角色。S3 Access Grants 代入此 Amazon S3 角色，来向正在访问该特定位置的被授权者提供临时凭证。您必须先在 S3 Access Grants 实例中注册至少一个位置，然后才能创建访问权限管控。

   对于**位置范围**，请指定 `s3://`，其中包含该区域内的所有存储桶。这是大多数使用案例的推荐位置范围。如果您有高级访问管理使用案例，可将位置范围设置为特定存储桶 `s3://bucket` 或存储桶内的前缀 `s3://bucket/prefix-with-path`。有关更多信息，请参阅*《Amazon Simple Storage Service 用户指南》*中的[注册位置](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-location-register.html)。
**注意**  
确保您要授予访问权限的 AWS Glue 表的 S3 位置包含在此路径中。

   该过程要求您为该位置配置 IAM 角色。该角色应包含访问该位置范围的权限。您可以通过 S3 控制台向导创建该角色。您需要在该 IAM 角色的策略中指定您的 S3 Access Grants 实例 ARN。您的 S3 Access Grants 实例 ARN 的默认值为 `arn:aws:s3:Your-Region:Your-AWS-Account-ID:access-grants/default`。

   以下权限策略示例为您创建的 IAM 角色授予 Amazon S3 权限。后续的信任策略示例允许 S3 Access Grants 服务主体扮演该 IAM 角色。

   1. **权限策略**

      要使用这些政策，请用您自己的信息替换示例*italicized placeholder text*中的策略。有关详细操作指引，请参阅[创建策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html)或[编辑策略](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html)。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "ObjectLevelReadPermissions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:GetObjectVersion",
                      "s3:GetObjectAcl",
                      "s3:GetObjectVersionAcl",
                      "s3:ListMultipartUploadParts"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:ResourceAccount": "111122223333"
                      },
                      "ArnEquals": {
                          "s3:AccessGrantsInstanceArn": [
                          "arn:aws:s3:::access-grants/instance-id"
                          ]
                      }
                  }
              },
              {
                  "Sid": "ObjectLevelWritePermissions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:PutObject",
                      "s3:PutObjectAcl",
                      "s3:PutObjectVersionAcl",
                      "s3:DeleteObject",
                      "s3:DeleteObjectVersion",
                      "s3:AbortMultipartUpload"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ],
                  "Condition": {
                      "StringEquals": {
                      "aws:ResourceAccount": "111122223333"
                      },
                      "ArnEquals": {
                          "s3:AccessGrantsInstanceArn": [
                          "arn:aws:s3:::access-grants/instance-id"
                          ]
                      }
                  }
              },
              {
                  "Sid": "BucketLevelReadPermissions",
                  "Effect": "Allow",
                  "Action": [
                      "s3:ListBucket"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ],
                  "Condition": {
                      "StringEquals": {
                      "aws:ResourceAccount": "111122223333"
                      },
                      "ArnEquals": {
                          "s3:AccessGrantsInstanceArn": [
                          "arn:aws:s3:::access-grants/instance-id"
                          ]
                      }
                  }
              },
              {
                  "Sid": "OptionalKMSPermissionsForSSEEncryption",
                  "Effect": "Allow",
                  "Action": [
                      "kms:Decrypt",
                      "kms:GenerateDataKey"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

------

   1. **信任策略**

       在 IAM 角色信任策略中，向 S3 访问权限管控服务 (`access-grants.s3.amazonaws.com`)主体授予对您创建的 IAM 角色的访问权限。为此，您可以创建一个包含以下语句的 JSON 文件。要将信任策略添加到您的账户，请参阅[使用自定义信任策略创建角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-custom.html)。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "Stmt1234567891011",
                  "Effect": "Allow",
                  "Action": [
                      "sts:AssumeRole",
                      "sts:SetSourceIdentity"
                  ],
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceAccount": "111122223333",
                          "aws:SourceArn": "Your-Custom-Access-Grants-Location-ARN"
                      }
                  }
              },
      
              {
                  "Sid": "Stmt1234567891012",
                  "Effect": "Allow",
                  "Action": "sts:SetContext",
                  "Resource": "*",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceAccount": "111122223333",
                          "aws:SourceArn": "Your-Custom-Access-Grants-Location-ARN"
                      },
                      "ForAllValues:ArnEquals": {
                          "sts:RequestContextProviders": "arn:aws:iam::aws:contextProvider/IdentityCenter"
                      }
                  }
              }
          ]
      }
      ```

------

## 创建 Amazon S3 访问权限管控
<a name="tip-tutorial-s3-create-grant"></a>

如果您已创建带有已注册位置的 Amazon S3 Access Grants 实例，且已关联 IAM Identity Center 实例，则可以[创建授权](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-grant-create.html)。在 S3 控制台的**创建授权**页面，完成以下操作：

**创建授权**

1. 选择上一步创建的位置。您可以通过添加子前缀缩小授权范围。子前缀可以是 `bucket`、`bucket/prefix` 或存储桶中的对象。有关更多信息，请参阅《*Amazon Simple Storage Service 用户指南*》中的[子前缀](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-grants-grant-create.html#subprefix)。

1. 在**权限和访问**下，根据需求选择**读取**和/或**写入**。

1. 在**授权方类型**中，选择**来自 IAM Identity Center 的目录身份**。

1. 提供 IAM Identity Center **用户或组 ID**。您可以在 IAM Identity Center 控制台的 “用户和群组 IDs ” [部分下找到该**用户**和**群组**](howtoviewandchangepermissionset.md)。选择**下一步**。

1. 在**审核并完成**页面，确认 S3 Access Grant 的设置，然后选择**创建授权**。

   下图展示了 Amazon S3 Access Grants 控制台中的“创建授权”页面：  
![\[Amazon S3 访问权限管控控制台的“创建授权”页面。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/s3-tutorial-step-1.4.png)

# 设置你自己的 OAuth 2.0 应用程序
<a name="trustedidentitypropagation-using-customermanagedapps-setup"></a>

可信身份传播使客户托管的应用程序能够代表用户请求访问 AWS 服务中的数据。对数据访问的管理基于用户身份，因此，管理员可以根据用户的现有用户和组成员资格，授予访问权限。用户的身份、代表他们执行的操作以及其他事件都记录在服务特定的日志和 CloudTrail事件中。

通过可信身份传播，用户可以登录客户自主管理型应用程序，而该应用程序可以在请求中传递用户的身份，以访问 AWS 服务中的数据。

**重要**  
要访问客户托管的应用程序 AWS 服务，必须从 IAM Identity Center 外部的可信令牌发行者那里获取令牌。可*信令牌发行*者是创建签名令牌的 OAuth 2.0 授权服务器。这些令牌授权发起访问请求 AWS 服务 （接收应用程序）的应用程序。有关更多信息，请参阅 [通过可信令牌发布者使用应用程序](using-apps-with-trusted-token-issuer.md)。

**Topics**
+ [设置客户托管 OAuth 2.0 应用程序以实现可信身份传播](customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.md)
+ [指定可信的应用程序](trustedidentitypropagation-using-customermanagedapps-specify-trusted-apps.md)
+ [通过可信令牌发布者使用应用程序](using-apps-with-trusted-token-issuer.md)

# 设置客户托管 OAuth 2.0 应用程序以实现可信身份传播
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2"></a>

要为可信身份传播设置客户托管 OAuth 2.0 应用程序，必须先将其添加到 IAM Identity Center。使用以下过程将您的应用程序添加到 IAM Identity Center。

**Topics**
+ [步骤 1：选择应用程序类型](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-select-app-type)
+ [步骤 2：指定应用程序详细信息](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-app-details)
+ [步骤 3：指定身份验证设置](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-authentication-settings)
+ [步骤 4：指定应用程序凭证](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials)
+ [步骤 5：审核和配置](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-review-and-configure)

## 步骤 1：选择应用程序类型
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-select-app-type"></a>

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

1. 选择**应用程序**。

1. 选择**客户托管**选项卡。

1. 选择**添加应用程序**。

1. 在**选择应用程序类型**页面，选择**设置首选项**下的**我有想设置的应用程序**。

1. 在 “**应用程序类型**” 下，选择 **OAuth 2.0**。

1. 选择**下一步**，进入下一页：[步骤 2：指定应用程序详细信息](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-app-details)。

## 步骤 2：指定应用程序详细信息
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-app-details"></a>

1. 在**指定应用程序详细信息**页面的**应用程序名称和描述**下，输入应用程序的**显示名称**，如 **MyApp**。然后，输入**描述**。

1. 在**用户和组分配方法**下，选择下列选项之一：
   + **需要分配** - 仅允许分配给此应用程序的 IAM Identity Center 用户和组访问该应用程序。

     应用程序图块可见性-只有直接或通过群组分配分配到应用程序的用户才能在访问门户中查看应用程序图块，前提是**应用程序在 AWS 访问门户中的 AWS 可见性**设置为 “**可见**”。
   + **不需要分配** - 允许所有授权的 IAM Identity Center 用户和组访问此应用程序。

     应用程序图块可见性-除非应用程序在 AWS 访问门户中的可见**性设置为 “不可见”，否则登录 AWS 访问门户的所有用户**都可以**看到应用程序**图块。

1. 在**AWS 访问门户**下，输入用户可以访问应用程序的 URL，并指定应用程序图块在 AWS 访问门户中是可见还是不可见。如果选择**不可见**，则即使已分配的用户也无法查看应用程序磁贴。

1. 在**标签（可选）**下，选择**添加新标签**，然后为**键**和**值（可选）**指定值。

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

1. 选择**下一步**，进入下一页：[步骤 3：指定身份验证设置](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-authentication-settings)。

## 步骤 3：指定身份验证设置
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-authentication-settings"></a>

要将支持 OAuth 2.0 的客户托管应用程序添加到 IAM Identity Center，您必须指定可信令牌颁发者。可信令牌发行者是创建签名令牌的 OAuth 2.0 授权服务器。这些令牌用于对发起请求以访问 AWS 托管应用程序（接收端应用程序）的应用程序（请求端应用程序）进行授权。

1. 在**指定身份验证设置**页面的**可信令牌发布者**下，执行以下任一操作：
   + 使用现有的可信令牌发布者：

     在要使用的可信令牌发布者的名称旁边，选择其复选框。
   + 添加新的可信令牌发布者：

     1. 选择**创建可信令牌发布者**。

     1. 将打开一个新的浏览器标签页。按照 [如何向 IAM Identity Center 控制台添加可信令牌发布者](setuptrustedtokenissuer.md#how-to-add-trustedtokenissuer) 中的步骤 5 至步骤 8 操作。

     1. 完成这些步骤后，返回您正用于设置应用程序的浏览器窗口，然后选择刚刚添加的可信令牌发布者。

     1. 在可信令牌发布者列表中，选中刚刚添加的可信令牌发布者名称旁边的复选框。

        选择可信令牌发布者后，将出现**配置选定的可信令牌发布者**部分。

1. 在**配置选定的可信令牌发布者**下，输入 **Aud 声明**。**Aud 声明**用于确定可信令牌发布者生成的令牌的目标受众（接收者）。有关更多信息，请参阅 [Aud 声明](trusted-token-issuer-configuration-settings.md#trusted-token-issuer-aud-claim)。

1. 要让用户在使用此应用程序时无需重新进行身份验证，请选择**启用刷新令牌授予**。选中后，此选项将每 60 分钟刷新一次会话的访问令牌，直到会话过期或用户结束会话。

1. 选择**下一步**，进入下一页：[步骤 4：指定应用程序凭证](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials)。

## 步骤 4：指定应用程序凭证
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-specify-application-credentials"></a>

完成此过程中的步骤，为应用程序指定用于与可信应用程序执行令牌交换操作的凭证。这些凭证将在一个基于资源的策略中使用。该策略要求您指定一个主体，该主体必须有权执行该策略中指定的操作。即使可信应用程序位于同一个 AWS 账户中，**您也必须指定一个主体**。

**注意**  
在使用策略设置权限时，请仅授予执行任务所需的权限。为此，您可以定义在特定条件下可以对特定资源执行的操作，也称为最低权限权限。

该策略需要使用 [https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html) API 操作。有关该策略的更多信息以及可根据您的环境需求调整的示例，请参阅 [IAM Identity Center 的基于资源的策略示例](iam-auth-access-using-resource-based-policies.md)。

1. 在**指定应用程序凭证**页面，执行以下任一操作：
   + 要快速指定一个或多个 IAM 角色：

     1. 选择**输入一个或多个 IAM 角色**。

     1. 在**输入 IAM 角色**下，指定现有 IAM 角色的 Amazon 资源名称 (ARN)。要指定 ARN，请使用以下语法。由于 IAM 资源是全球资源，因此，ARN 的区域部分是空的。

        ```
          arn:aws:iam::account:role/role-name-with-path
        ```

        有关更多信息，请参阅*AWS Identity and Access Management 用户*指南 ARNs中的[使用基于资源的策略进行跨账户访问](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html#access_policies-cross-account-using-resource-based-policies)和 [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns)。
   + 要手动编辑策略（如果指定非AWS 凭据，则为必填项），请执行以下操作：

     1. 选择**编辑应用程序策略**。

     1. 在 JSON 文本框中键入或粘贴文本，修改策略。

     1. 解决策略验证过程中产生的任何安全警告、错误或常规警告。有关更多信息，请参阅 *AWS Identity and Access Management 用户指南*中的[验证 IAM 策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html)。

1. 选择**下一步**，进入下一页：[步骤 5：审核和配置](#customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-review-and-configure)。

## 步骤 5：审核和配置
<a name="customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2-review-and-configure"></a>

1. 在**审查和配置**页面中，审查您所做的选择。要进行更改，请选择所需的配置部分，选择**编辑**，然后进行所需的更改。

1. 完成后，选择**添加应用程序**。

1. 您添加的应用程序将显示在**客户托管的应用程序**列表中。

1. 在 IAM Identity Center 中设置客户托管的应用程序后 AWS 服务，必须指定一个或多个用于身份传播的受信任的应用程序。这样，用户就能够登录客户托管的应用程序，并访问可信应用程序中的数据。

   有关更多信息，请参阅 [指定可信的应用程序](trustedidentitypropagation-using-customermanagedapps-specify-trusted-apps.md)。

# 指定可信的应用程序
<a name="trustedidentitypropagation-using-customermanagedapps-specify-trusted-apps"></a>

[设置客户托管的应用程序](customermanagedapps-trusted-identity-propagation-set-up-your-own-app-OAuth2.md)后，必须为身份传播指定一个或多个可信 AWS 服务或可信应用程序。指定一项 AWS 服务，该服务包含客户托管应用程序的用户需要访问的数据。当您的用户登录客户托管的应用程序时，该应用程序会将用户的身份传递给可信的应用程序。

使用以下过程选择服务，然后为该服务指定要信任的单个应用程序。

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

1. 选择**应用程序**。

1. 选择**客户托管**选项卡。

1. 在**客户管理的应用程序**列表中，选择要发起访问请求的 OAuth 2.0 应用程序。这是用户要登录的应用程序。

1. 在**详细信息页面**的**用于身份传播的可信应用程序**下，选择**指定可信应用程序**。

1. 在**设置类型**下，选择**单个应用程序并指定访问权限**，然后选择**下一步**。

1. 在**选择服务**页面，选择拥有所需应用程序的 AWS 服务，客户托管的应用程序可以信任这些应用程序进行身份传播，然后选择**下一步**。

   您选择的服务定义了可以信任的应用程序。您将在下一个步骤中选择应用程序。

1. 在**选择应用程序**页面，选择**单个应用程序**，为每个可以接收访问请求的应用程序选择复选框，然后选择**下一步**。

1. 在**配置访问权限**页面的**配置方法**下，执行以下任一操作：
   + **选择每个应用程序的访问权限** - 选择此选项可为每个应用程序配置不同的访问权限级别。选择要为其配置访问权限级别的应用程序，然后选择**编辑访问权限**。在**要应用的访问权限级别**中，根据需要更改访问权限级别，然后选择**保存更改**。
   + **对所有应用程序应用相同的访问权限级别** - 如果不需要针对每个应用程序配置访问权限级别，请选择此选项。

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

1. 在**审查配置**页面中，审查您所做的选择。要进行更改，请选择所需的配置部分，选择**编辑访问权限**，然后进行所需的更改。

1. 完成后，选择**信任应用程序**。

# 通过可信令牌发布者使用应用程序
<a name="using-apps-with-trusted-token-issuer"></a>

可信令牌发行者使您能够在外部进行身份验证的应用程序中使用可信身份传播。 AWS通过可信令牌发行机构，您可以授权这些应用程序代表其用户提出访问 AWS 托管应用程序的请求。

以下主题介绍了可信令牌发布者的工作方式，并提供了设置指导。

**Topics**
+ [可信令牌发布者概述](#trusted-token-issuer-overview)
+ [针对可信令牌发布者的先决条件和注意事项](#trusted-token-issuer-prerequisites)
+ [JTI 声明详细信息](#trusted-token-issuer-configuration-jti-claim)
+ [可信令牌发布者的配置设置](trusted-token-issuer-configuration-settings.md)
+ [设置可信令牌发布者](setuptrustedtokenissuer.md)
+ [身份增强型 IAM 角色会话](trustedidentitypropagation-identity-enhanced-iam-role-sessions.md)

## 可信令牌发布者概述
<a name="trusted-token-issuer-overview"></a>

可信身份传播提供了一种机制，允许在外部进行身份验证的 AWS 应用程序使用可信令牌颁发者代表其用户发出请求。可*信令牌发行*者是创建签名令牌的 OAuth 2.0 授权服务器。这些令牌授权那些发起请求（请求应用程序）以访问 AWS 服务（接收应用程序）的应用程序。请求端应用程序代表经过可信令牌发布者验证身份的用户发起访问请求。可信令牌发布者和 IAM Identity Center 都知道这些用户。

AWS 服务 接收请求的用户根据身份中心目录中显示的用户和群组成员资格来管理对其资源的精细授权。 AWS 服务 不能直接使用来自外部令牌发行者的代币。

为了解决这个问题，IAM Identity Center 为请求端应用程序或请求端应用程序使用的 AWS 驱动程序提供了一种方法，将可信令牌发布者发布的令牌交换为 IAM Identity Center 生成的令牌。IAM Identity Center 生成的令牌指向相应的 IAM Identity Center 用户。请求端应用程序或驱动程序使用新令牌向接收端应用程序发起请求。由于新令牌引用了 IAM Identity Center 中的相应用户，因此接收端应用程序可以根据 IAM Identity Center 中显示的用户或其组成员资格，对请求的访问权限授权。

**重要**  
选择一个 OAuth 2.0 授权服务器添加为可信令牌发行者是一个需要仔细考虑的安全决定。仅选择您信任的可信令牌发布者执行以下任务：  
对令牌中指定的用户进行身份验证。
授权该用户访问接收端应用程序。
生成一个令牌，让 IAM Identity Center 可以将它交换成 IAM Identity Center 创建的令牌。

## 针对可信令牌发布者的先决条件和注意事项
<a name="trusted-token-issuer-prerequisites"></a>

在设置可信令牌发布者之前，请先查看以下先决条件和注意事项。
+ **可信令牌发布者的配置**

  您必须配置 OAuth 2.0 授权服务器（可信令牌颁发者）。尽管可信令牌发布者通常是您用作 IAM Identity Center 身份源的身份提供者，但也存在其他情况。有关如何设置可信令牌发布者的信息，请参阅相关身份提供者的文档。
**注意**  
您最多可以配置 10 个可信令牌发布者，将它们与 IAM Identity Center 搭配使用，为此，您只需将可信令牌发布者中每个用户的身份映射到 IAM Identity Center 中的相应用户即可。
+ 创建令牌的 OAuth 2.0 授权服务器（可信令牌颁发者）必须具有 [OpenID Connect (OIDC)](https://openid.net/specs/openid-connect-discovery-1_0.html) 发现端点，IAM Identity Center 可以使用该终端节点来获取用于验证令牌签名的公钥。有关更多信息，请参阅 [OIDC 发现端点 URL（发布者 URL）](trusted-token-issuer-configuration-settings.md#oidc-discovery-endpoint-url)。
+ **由可信令牌发布者颁发的令牌**

  来自可信令牌发布者的令牌必须满足以下要求：
  + 令牌必须使用 RS256算法进行签名并采用 [JSON 网络令牌 (JWT)](https://datatracker.ietf.org/doc/html/rfc7519#section-3) 格式。
  + 令牌必须包含以下声明：
    + [发布者](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1)（iss）– 颁发令牌的实体。此值必须与可信令牌发布者的 OIDC 发现端点（发布者 URL）中配置的值相匹配。
    + [主体](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.2)（sub）– 经过身份验证的用户。
    + [受众](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3)（aud）– 令牌的预期接收者。将令牌与来自 IAM Identity Center 的令牌交换后会访问的 AWS 服务 。有关更多信息，请参阅 [Aud 声明](trusted-token-issuer-configuration-settings.md#trusted-token-issuer-aud-claim)。
    + [到期时间](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.4)（exp）– 令牌到期的时间。
  + 令牌可以是身份令牌，也可以是访问令牌。
  + 令牌必须包含一个与一名 IAM Identity Center 用户具有唯一对应关系的属性。
**注意**  
不支持在 from JWTs 中Microsoft Entra ID使用自定义签名密钥。如果要将 Microsoft Entra ID 令牌与可信令牌发布者配合使用，请勿使用自定义签名密钥。
+ **可选声明**

  IAM Identity Center 支持 RFC 7523 中定义的所有可选声明。有关更多信息，请参阅此 RFC 的[第 3 节：JWT 格式和处理要求](https://datatracker.ietf.org/doc/html/rfc7523#section-3)。

  例如，令牌可以包含 [JTI (JWT ID) 声明](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.7)。此声明（如果存在）可以防止具有相同 JTI 的令牌被重复用于令牌交换。有关 JTI 声明的更多信息，请参阅 [JTI 声明详细信息](#trusted-token-issuer-configuration-jti-claim)。
+ **使 IAM Identity Center 与可信令牌发布者协同工作的配置**

  您还必须启用 IAM Identity Center，为 IAM Identity Center 配置身份源，并预置与可信令牌发布者目录中的用户对应的用户。

  为此，您必须执行以下任一操作：
  + 使用跨域身份管理系统 (SCIM) 2.0 协议，将用户同步到 IAM Identity Center。
  + 直接在 IAM Identity Center 创建用户。

## JTI 声明详细信息
<a name="trusted-token-issuer-configuration-jti-claim"></a>

如果 IAM Identity Center 收到交换令牌的请求，而该令牌已经被 IAM Identity Center 交换过，该请求将失败。要检测并防止重复使用令牌进行交换，您可以添加 JTI 声明。IAM Identity Center 可根据令牌中的声明，防止令牌被重放。

并非所有 OAuth 2.0 授权服务器都会向令牌添加 JTI 声明。某些 OAuth 2.0 授权服务器可能不允许您将 JTI 添加为自定义声明。 OAuth 支持使用 JTI 声明的 2.0 授权服务器可能会将此声明仅添加到身份令牌、仅限访问令牌或两者兼而有之。有关更多信息，请参阅 OAuth 2.0 授权服务器的文档。

 有关构建交换令牌的应用程序信息，请参阅 IAM Identity Center API 文档。有关配置客户托管应用程序以获取和交换正确令牌的信息，请参阅该应用程序的文档。

# 可信令牌发布者的配置设置
<a name="trusted-token-issuer-configuration-settings"></a>

以下各节描述了设置和使用可信令牌发布者所需的设置。

**Topics**
+ [OIDC 发现端点 URL（发布者 URL）](#oidc-discovery-endpoint-url)
+ [属性映射](#trusted-token-issuer-attribute-mappings)
+ [Aud 声明](#trusted-token-issuer-aud-claim)

## OIDC 发现端点 URL（发布者 URL）
<a name="oidc-discovery-endpoint-url"></a>

向 IAM Identity Center 控制台添加可信令牌发布者时，必须指定 OIDC 发现端点 URL。此 URL 通常是指其相对 URL，即 `/.well-known/openid-configuration`。在 IAM Identity Center 控制台，此 URL 称为*发布者 URL*。

**注意**  
必须粘贴发现端点 URL 中直至 `.well-known/openid-configuration` *前面的部分*。如果 `.well-known/openid-configuration` 包含在 URL 中，则可信令牌发布者配置将不起作用。因为 IAM Identity Center 不会验证此 URL，所以，如果 URL 的格式不正确，则可信令牌发布者的设置将失败，且不会发出通知。  
OIDC 发现端点 URL 只能通过端口 80 和 443 进行访问。

IAM Identity Center 使用此 URL 获取有关可信令牌发布者的其他信息。例如，IAM Identity Center 使用此 URL 获取所需的信息，以验证可信令牌发布者生成的令牌。向 IAM Identity Center 添加可信令牌发布者时，必须指定此 URL。要查找 URL，请参阅用于为应用程序生成令牌的 OAuth 2.0 授权服务器提供商的文档，或者直接联系提供商寻求帮助。

## 属性映射
<a name="trusted-token-issuer-attribute-mappings"></a>

IAM Identity Center 能够使用属性映射，将可信令牌发布者发布的令牌所代表的用户与 IAM Identity Center 中的单个用户相匹配。向 IAM Identity Center 添加可信令牌发布者时，您必须指定属性映射。此属性映射用于可信令牌发布者生成的令牌中的声明。声明中的值用于搜索 IAM Identity Center。搜索使用指定的属性检索 IAM Identity Center 中的单个用户，该用户将被用作 AWS中的用户。您选择的声明必须映射到 IAM Identity Center 身份存储中可用属性固定列表中的一个属性。您可以选择以下 IAM Identity Center 身份存储属性之一：用户名、电子邮件和外部 ID。对于每个用户，您在 IAM Identity Center 指定的属性值必须唯一。

## Aud 声明
<a name="trusted-token-issuer-aud-claim"></a>

*Aud 声明*将确定令牌的目标受众（接收者）。当请求访问权限的应用程序通过未联合到 IAM Identity Center 的身份提供商进行身份验证时，必须将该身份提供商设置为可信令牌发布者。接收访问请求的应用程序（接收端应用程序）必须将可信令牌发布者生成的令牌与 IAM Identity Center 生成的令牌交换。

有关如何获取接收端应用程序在可信令牌发布者处注册的受众声明值，请参阅可信令牌发布者的文档，或联系可信令牌发布者管理员寻求帮助。

# 设置可信令牌发布者
<a name="setuptrustedtokenissuer"></a>

要为在 IAM Identity Center 外部进行身份验证的应用程序启用可信身份传播，必须由一名或多名管理员设置可信令牌发布者。可信令牌颁发者是 OAuth 2.0 授权服务器，它向发起请求的应用程序（请求应用程序）发放令牌。令牌授权这些应用程序代表其用户向接收应用程序发起请求 (a AWS 服务)。

**Topics**
+ [协调管理角色和职责](#coordinating-administrative-roles-responsibilities)
+ [设置可信令牌发布者的任务](#setuptrustedtokenissuer-tasks)
+ [如何向 IAM Identity Center 控制台添加可信令牌发布者](#how-to-add-trustedtokenissuer)
+ [如何在 IAM Identity Center 控制台中查看或编辑可信令牌发布者设置](#view-edit-trusted-token-issuers)
+ [使用可信令牌发布者的应用程序的设置过程和请求流程](#setuptrustedtokenissuer-setup-process-request-flow)

## 协调管理角色和职责
<a name="coordinating-administrative-roles-responsibilities"></a>

在某些情况下，一名管理员可能会执行设置可信令牌发布者所需的所有必要任务。如果有多名管理员执行这些任务，则需要密切协调。下表描述了多个管理员如何协调设置可信令牌发行者并配置 AWS 服务以使用该令牌。

**注意**  
该应用程序可以是任何与 IAM Identity Center 集成并支持可信身份传播的 AWS 服务。

有关更多信息，请参阅 [设置可信令牌发布者的任务](#setuptrustedtokenissuer-tasks)。


****  

| 角色 | 执行这些任务 | 协调对象 | 
| --- | --- | --- | 
| IAM Identity Center 管理员 |  将外部 IdP 作为可信令牌发布者添加到 IAM Identity Center 控制台。 帮助在 IAM Identity Center 和外部 IdP 之间设置正确的属性映射。 当可信令牌颁发者添加到 IAM Identity Center 控制台时，通知 AWS 服务管理员。  |  外部 IdP（可信令牌发布者）管理员 AWS 服务管理员  | 
| 外部 IdP（可信令牌发布者）管理员 |  配置外部 IDP，以颁发令牌。 帮助在 IAM Identity Center 和外部 IdP 之间设置正确的属性映射。 向 AWS 服务管理员提供受众名称（Aud 声明）。  |  IAM Identity Center 管理员 AWS 服务管理员  | 
| AWS 服务管理员 |  检查 AWS 服务控制台中是否有受信任的令牌发行者。在 IAM Identity Center 管理员将其添加到 IAM Identity Center 控制台后，可信令牌发行者将在 AWS 服务控制台中可见。 将 AWS 服务配置为使用可信令牌发行者。  |  IAM Identity Center 管理员 外部 IdP（可信令牌发布者）管理员  | 

## 设置可信令牌发布者的任务
<a name="setuptrustedtokenissuer-tasks"></a>

要设置可信令牌发布者，IAM Identity Center 管理员、外部 IdP（可信令牌发布者）管理员和应用程序管理员必须完成以下任务。

**注意**  
该应用程序可以是任何与 IAM Identity Center 集成并支持可信身份传播的 AWS 服务。

1. 将@@ **可信令牌颁发者添加到 IAM Id** entity Center — IAM 身份中心管理员[使用 IAM 身份中心控制台添加可信令牌颁发者](#how-to-add-trustedtokenissuer)或[APIs](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_Operations.html)。此配置需要指定以下内容：
   + 可信令牌发布者的名称。
   + OIDC 发现端点 URL（在 IAM Identity Center 控制台中，此 URL 称为*发布者 URL*）。发现端点只能通过端口 80 和 443 进行访问。
   + 供用户查询的属性映射。此属性映射用于可信令牌发布者生成的令牌中的声明。声明中的值用于搜索 IAM Identity Center。搜索使用指定的属性检索 IAM Identity Center 中的单个用户。

1. 将@@ ** AWS 服务连接到 IAM Identit** y Center — AWS 服务管理员必须使用应用程序或应用程序的控制台将应用程序连接到 IAM 身份中心 APIs。

    将可信令牌颁发者添加到 IAM Identity Center 控制台后，它也会在 AWS 服务控制台中可见，可供 AWS 服务管理员选择。

1. **配置令牌交换的使用**-在 AWS 服务控制台中， AWS 服务管理员将 AWS 服务配置为接受可信令牌发行者发行的令牌。这些令牌将与 IAM Identity Center 生成的令牌交换。这需要指定步骤 1 中受信任的代币发行者的名称，以及与该 AWS 服务对应的澳元索赔值。

   受信任的代币发行者在其发行的代币中放置澳元索赔值，以表明该代币打算供该 AWS 服务使用。要获取此值，请联系可信令牌发布者管理员。

## 如何向 IAM Identity Center 控制台添加可信令牌发布者
<a name="how-to-add-trustedtokenissuer"></a>

在拥有多名管理员的组织中，此任务由 IAM Identity Center 管理员执行。如果您是 IAM Identity Center 管理员，则必须选择使用哪个外部 IdP 作为可信令牌发布者。

**要向 IAM Identity Center 控制台添加可信令牌发布者**

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

1. 选择**设置**。

1. 在**设置**页面上，选择**身份验证**选项卡。

1. 在**可信令牌发布者**下，选择**创建可信令牌发布者**。

1. 在**设置外部 IdP 以发布可信令牌**页面的**可信令牌发布者详细信息**下，执行以下操作：
   + 在**发布者 URL**中，指定将为可信身份传播发布令牌的外部 IdP 的 [OIDC 发现 URL](trusted-token-issuer-configuration-settings.md#oidc-discovery-endpoint-url)。必须指定发现端点 URL 中直至 `.well-known/openid-configuration` 前面的部分。外部 IdP 的管理员可以提供此 URL。
**注意**  
注意：此 URL 必须与为可信身份传播颁发的令牌中的发布者 (iss) 声明中的 URL 相匹配。
   + 在**可信令牌发布者名称**中，输入一个名称，以便在 IAM Identity Center 和应用程序控制台中识别该可信令牌发布者。

1. 在**映射属性**下，执行以下操作：
   + 对于**身份提供商属性**，从列表中选择一个属性，以映射到 IAM Identity Center 身份存储中的属性。
   + 对于 **IAM Identity Center** 属性，为属性映射选择相应的属性。

1. 在**标签（可选）**下，选择**添加新标签**，为**键**和**值**（可选）指定值。

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

1. 选择**创建可信令牌发布者**。

1. 创建完可信令牌发布者后，请联系应用程序管理员，告知他们可信令牌发布者的名称，以便他们可以确认可信令牌发布者在适用的控制台中可见。

1. 应用程序管理员必须在适用的控制台中选择此可信令牌发布者，才能允许用户从为可信身份传播配置的应用程序中访问其他应用程序。

## 如何在 IAM Identity Center 控制台中查看或编辑可信令牌发布者设置
<a name="view-edit-trusted-token-issuers"></a>

将可信令牌发布者添加到 IAM Identity Center 控制台后，您可以查看和编辑相关设置。

如果您计划编辑可信令牌发布者设置，请注意，这样做可能会导致用户无法访问任何配置为使用可信令牌发布者的应用程序。为避免中断用户访问，我们建议您在编辑设置之前，与配置为使用可信令牌发布者的应用程序管理员进行协调。

**要在 IAM Identity Center 控制台中查看或编辑可信令牌发布者设置**

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

1. 选择**设置**。

1. 在**设置**页面上，选择**身份验证**选项卡。

1. 在**可信令牌发布者**下，选择要查看或编辑的可信令牌发布者。

1. 选择**操作**，然后选择**编辑**。

1. 在**编辑可信令牌发布者**页面，根据需要查看或编辑设置。您可以编辑可信令牌发布者名称、属性映射和标签。

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

1. 在**编辑可信令牌发布者**对话框中，系统会提示您确认是否要进行更改。选择**确认**。

## 使用可信令牌发布者的应用程序的设置过程和请求流程
<a name="setuptrustedtokenissuer-setup-process-request-flow"></a>

本节介绍使用可信令牌发布者进行可信身份传播的应用程序的设置过程和请求流程。下图提供了此过程的概述。

![\[使用可信令牌发布者进行可信身份传播的应用程序的设置过程和请求流程\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/trusted-identity-propagation-trusted-token-issuer-request-flow.png)


以下步骤提供了有关此过程的更多信息。

1. 设置 IAM Identity Center 和接收 AWS 托管应用程序以使用可信令牌颁发者。有关信息，请参阅[设置可信令牌发布者的任务](#setuptrustedtokenissuer-tasks)。

1. 当用户打开请求端应用程序时，请求流程开始。

1. 发出请求的应用程序向可信令牌颁发者请求令牌，以向接收的 AWS 托管应用程序发起请求。如果用户尚未进行身份验证，此过程会触发身份验证流程。令牌包含以下信息：
   + 用户的主体 (Sub)。
   + IAM Identity Center 用于在 IAM Identity Center 查找相应用户的属性。
   + 受众 (Aud) 声明，其中包含可信令牌发布者与接收端 AWS 托管应用程序相关联的值。如果存在其他声明，IAM Identity Center 将不会使用它们。

1. 发出请求的应用程序或其使用的 AWS 驱动程序将令牌传递给 IAM Identity Center，并请求将该令牌交换为 IAM Identity Center 生成的令牌。如果您使用 AWS 驱动程序，可能需要为此用例配置驱动程序。有关更多信息，请参阅相关 AWS 托管应用程序的文档。

1. IAM Identity Center 使用 OIDC 发现端点获取可用于验证令牌真实性的公钥。然后，IAM Identity Center 会执行以下操作：
   + 验证令牌。
   + 搜索 Identity Center 目录。为此，IAM Identity Center 会使用令牌中指定的映射属性。
   + 验证用户是否被授权访问接收端应用程序。如果将 AWS 托管应用程序配置为要求向用户和组分配任务，则用户必须对应用程序进行直接分配或基于群组的分配；否则请求将被拒绝。如果 AWS 托管应用程序配置为不需要用户和组分配，则处理将继续进行。
**注意**  
AWS 服务具有默认设置配置，用于确定是否需要为用户和组进行分配。如果您计划将这些应用程序用于可信身份传播，我们建议不要修改它们的**需要分配**设置。即使您配置了允许用户访问特定应用程序资源的细粒度权限，修改**需要分配**设置也可能会导致意外行为，包括中断用户对这些资源的访问。
   + 验证发出请求的应用程序是否已配置为对接收的 AWS 托管应用程序使用有效的范围。

1. 如果前面的验证步骤成功，IAM Identity Center 将创建一个新令牌。新令牌是不透明（加密）的令牌，其中包括 IAM Identity Center 中相应用户的身份、接收 AWS 托管应用程序的受众 (Aud)，以及请求的应用程序在向接收 AWS 托管应用程序发出请求时可以使用的范围。

1. 请求端应用程序或其使用的驱动程序向接收端应用程序发起资源请求，并将 IAM Identity Center 生成的令牌传递给接收端应用程序。

1. 接收端应用程序调用 IAM Identity Center 获取用户身份和在令牌中编码的范围。它还可能请求从 Identity Center 目录中获取用户属性或用户的组成员资格。

1. 接收端应用程序使用其授权配置来确定用户是否得到授权，可访问所请求的应用程序资源。

1. 如果用户有权访问所请求的应用程序资源，接收端应用程序会对请求做出响应。

1. 用户的身份、代表他们执行的操作以及其他事件都记录在接收的应用程序日志和 CloudTrail 事件中。记录这些信息的具体方式因应用程序而异。

# 身份增强型 IAM 角色会话
<a name="trustedidentitypropagation-identity-enhanced-iam-role-sessions"></a>

[AWS Security Token Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html)（STS）使应用程序能够获得身份增强型 IAM 角色会话。身份增强型角色会话具有一个额外的身份上下文，该上下文将用户标识符带到它所调 AWS 服务 用的中。 AWS 服务 可以在 IAM Identity Center 中查找用户的群组成员资格和属性，并使用它们来授权用户访问资源。

AWS 应用程序通过向 AWS STS [AssumeRole](https://docs.aws.amazon.com//STS/latest/APIReference/API_AssumeRole.html)API 操作发出请求并在请求的`ProvidedContexts`参数中传递带有用户标识符 (`userId`) 的上下文断言来获取身份增强型角色会话。`AssumeRole`该上下文断言是从响应 [https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html](https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_CreateTokenWithIAM.html) `SSO OIDC` 请求而收到的 `idToken` 声明中获取的。当 AWS 应用程序使用身份增强型角色会话访问资源时，会 CloudTrail 记录`userId`、启动会话和采取的操作。有关更多信息，请参阅 [身份增强型 IAM 角色会话记录](#trustedidentitypropagation-identity-enhanced-iam-role-session-logging)。

**Topics**
+ [身份增强型 IAM 角色会话的类型](#types-identity-enhanced-iam-role-sessions)
+ [身份增强型 IAM 角色会话记录](#trustedidentitypropagation-identity-enhanced-iam-role-session-logging)

## 身份增强型 IAM 角色会话的类型
<a name="types-identity-enhanced-iam-role-sessions"></a>

AWS STS 可以创建两种不同类型的身份增强型 IAM 角色会话，具体取决于为请求提供的上下文断言。`AssumeRole`已从 IAM Identity Center 获取身份令牌的应用程序，可向 IAM 角色会话添加 `sts:identiy_context`（推荐）或 `sts:audit_context`（为向后兼容提供支持）。身份增强型 IAM 角色会话只能采用这些上下文断言中的一个，不能同时采用两者。

### 通过 `sts:identity_context` 创建的身份增强型 IAM 角色会话
<a name="role_session_sts_identity_context"></a>

当身份增强型角色会话包含 `sts:identity_context` 时，被调用的 AWS 服务 会决定资源授权是基于角色会话中代表的用户，还是基于角色。支持基于用户的授权的 AWS 服务 ，可为应用程序管理员提供向用户或用户所属组分配访问权限的控制。

AWS 服务 不支持基于用户的授权的，请忽略。`sts:identity_context` CloudTrail 记录 IAM Identity Center 用户的用户 ID 以及该角色采取的所有操作。有关更多信息，请参阅 [身份增强型 IAM 角色会话记录](#trustedidentitypropagation-identity-enhanced-iam-role-session-logging)。

要从中获取此类身份增强型角色会话 AWS STS，应用程序使用[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)请求参数在请求中提供该`sts:identity_context`字段的`ProvidedContexts`值。使用 `arn:aws:iam::aws:contextProvider/IdentityCenter` 作为 `ProviderArn` 的值。

有关授权行为的更多信息，请参阅接收 AWS 服务文档。

### 通过 `sts:audit_context` 创建的身份增强型 IAM 角色会话
<a name="role_session_sts_audit_context"></a>

过去`sts:audit_context`，用于启用 AWS 服务 记录用户身份，而不用它来做出授权决定。 AWS 服务 现在能够使用单一上下文-`sts:identity_context`-来实现这一目标并做出授权决定。我们建议在所有新的可信身份传播部署中使用 `sts:identity_context`。

## 身份增强型 IAM 角色会话记录
<a name="trustedidentitypropagation-identity-enhanced-iam-role-session-logging"></a>

向 AWS 服务 使用身份增强型 IAM 角色会话的用户发出请求时，用户的 IAM 身份中心`userId`将登录到该`OnBehalfOf`元素 CloudTrail 中。事件的登录方式 CloudTrail 因而异 AWS 服务。并非所有 AWS 服务 都会记录 `onBehalfOf` 元素。

以下是向 AWS 服务 使用身份增强角色会话发出的请求如何登录的示例。 CloudTrail

```
"userIdentity": {
      "type": "AssumedRole",
      "principalId": "AROAEXAMPLE:MyRole",
      "arn": "arn:aws:sts::111111111111:assumed-role/MyRole/MySession",
      "accountId": "111111111111",
      "accessKeyId": "ASIAEXAMPLE",
      "sessionContext": {
        "sessionIssuer": {
            "type": "Role",
            "principalId": "AROAEXAMPLE",
            "arn": "arn:aws:iam::111111111111:role/MyRole",
            "accountId": "111111111111",
            "userName": "MyRole"
        },
        "attributes": {
            "creationDate": "2023-12-12T13:55:22Z",
            "mfaAuthenticated": "false"
        }
    },
    "onBehalfOf": {
        "userId": "11111111-1111-1111-1111-1111111111",
        "identityStoreArn": "arn:aws:identitystore::111111111111:identitystore/d-111111111"
    }
}
```

# 轮换 IAM Identity Center 证书
<a name="managecerts"></a>

IAM Identity Center 使用证书在 IAM Identity Center 和您的应用程序服务提供商之间建立 SAML 信任关系。当您在 IAM Identity Center 中添加应用程序时，系统会自动创建一个 IAM Identity Center 证书，以便在设置过程中与该应用程序一起使用。默认情况下，此自动生成的 IAM Identity Center 证书的有效期为五年。

作为 IAM Identity Center 管理员，您有时需要将给定应用程序的旧证书替换为新证书。例如，当证书到期日期临近时，您可能需要更换证书。用新证书替换旧证书的过程称为*证书轮换*。

## 轮换证书之前的注意事项
<a name="rotatecertconsiderations"></a>

在开始在 IAM Identity Center 中轮换证书之前，请考虑以下事项：
+ 认证轮换过程要求您重新建立 IAM Identity Center 和服务提供商之间的信任。要重新建立信任，请使用 [轮换 IAM Identity Center 证书](rotatecert.md) 中提供的程序。
+ 向服务提供商更新证书可能会导致用户的服务暂时中断，直到成功重新建立信任为止。如果可能的话，请在非高峰时段仔细计划此操作。

# 轮换 IAM Identity Center 证书
<a name="rotatecert"></a>

轮换 IAM Identity Center 证书是一个多步骤过程，涉及以下内容：
+ 生成新证书
+ 将新证书添加到服务提供商的网站
+ 将新证书设置为活跃状态
+ 删除非活跃状态证书

按以下顺序使用以下所有过程来完成给定应用程序的证书轮换过程。

## 步骤 1：生成新证书
<a name="generate-new-certificate"></a>

可以将您生成的新 IAM Identity Center 证书配置为使用以下属性：
+ **有效期**——指定新 IAM Identity Center 证书到期之前分配的时间（以月为单位）。
+ **密钥大小**——确定密钥在加密算法中必须使用的位数。您可以将此值设置为 1024 位 RSA 或 2048 位 RSA。有关密码学中密钥大小的工作原理的一般信息，请参阅[密钥大小](https://en.wikipedia.org/wiki/Key_size)。
+ **算法**-指定 IAM Identity Center 在签署 SAML 断言/响应时使用的算法。您可以将此值设置为 SHA-1 或 SHA-256。 AWS 建议尽可能使用 SHA-256，除非您的服务提供商需要 SHA-1。有关密码算法工作原理的一般信息，请参阅[公钥](https://en.wikipedia.org/wiki/Public-key_cryptography)加密。

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

1. 选择**应用程序**。

1. 在应用程序列表中，选择要为其生成新证书的应用程序。

1. 在应用程序详细信息页面上，选择**配置**选项卡。在 **IAM Identity Center 元数据**下，选择**管理证书**。 如果您没有 “**配置**” 选项卡或配置设置不可用，则无需轮换此应用程序的证书。

1. 在 **IAM Identity Center 证书**页面上，选择**生成新证书**。

1. 在**生成新的 IAM Identity Center 证书**对话框中，为**有效期**、**算法**和**密钥大小**指定相应的值。然后选择**生成**。

## 步骤 2：更新服务提供商的网站
<a name="update-service-provider-website"></a>

使用以下步骤重新建立与应用程序服务提供商的信任。

**重要**  
当您将新证书上传到服务提供商时，您的用户可能无法通过身份验证。要纠正这种情况，请按下一步所述将新证书设置为活跃状态。

1. 在 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)中，选择您刚刚为其生成新证书的应用程序。

1. 在应用程序详细信息页面上，选择**编辑配置**。

1. 选择**查看说明**，然后按照特定应用程序服务提供商网站的说明添加新生成的证书。

## 步骤 3：将新证书设置为活跃状态
<a name="set-cert-active"></a>

一个应用程序最多可以分配两个证书。IAM Identity Center 将使用设置为活动状态的证书签署所有 SAML 断言。

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

1. 选择**应用程序**。

1. 在应用程序列表中，选择您的应用程序。

1. 在应用程序详细信息页面上，选择**配置**选项卡。在 **IAM Identity Center 元数据**下，选择**管理证书**。

1. 在 **IAM Identity Center 证书**页面上，选择要设置为活跃的证书，选择**操作**，然后选择**设置为活跃**。

1. 在**将所选证书设置为活跃状态**对话框中，确认您了解将证书设置为活动可能需要重新建立信任，然后选择**设为活跃**。

## 步骤 4：删除旧证书
<a name="delete-old-cert"></a>

使用以下过程完成应用程序的证书轮换流程。您只能删除处于**非活跃**状态的证书。

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

1. 选择**应用程序**。

1. 在应用程序列表中，选择您的应用程序。

1. 在应用程序详细信息页面上，选择**配置**选项卡。在 **IAM Identity Center 元数据**下，选择**管理证书**。

1. 在 **IAM Identity Center 证书**页面上，选择要删除的证书。选择**操作**，然后选择**删除**。

1. 在**删除证书**对话框中，选择**删除**。

# 证书过期状态指示器
<a name="certexpirationindicators"></a>

在 IAM Identity Center 控制台中，**应用程序**页面会在每个应用程序的属性中显示状态指示器图标。这些图标显示在列表中每个证书旁边的**到期时间**列中。下面介绍了 IAM Identity Center 用来确定每个证书显示哪个图标的标准。
+ **红色**——表示证书当前已过期。
+ **黄色**——表示证书将在 90 天或更短时间后过期。
+ **绿色**——表示证书当前有效，并且将至少再保持 90 天的有效期。

**检查证书的状态**

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

1. 选择**应用程序**。

1. 在应用程序列表中，按照**过期时间**列中所示查看列表中证书的状态。

# 了解 IAM Identity Center 控制台中的应用程序属性
<a name="appproperties"></a>

在 IAM Identity Center 中，您可以通过配置应用程序启动 URL、中继状态和会话持续时间来自定义用户体验。

## 应用程序启动 URL
<a name="starturl"></a>

您可以使用应用程序启动 URL来启动与应用程序的联合身份验证过程。典型用途是仅支持服务提供商 (SP) 发起的绑定的应用程序。

以下步骤和图表说明了当用户在 AWS 访问门户中选择应用程序时应用程序启动 URL 身份验证工作流程：

1. 用户的浏览器使用应用程序起始 URL 的值重定向身份验证请求（在本例中为 https://example.com）。

1. 应用程序向 IAM Identity Center 发送`HTML``POST`带有。`SAMLRequest`

1. 然后，IAM Identity Center 将 `HTML` `POST` 和 `SAMLResponse` 发送回应用程序。  
![\[该图显示了应用程序启动网址身份验证工作流程：用户在 AWS 访问门户中选择应用程序时的步骤。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/app_properties_start_url.png)

## 中继状态
<a name="relaystate"></a>

在联合身份验证过程中，中继状态重定向应用程序内的用户。对于 SAML 2.0，此值按原样传递给应用程序。配置应用程序属性后，IAM Identity Center 将中继状态值以及 SAML 响应发送到应用程序。

![\[该图显示了联合身份验证过程：中继状态、SAML 2.0、IAM Identity Center、应用程序接收响应。\]](http://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/images/app_properties_relay_state.png)


## 会话持续时间
<a name="sessionduration"></a>

会话持续时间是应用程序用户会话保持有效的时间长度。对于 SAML 2.0，此属性用于设置 SAML 断言元素 `saml2:AuthNStatement` 的 `SessionNotOnOrAfter` 日期。

应用程序可按以下任一方式解释会话持续时间：
+ 应用程序可以使用它来确定允许用户进行会话的最长时间。应用程序可能会生成持续时间较短的用户会话。当应用程序仅支持其持续时间短于已配置会话长度的用户会话时，可能会发生这种情况。
+ 应用程序可以使用它作为确切的持续时间，可能不允许管理员配置该值。当应用程序仅支持特定的会话长度时，可能会发生这种情况。

有关如何使用会话持续时间的更多信息，请参阅特定体应用程序的文档。

# 在 IAM Identity Center 控制台中为用户分配应用程序的访问权限
<a name="assignuserstoapp"></a>

您可以为用户分配对应用程序目录中的 SAML 2.0 应用程序或自定义 SAML 2.0 应用程序的单点登录访问权限。

 组分配的注意事项：
+ **直接向组分配访问权限。**为了帮助简化访问权限的管理，我们建议您将访问权限直接分配给组而不是单个用户。通过组，您可以向用户组授予或拒绝权限，而不是将这些权限应用于每个人。如果用户移至其他组织，则只需将该用户移至其他组即可。然后，用户会自动获得新组织所需的权限。
+ **不支持嵌套组。**在为应用程序分配用户访问权限时，IAM Identity Center 不支持将用户添加到嵌套组。如果用户被添加到嵌套组，他们可能会在登录期间收到“您没有任何应用程序”消息。必须针对用户所属的直属组进行分配。

**要分配用户或组对应用程序的访问权限**
**重要**  
对于 AWS 托管应用程序，您必须直接从相关的应用程序控制台中添加用户，或者通过添加用户 APIs。

1. 打开 [IAM Identity Center 控制台](https://console.aws.amazon.com/singlesignon)。
**注意**  
如果您在中管理用户 AWS Managed Microsoft AD，请确保 IAM Identity Center 控制台使用您的 AWS Managed Microsoft AD 目录所在的 AWS 区域，然后再采取下一步行动。

1. 选择**应用程序**。

1. 在应用程序列表中，选择要为其分配访问权限的应用程序名称。

1. 在应用程序详细信息页面上的**已分配用户**部分中，选择**分配用户**。

1. 在**分配用户**对话框中，输入用户的显示名称名或组名。您可以指定多个用户或组，方法是当其显示在搜索结果中时选择适用的帐户。

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

# 删除用户对 SAML 2.0 应用程序的访问权限
<a name="removeaccessfromapp"></a>

使用此过程删除用户对应用程序目录中 SAML 2.0 应用程序或自定义 SAML 2.0 应用程序的访问权限。有关身份验证会话和持续时间的更多信息，请参阅[了解 IAM Identity Center 中的身份验证会话](authconcept.md)。

**要从应用程序中删除用户访问权限**

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

1. 选择**应用程序**。

1. 在应用程序列表中，选择要删除用户访问权限的应用程序。

1. 在应用程序详细信息页面上的**已分配的用户**部分中，选择要删除的用户或组，然后选择**删除访问权限**按钮。

1. 在 **Remove access (删除访问权限)** 对话框中，检查相应的用户名或组名。然后选择 **Remove access (删除访问权限)**。

# 将应用程序中的属性映射到 IAM Identity Center 属性
<a name="mapawsssoattributestoapp"></a>

有些服务提供商需要自定义 SAML 断言来传递有关用户登录的其他数据。在这种情况下，请使用以下过程指定您的应用程序用户属性应如何映射到 IAM Identity Center 中的相应属性。

**将应用程序属性映射到 IAM Identity Center 中的属性**

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

1. 选择**应用程序**。

1. 在应用程序列表中，选择您要映射属性的应用程序。

1. 在应用程序的详细信息页面上，选择**操作**，然后选择**编辑属性映射**。

1. 选择**添加新属性映射**。

1. 在第一个文本框中，输入应用程序属性。

1. 在第二个文本框中，输入 IAM Identity Center 中您想要映射到应用程序属性的属性。例如，您可能希望将应用程序属性 **Username** 映射到 IAM Identity Center 用户属性 **email**。如需查看 IAM Identity Center 允许的用户属性列表，请参见 [IAM Identity Center 与外部身份提供者目录之间的属性映射](attributemappingsconcept.md) 中的表格。

1. 在表的第三列中，从菜单中为属性选择适当的格式。

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