委派管理 - AWS IAM Identity Center

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

委派管理

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

启用委派管理具有以下优势:

  • 最大限度地减少需要访问管理帐户的人员数量,以帮助缓解安全问题

  • 允许选定的管理员将用户和组分配给应用程序和组织的成员帐户

有关 IAM 身份中心如何使用的更多信息 AWS Organizations,请参阅AWS 账户 访问。要了解更多信息并查看展示如何配置委派管理的公司情景的示例,请参阅AWS 安全博客中的开始使用 IAM Identity Center 委派管理

最佳实践

在配置委托管理之前,需要考虑以下最佳实践:

  • 向管理帐户授予最小权限 – 我们知道管理帐户是一个高权限帐户,为了遵守最小权限原则,我们强烈建议您将管理帐户的访问权限限制为尽可能少的人。委派管理员功能旨在最大限度地减少需要访问管理帐户的人数。您也可以考虑使用临时提升的访问权限,仅在需要时才授予此访问权限。

  • 管理账户@@ 的专用权限集-使用管理账户的专用权限集。出于安全考虑,用于访问管理账户的权限集只能由 IAM Identity Center 管理员通过管理账户进行修改。委派的管理员无法更改管理账户中配置的权限集。

  • 仅向管理账户中的权限集分配用户(而非群组)-由于管理账户具有特殊权限,因此在控制台或 AWS Command Line Interface (CLI) 中为该账户分配访问权限时必须谨慎行事。如果您将群组分配给有权访问管理帐户的权限集,则有权修改这些群组中成员资格的任何人都可以 add/remove 使用 to/from 这些群组,从而影响谁有权访问管理帐户。这是任何可以控制您的身份源的群组管理员,包括您的身份提供商 (IdP) 管理员、Microsoft Active Directory 域服务 (AD DS) 管理员或 IAM 身份中心管理员。因此,您应该将用户直接分配给权限集,以便在管理账户中授予访问权限,并避免使用群组。如果您确实使用群组来管理账户的访问权限,请确保在 IdP 中设置了适当的控制措施,以限制谁有权修改这些群组,并确保在必要时记录和审查对这些群组的更改(或对管理账户中用户的凭据的更改)。

  • 考虑您的 Active Directory 位置 – 如果您计划使用 Active Directory 作为 IAM Identity Center 身份源,请在启用了 IAM Identity Center 委派管理员功能的成员帐户中找到该目录。如果您决定将 IAM 身份中心身份源从任何其他来源更改为 Active Directory,或者将其从 Active Directory 更改为任何其他来源,则该目录必须位于 IAM Identity Center 委托的管理员成员账户中。如果您想让 Active Directory 位于管理账户中,则必须在管理账户中执行设置,因为授权的管理员没有完成设置所需的权限。

使用外部身份源限制委托管理账户中的 IAM Identity Center 身份存储操作

如果您使用外部身份源(例如 IdP 或) AWS Directory Service,则应实施策略,限制 IAM Identity Center 管理员可以在委托的管理账户中执行的身份存储操作。应仔细考虑写入和删除操作。通常,外部身份源是用户及其属性和群组成员资格的真实来源。如果您使用身份存储 APIs 或控制台修改这些内容,则在正常同步周期中,您的更改将被覆盖。最好让这些操作完全由你的身份真相来源控制。这还可以防止 IAM Identity Center 管理员修改群组成员资格以授予对群组分配的权限集或应用程序的访问权限,而不是将群组成员资格控制权留给您的 IdP 管理员。您还应该警惕谁可以从委托的管理账户创建 SCIM 持有者令牌,因为这可能使成员账户管理员能够通过 SCIM 客户端修改群组和用户。

有时候,从委托的管理员账户中执行写入或删除操作是合适的。例如,您可以在不添加成员的情况下创建群组,然后无需等待 IdP 管理员创建群组即可分配权限集。在 IdP 管理员配置群组并且 IdP 同步过程建立群组成员之前,任何人都无法访问该任务。当你无法等待 IdP 同步过程来删除用户或群组的访问权限时,删除用户或群组以阻止登录或授权,也可能是恰当的。但是,滥用此权限可能会对用户造成干扰。在分配身份存储权限时,应使用最低权限原则。您可以使用服务控制策略 (SCP) 控制委派的管理账户管理员允许哪些身份存储操作。

下面的示例 SCP 可防止通过 Identity Store API 将用户分配到群组 AWS Management Console,当您的身份源为外部时,建议使用此方法。这不会影响用户与外部 IdP 的同步(通过 SCIM)。 AWS Directory Service

注意

尽管您使用外部身份源,但您的组织可能完全或部分依赖Identity Stor APIs e来配置用户和群组。因此,在激活此 SCP 之前,您应确认您的用户配置过程未使用此 Identity Store API 操作。此外,有关如何将群组成员资格的管理限于特定群组的信息,请参阅下一节。

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

如果您想防止仅向授予管理账户访问权限的群组添加用户,则可以使用群组 ARN 引用这些特定群组,格式如下:。arn:${Partition}:identitystore:::group/${GroupId}该资源类型以及身份存储中可用的其他资源类型记录在《服务授权参考》中 Ident AWS ity Store 定义的资源类型中。您也可以考虑在 SCP APIs 中添加其他身份存储。有关更多信息,请参阅《身份存储 API 参考》中的操作

通过将以下政策声明添加到您的 SCP 中,您可以阻止委托管理员创建 SCIM 不记名令牌。您可以将此应用于两个外部身份源。

注意

如果您的委托管理员需要使用 SCIM 设置用户配置,或者定期执行 SCIM 持有者令牌轮换,则需要暂时允许访问此 API,以允许委托的管理员完成这些任务。

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

限制本地托管用户在委托管理账户中的 IAM Identity Center 身份存储操作

如果您直接在 IAM Identity Center 中创建用户和群组,而不是使用外部 IdP 或 AWS Directory Service,则应注意谁可以创建用户、重置密码和控制群组成员资格。这些操作赋予管理员很大的权限,可以决定谁可以登录,谁可以通过群组成员资格获得访问权限。这些策略最好在您用于 IAM Identity Center 管理员的权限集内作为内联策略来实施,而不是按 SCPs照。以下示例内联策略有两个目标。首先,它可以防止将用户添加到特定群组。您可以使用它来防止委派管理员将用户添加到授予管理账户访问权限的群组中。其次,它阻止了SCIM持有者代币的发行。

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

将 IAM 身份中心配置管理与管理分开 PermissionSet

通过创建与您的管理账户不同的管理员权限集,将管理任务(包括修改外部身份源、SCIM 令牌管理、会话超时配置)与创建、修改和分配权限集的任务分开。

限制 SCIM 不记名代币的发行

当您的 IAM 身份中心的身份源是外部 IdP(例如 Okta 或 Entra ID)时,SCIM 持有者令牌允许外部身份源通过 SCIM 协议配置用户、群组和群组成员资格。您可以设置以下 SCP 以防止委托管理员创建 SCIM 不记名令牌。如果您的委托管理员需要使用 SCIM 设置用户配置,或者定期执行 SCIM 持有者令牌轮换,则需要暂时允许访问此 API,以允许授权的管理员完成这些任务。

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

使用权限集标签和账户列表来委托对特定账户的管理

您可以创建分配给 IAM Identity Center 管理员的权限集,以委托谁可以创建权限集,以及谁可以在哪些账户中分配哪些权限集。这是通过标记权限集并在分配给管理员的权限集中使用策略条件来完成的。例如,您可以创建权限集,使用户能够创建权限集,前提是这些权限集是以某种方式标记的。您还可以创建策略,使管理员能够分配在指定账户中具有特定标签的权限集。这可以帮助您委托账户管理,而无需向管理员提供修改其对委派管理账户的访问权限和权限的权限。例如,通过标记仅在委派管理账户中使用的权限集,您可以指定一个策略,该策略仅向某些人授予修改影响委派管理帐户的权限集和分配的权限。您还可以向其他人授予管理委派管理账户之外的账户列表的权限。要了解更多信息,请参阅AWS 安全博客 AWS IAM Identity Center中的委托权限集管理和帐户分配

先决条件

在将帐户注册为委派管理员之前,必须先部署以下环境:

  • AWS Organizations 除了您的默认管理账户外,还必须启用并配置至少一个成员帐户。

  • 如果您的身份源设置为 Active Directory,则必须启用 IAM Identity Center 可配置 AD 同步 功能。