揭秘 IAM Identity Center 的两种模式:为什么我的控制台没有“权限集”?

51 阅读4分钟

大家好,今天我们来破解一个 IAM Identity Center 的“谜题”:为什么有时候登录进去,控制台功能齐全,有用户、组、AWS账户、权限集等所有选项;而有时候,却像下面这位朋友遇到的情况一样,只有用户、组和应用,关键的“权限集”和“AWS账户分配”功能消失了?

答案是,我们可能正在体验 IAM Identity Center 的两种不同“工作模式”之一。这并非 Bug,而是一种特性的体现,其根源在于它的预置方式 (Provisioning Method) 和我们在 AWS Organizations 中的角色。

image.png

模式一:账户预置模式 (Account Provisioning) - 中央集权的总司令部

这是 IAM Identity Center 最经典、最强大的使用模式。

  • 谁来管理: 通常在 AWS Organizations 的管理账户(Management Account) 或被授权的 委托管理员账户(Delegated Admin Account) 中启用和配置。
  • 控制台长什么样: 功能齐全!我们会看到包括 “AWS 账户” (AWS accounts)“权限集” (Permission sets) 在内的所有导航选项。
  • 核心目标: 集中管理对组织内所有或部分 AWS 账户的访问权限。管理员在这里创建用户/组,定义权限集(即权限模板),然后将它们“分配”给不同的 AWS 账户。这是实现跨账户单点登录(SSO)和集中化权限管理的核心。

可以把这个模式想象成公司的**“全球总部安保中心”**。它有权决定哪个部门(组)的员工(用户)可以进入哪栋大楼(AWS 账户),并授予他们不同的门禁卡权限(权限集)。

模式二:应用程序预置模式 (Application Provisioning) - 各司其职的分支机构

这就是子账号所处的情况。

  • 谁来管理: 可以在任何一个 AWS 成员账户 (Member Account) 中独立配置。
  • 控制台长什么样: 功能精简。我们只会看到 “用户” (Users)“组” (Groups)“应用程序” (Applications)。没有管理多账户权限的选项,因为它的职责范围就不是这个。
  • 核心目标:单个应用程序(可以是自定义应用,也可以是 AWS 托管的应用如 Amazon Managed Grafana, Amazon Redshift 等)与一个身份源(如 Okta, Azure AD, 或者 IAM Identity Center 自身的目录)集成,以实现该应用的单点登录。

可以把这个模式想象成公司某栋大楼里的一个**“独立门禁系统”**。它的任务就是管理能进入这个特定系统(我们的应用)的人员名单,而不管这些人是否能进入公司其他的大楼。

为什么会这样?一张图看懂

特性模式一:账户预置 (中央实例)模式二:应用预置 (成员账户实例)
配置位置管理账户委托管理员账户任何成员账户
核心目的集中管理多账户访问单个应用提供SSO
关键功能权限集 (Permission Sets), AWS账户分配只有用户、组、应用管理
管理范围整个 AWS Organization单个 AWS 账户内的应用
子账号情况我们不是管理员,或没登录到中央管理实例正处于子账号模式

该怎么办?

现在我们已经明白了原因,接下来的行动就很清晰了:

  1. 确认我们的位置: 我们当前所在的 AWS 账户是一个成员账户。我们看到的 IAM Identity Center 实例是为该账户内的某个特定应用服务的,而不是整个组织的中央身份枢纽。

  2. 找到“总司令部”: 如果我们的目标是获取对多个 AWS 账户(例如开发账户、测试账户)的访问权限,我们需要联系我们的云管理员IT部门

  3. 向管理员请求权限: 我们需要告诉管理员:

    • 我们的用户名是 dave
    • 我们属于 dev 组。
    • 请在组织的中央 IAM Identity Center 实例中,为 dev 组分配访问相应 AWS 账户的权限集

管理员会在他们的“全功能”控制台里,轻松地将 dev 组与 DeveloperAccess 权限集关联,并授权我们访问 Dev-Account-12345Test-Account-67890

操作完成后,我们访问 AWS 的方式会变为:登录中央的 AWS 访问门户 -> 看到授权给我们的所有账户列表 -> 选择账户和角色 -> 进入控制台。

结论:这不是我们的错,而是职责的分离

所以,别再困惑为什么我们的控制台“缺胳膊少腿”了。这恰恰体现了 AWS 设计的精妙之处——职责分离

  • 中央管理员负责宏观的、跨账户的权限战略。
  • 成员账户中的应用所有者可以聚焦于自己应用的身份集成,而无需关心复杂的组织级权限。

我们作为开发者或用户,只需要知道自己的身份在中央被管理,然后通过正确的入口(AWS 访问门户)去访问我们被授予的一切资源即可。