IAM 策略与 Identity Center 权限集

DotID 提供两个不同但相互关联的授权层:**IAM 策略**(在 AdminCenter 中管理)和**权限集**(在 Identity Center 中管理)。理解两者的区别对于在 FlexGalaxy.AI 平台上设计访问控制至关重要。

概述

IAM 策略(AdminCenter)

权限集(Identity Center)

作用范围

单个账户

组织范围(跨账户)

目标主体

IAM 用户和组(服务身份)

IDC 用户和组(真实用户)

管理位置

AdminCenter (console.flexgalaxy.com/admincenter/)

组织控制台 (console.flexgalaxy.com/orgs/)

访问模型

直接附加到用户/组

账户分配(组 + 权限集 + 账户)

凭证类型

访问密钥(长期有效、编程访问)

临时会话凭证(短期有效、联合身份)

使用场景

单个账户内的服务间 API 访问

用户通过控制台访问多个账户

IAM 策略(AdminCenter)

IAM 策略存在于单个**账户**内,控制该账户中 **IAM 用户**(服务身份)和 **IAM 组**可以执行的操作。

核心概念:

  • 托管策略 — 可重用的命名策略文档,可附加到多个用户或组。平台托管策略(如 AdministratorAccess)为只读。参见 托管策略集

  • 内联策略 — 直接嵌入到特定用户或组的策略文档。不可重用,但适用于一次性权限。

  • 权限边界 — 一种高级防护机制,用于设定 IAM 用户或组可拥有的*最大*权限,不受其附加策略的影响。

可以将 IAM 策略理解为回答以下问题:

"这个服务用户在我的账户内可以做什么?"

权限集(Identity Center)

权限集属于**组织**,控制 **IDC 用户**(真实用户)访问任意成员账户时可以执行的操作。

权限集是一组 IAM 策略的集合。例如,AdministratorAccess 权限集包含 AdministratorAccess 托管 IAM 策略。

权限集不直接附加到用户,而是通过**账户分配**来授予:

Account Assignment = IDC Group + Permission Set + Target Account

Example:
  Group "Platform Admins"
    + Permission Set "AdministratorAccess"
    + Account "Production"
    ────────────────────────────
    = Members of "Platform Admins" get full admin access
      when they access the "Production" account

可以将权限集理解为回答以下问题:

"这个人访问那个账户时可以做什么?"

两者的关系

权限集和 IAM 策略是相互关联的,而非独立的:

Organization Level (Identity Center)
┌──────────────────────────────────────────────────────┐
│  Permission Set: "ReadOnlyAccess"                    │
│    ├── IAMReadOnlyAccess          (managed policy)   │
│    ├── OrganizationReadOnlyAccess (managed policy)   │
│    ├── AuditReadOnlyAccess        (managed policy)   │
│    └── QuotaCenterReadOnlyAccess  (managed policy)   │
│                                                      │
│  Account Assignment:                                 │
│    IDC Group "Auditors" ──┐                          │
│    Permission Set ────────┤                          │
│    Account "Production" ──┘                          │
└──────────────────────────────────────────────────────┘

Account Level (AdminCenter)
┌──────────────────────────────────────────────────────┐
│  IAM User: "ci-deploy-bot"                           │
│    ├── Attached: AdministratorAccess (managed policy) │
│    └── Inline: custom deploy permissions             │
│                                                      │
│  IAM Group: "monitoring-agents"                      │
│    └── Attached: AuditReadOnlyAccess (managed policy) │
└──────────────────────────────────────────────────────┘

**相同的托管 IAM 策略**(如 AdministratorAccessAuditReadOnlyAccess)在两个层级中都会出现:

  • 在 AdminCenter 中,它们直接附加到 IAM 用户/组。

  • 在 Identity Center 中,它们被打包到权限集中,然后通过账户分配分配给 IDC 组。

平台托管与客户自管

两个层级都区分**平台托管**和**客户自管**资源:

平台托管

客户自管

创建者

Platform (provisioned automatically)

账户管理员

可编辑

否(只读)

可删除

示例

AdministratorAccessIAMFullAccessReadOnlyAccess

DeveloperAccess、自定义权限集

平台托管资源使用哨兵 PLATFORM 账户(00000000-0000-0000-0000-000000000000)作为所有者,通过 Flyway 数据库迁移进行初始化。完整列表请参见 托管策略集

AWS 对照

对于熟悉 AWS 的用户:

概念

AWS 对应项

FlexGalaxy

IAM 策略

AWS IAM Policy

IAM 策略(AdminCenter)

IAM 用户

AWS IAM User

IAM 用户(服务身份)

权限集

IAM Identity Center Permission Set

权限集(Identity Center)

账户分配

Account Assignment

账户分配

IDC 用户

IAM Identity Center 用户

IDC 用户(真实用户)

AWS 托管策略

arn:aws:iam::aws:policy/...

平台托管策略(is_managed = true