当前位置: 首页 > web >正文

从用户到权限:解密 AWS IAM Identity Center 的授权之道

大家好,今天我们来解决一个非常具体的实战问题:如何让 IAM Identity Center 中创建的用户真正获得 AWS 账户的操作权限,从而取代老旧的 IAM 用户管理模式?

如果我们盯着用户详情页,想找一个“附加角色”的按钮,那我们可能会失望。因为 IAM Identity Center 的魔法发生在更高一个层级。
在这里插入图片描述

核心理念:解耦“人”与“权限”

传统 IAM 用户模式下,“人”(用户)和“权限”(策略)是紧密绑定的。而在 IAM Identity Center 中,这个绑定被优雅地解开了,中间引入了两个关键概念:权限集 (Permission Sets)分配 (Assignments)

正确的流程是这样的:

  1. 用户和组 (Users & Groups):定义“谁是这个人”。我们已经完成了这一步,dave 是一个人,他属于 dev 这个组。
  2. 权限集 (Permission Sets):定义“可以做什么”。这就是 IAM Identity Center 里的“角色蓝图”。我们可以在这里创建一系列权限模板,比如 “数据库管理员权限”、“开发者只读权限”或“EC2完全访问权限”。
  3. 分配 (Assignments):将“谁”和“可以做什么”在具体的“哪个地方”(AWS 账户)连接起来。
实战步骤:三步完成授权

现在,让我们来完成从 dave 到实际权限的最后几步。

第 1 步:创建权限集 (Permission Set) - 我们的“权限模板”

这是最关键的一步。权限集定义了一套具体的权限,它在被分配到某个 AWS 账户时,IAM Identity Center 会自动在该账户中为我们创建一个对应的 IAM 角色。

  1. 在 IAM Identity Center 控制台的左侧导航栏中,找到并点击 “权限集” (Permission sets)
  2. 点击 “创建权限集” (Create permission set) 按钮。
  3. 我们有三个选择:
    • 使用 AWS 托管策略:最简单的方式。比如,我们可以选择 AdministratorAccessPowerUserAccess 策略来创建一个“管理员权限集”。
    • 复制现有权限集:如果我们已经有一个模板,可以复制并微调。
    • 自定义权限集:最灵活的方式。我们可以像创建普通 IAM 角色一样,内联编写 JSON 策略,或者附加多个 AWS 托管策略和自定义策略。

实用建议: 为我们的 dev 组创建一个名为 DeveloperAccess 的权限集。在自定义权限时,我们可以附加 AmazonEC2FullAccessAmazonS3ReadOnlyAccess 策略,以满足开发者的常见需求。

第 2 步:分配对 AWS 账户的访问权限 - 连接一切

现在,我们有了用户组 (dev) 和权限模板 (DeveloperAccess),是时候把它们应用到具体的 AWS 账户上了。

  1. 在 IAM Identity Center 控制台的左侧导航栏中,点击 “AWS 账户” (AWS accounts)。这里会列出我们 AWS Organization 中的所有账户。
  2. 勾选我们希望 dev 组能够访问的一个或多个 AWS 账户(例如,dev-account)。
  3. 点击 “分配用户或组” (Assign users or groups) 按钮。
  4. 在“用户和组”页签下,选择 dev,然后点击“下一步”。
  5. 在“权限集”页签下,勾选我们刚刚创建的 DeveloperAccess 权限集,然后点击“下一步”。
  6. 检查我们的分配(将 dev 组以 DeveloperAccess 权限分配到 dev-account),然后点击 “提交”

幕后发生了什么? 当我们点击提交后,IAM Identity Center 会自动在 dev-account 这个 AWS 账户中,创建一个名为 AWSReservedSSO_DeveloperAccess_xxxxxxxx 的 IAM 角色。这个角色的权限策略就是我们在权限集中定义的,并且其信任策略被精确地设置为信任我们的 IAM Identity Center 实例。

第 3 步:用户登录并使用权限

现在,用户 dave 的授权之旅已经完成!他可以:

  1. 访问我们公司的专属 AWS 访问门户 URL(形如 d-xxxxxxxxxx.awsapps.com/start)。
  2. 使用他的用户名 dave 和密码登录。
  3. 登录后,他会看到一个清晰的卡片,上面写着 dev-account
  4. 点击这个账户,如果他被分配了多个权限集(角色),他可以选择以 DeveloperAccess 的身份登录。
  5. 点击后,他就可以选择是通过“管理控制台”还是“命令行/API”获取访问凭证。选择控制台会直接将他无缝重定向到 dev-account 的 AWS 控制台,并已承担好对应的角色,无需再次输入密码。
结论:拥抱新范式

总结一下,我们不需要在用户 dave 的页面上寻找关联角色的地方。正确的做法是:

  1. 定义“权限蓝图” -> 创建 Permission Set
  2. 连接“人、权限、地点” -> 在 AWS Accounts 页面,将 GroupPermission Set 分配给目标账户。

这种方式极大地简化了多账户环境下的权限管理。当我们有新的开发者加入时,只需将他加入 dev 组,他就自动获得了所有已分配给该组的账户和权限,安全、高效且易于审计。这正是 IAM Identity Center 取代传统 IAM 用户的核心优势所在。

http://www.xdnf.cn/news/14799.html

相关文章:

  • 给定一个没有重复元素的数组,写出生成这个数组的MaxTree的函数
  • TDengine 如何使用 MQTT 采集数据?
  • lambda、function基础/响应式编程基础
  • [论文阅读] 软件工程 | 微前端在电商领域的实践:一项案例研究的深度解析
  • NLP中的同义词替换及我踩的坑
  • 创客匠人视角:创始人 IP 打造为何成为知识变现的核心竞争力
  • 【算法深练】单调栈:有序入栈,及时删除垃圾数据
  • 鸿蒙5:组件监听和部分状态管理V2
  • 为何需要防爆平板?它究竟有何能耐?
  • 【龙泽科技】新能源汽车故障诊断仿真教学软件【吉利几何G6】
  • 学习使用dotnet-dump工具分析.net内存转储文件(2)
  • vue-28(服务器端渲染(SSR)简介及其优势)
  • 舵机在不同类型机器人中的应用
  • Python 数据分析与可视化 Day 10 - 数据合并与连接
  • Linux的top指令CPU占用率详解(白话版)——Linux进阶常用知识点
  • 网络缓冲区
  • uni-app项目实战笔记26--uniapp实现富文本展示
  • 展开说说:Android之ContentProvider源码浅析
  • 机器学习算法-K近邻算法-KNN
  • Linux tcp_info:监控TCP连接的秘密武器
  • Day44 预训练模型
  • OpenCV图像添加水印
  • Python 数据分析与可视化 Day 9 - 缺失值与异常值处理技巧
  • 秘窟燃战.纷魄凌霄(第二集)
  • Re:从零开始的文件分配方式(考研向)
  • 深入浅出Java NIO:原理、实战与性能优化
  • FPGA在嵌入式图像处理中的深度应用!
  • Springboot多用户博客管理系统的设计与实现0ce8q(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 【大数据】大数据产品基础篇
  • 微信小程序:实现树形结构组件