View a markdown version of this page

One-time 使用设置直接 IAM 联合应用程序 ADFS - Amazon IAM Identity Center
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

One-time 使用设置直接 IAM 联合应用程序 ADFS

本指南介绍了一次性设置过程,用于配置直接 IAM 联合身份验证,ADFS以便在 IAM Identity Center 不可用 Amazon Web Services 账户 时启用紧急访问权限。

先决条件

如果您计划ADFS使用 Amazon 托管 Microsoft AD 进行配置,我们建议您首先配置 Multi-Region 复制,然后在其他区域而不是主要区域中继续执行以下步骤,以实现弹性。

规划您的活动目录组命名惯例

使用特定的命名模式创建 AD 组,从而实现群组名称和 Amazon IAM 角色之间的自动匹配。

群组命名格式AWS-<AccountNumber>-<RoleName>

示例请参见 如何设计紧急角色、帐户和组映射 下图中的紧急帐户。当用户被分配到该组时,他们被授予对账户中EmergencyAccess_Role1_RO角色的访问权限123456789012。如果用户与多个群组关联,他们会看到可用角色列表, Amazon Web Services 账户 并可以选择要扮演的角色。

Amazon 配置

完整的设置包括紧急访问帐户和工作负载帐户中的配置。有关整体设置的说明,请参见如何设计紧急角色、帐户和组映射

创建 SAML 身份提供商

在紧急访问账户中,按照在 IAM 中创建 SAML 身份提供商中的步骤在 IAM 中创建 SAML 身份提供商。从您的ADFS服务器下载所需的元数据:

https://<yourADFSserverFQDN>/FederationMetadata/2007-06/FederationMetadata.xml

创建紧急访问角色

使用 SAML 2.0 Federation 作为可信实体类型,在紧急账户中@@ 创建紧急访问角色。选择您在上一步中创建的 SAML 2.0 提供商。

注意事项:

  • 包括您运营的所有区域 — 选择您拥有活跃工作负载的每个区域,以确保联合在区域中断期间保持可用。

  • 即使您在单个区域中运营,也至少配置一个额外的区域终端节点,例如,如果您仅在其中操作us-east-1,则添加us-west-2为辅助终端节点。即使没有任何工作负载,您也可以将 IdP 故障转移到 us-west-2 SAML 登录终端节点并仍然可以访问您的us-east-1资源。us-west-2

  • 同时启用非区域终端节点和区域终端节点 — 尽管非区域终端节点 (https://signin.aws.amazon.com/saml) 高度可用,但它托管在单个终端节点中 Amazon Web Services 区域us-east-1,而区域终端节点 (https://<region>.signin.aws.amazon.com/saml) 则通过减少对单个全球终端节点的依赖来提高弹性。

配置信任策略

有关具有多个登录区域终端节点的信任策略示例,请参阅。One-time 在中设置直接 IAM 联合应用程序 Okta将示例区域终端节点和 SAML 提供商 ARN 替换为您的终端节点和 SAML 提供商 ARN。

配置权限策略

有关附加到One-time 在中设置直接 IAM 联合应用程序 Okta紧急访问角色的权限策略示例,请参阅。

配置工作负载帐户角色

对于工作负载账户角色,请配置自定义信任策略,允许紧急访问账户中的紧急访问角色代入这些角色。请参阅信任策略示例,其中账户123456789012是紧急访问账户。One-time 在中设置直接 IAM 联合应用程序 Okta

活动目录配置

以下步骤描述了如何配置 Active Directory 以及如何ADFS进行紧急访问。

创建群组

根据前面描述的命名惯例在 Active Directory 中创建紧急群组(例如,AWS-123456789012-EmergencyAccess_Role1_RO)。通过现有的配置机制将用户分配到这些群组。

创建信赖方

ADFS联合需要信赖方配置。依赖方是 Amazon Security Token Service (Amazon STS),它将身份验证外包给ADFS身份提供者。

  1. 在ADFS管理控制台中,使用操作菜单并选择添加信赖方信任。添加信赖方时选择 “声明感知”。

  2. 对于联合元数据,请在 IAM 控制台上输入身份提供商元数据信息中的元数据 URL。例如:

    https://signin.aws.amazon.com/static/saml/SAMLSPXXXXXX/saml-metadata.xml

  3. 设置信赖方的显示名称(例如,Amazon 账户访问权限),然后选择下一步

  4. 选择要允许谁进行访问 Amazon。您可以选择特定群组并定义诸如 MFA 之类的要求。

  5. 在 “完成” 页上选择 “关闭” 以完成 “添加信赖方信任向导”。 Amazon 现在已配置为信赖方。

创建索赔规则

ADFS使用索赔规则语言在索赔提供者和依赖方之间发出和转换索赔。您需要创建四条声明规则:NameId、RoleSessionName、“获取广告组” 和 “ Amazon 访问角色”。

Right-click 在信赖方上,然后选择 “编辑索赔发放政策”。选择添加规则以添加规则。

1NameId.

  1. 选择 “转换传入的声明”,然后选择 “下一步”。

  2. 使用以下设置:

    • 声明规则名称:NameId

    • 收到的索赔类型:Windows Account Name

    • 发出的索赔类型:Name ID

    • 传出姓名 ID 格式:Persistent Identifier

    • 传递所有索赔值:已选中

  3. 选择确定

2。 RoleSessionName

  1. 选择添加规则

  2. 在声明规则模板列表中,选择将 LDAP 属性作为声明发送

  3. 使用以下设置:

    • 声明规则名称:RoleSessionName

    • 属性存储:Active Directory

    • LDAP 属性:E-Mail-Addresses

    • 发出的索赔类型:https://aws.amazon.com/SAML/Attributes/RoleSessionName

  4. 选择确定

3。获取广告组

  1. 选择添加规则

  2. 在 “索赔规则模板” 列表中,选择 “使用自定义规则发送索赔”,然后选择 “下一步”。

  3. 在声明规则名称中输入Get AD Groups,然后在自定义规则中输入以下内容:

    c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);

    此自定义规则使用声明规则语言中的脚本,该脚本检索经过身份验证的用户所属的所有群组,并将其置于名http://temp/variable为的临时声明中。

    注意

    确保尾部没有空格,以免出现意外结果。

4。角色属性

  1. 选择添加规则

  2. 在 “索赔规则模板” 列表中,选择 “使用自定义规则发送索赔”,然后选择 “下一步”。

  3. 在声明规则名称中输入Roles,然后在自定义规则中输入以下内容:

    c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-([\d]{12})"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-([\d]{12})-", "arn:aws:iam::$1:saml-provider/<ADFS>,arn:aws:iam::$1:role/"));

    此自定义规则使用正则表达式将表单AWS-<Account Number>-<Role Name>中的每个群组成员资格转换为预期的 IAM 角色 ARN 和 IAM 联合提供商 ARN 表单。 Amazon

    注意

    在上面的示例规则语言中,ADFS表示在身份提供商设置中给 SAML 身份提供商的 Amazon 逻辑名称。根据您在 IAM 控制台中为身份提供商选择的逻辑名称进行更改。

测试配置

通过进行身份验证来测试解决方案是否有效。https://<yourADFSserverFQDN>/adfs/ls/IdpInitiatedSignOn.aspx从站点的下拉列表中选择您创建的信赖方的名称。

更新中的默认 SAML 断言端点 ADFS

重要

在中配置信赖方信任时ADFS,SAML Assertion 端点默认为https://signin.aws.amazon.com/它不是全局终端节点,位于中。us-east-1我们建议您将默认终端节点修改为不同于 IAM Identity Center 弹性配置的区域终端节点。例如,如果您的 IAM 身份中心部署在中us-east-1并且您也在中进行操作us-west-2,请将默认 SAML Assertion 使用者终端节点更改为。https://us-west-2.signin.aws.amazon.com/saml

  1. 在信赖方信任上选择 “属性”,然后转到 “监控” 选项卡。清除 “自动更新信赖方” 复选框。

  2. 前往终端节点选项卡,选择您的首选登录端点,然后选择编辑

  3. 选中 “将可信 URL 设置为默认值” 复选框。选择 “确定” 和 “应用” 以使设置生效。

注意

大多数都 IdPs 允许您在需要之前停用应用程序集成。我们建议您在 IdP 中保持直接 IAM 联合身份验证应用程序处于停用状态,直到需要紧急访问为止。