View a markdown version of this page

一次性设置直接 IAM 联合应用程序 ADFS - AWS IAM Identity Center

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

一次性设置直接 IAM 联合应用程序 ADFS

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

先决条件

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

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

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

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

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

AWS 配置

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

创建 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) 高度可用,但它托管在单个终端节点中 AWS 区域us-east-1,而区域端点 (https://<region>.signin.aws.amazon.com/saml) 则通过减少对单个全球终端节点的依赖来提高弹性。

配置信任策略

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

配置权限策略

有关附加到在 Okta 中一次性设置直接 IAM 联合身份验证应用程序紧急访问角色的权限策略示例,请参阅。

配置工作负载帐户角色

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

活动目录配置

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

创建群组

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

创建信赖方

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

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

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

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

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

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

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

创建索赔规则

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

右键单击信赖方,然后选择 “编辑索赔发放政策”。选择添加规则以添加规则。

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 表单。 AWS

    注意

    在上面的示例规则语言中,ADFS表示在身份提供商设置中给 SAML 身份提供商的 AWS 逻辑名称。根据您在 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 联合身份验证应用程序处于停用状态,直到需要紧急访问为止。