跳到主要内容

IAM

IAM(Identity and Access Management)页面可一目了然地查看 AWS 账户的用户、角色和策略。这是仅限 admin 的页面,只有在 data/config.jsonadminEmails 中注册的用户才能访问。

IAM
仅限 Admin

进入页面时通过 /awsops/api/steampipe?action=admin-check 验证权限。普通用户会看到 Access Denied 界面。由于 IAM 用户/角色/策略属于敏感信息,这是有意的行为。

多账户行为

在多账户环境中,可通过侧边栏的 AccountSelector 切换目标账户。数据表格检测到 data[0].account_id 时会自动添加 Account 列,并以 AccountBadge 显示别名+彩色圆点。

主要功能

摘要统计

在页面顶部可以查看 IAM 资源现状:

  • Users:IAM 用户总数
  • Roles:IAM 角色总数
  • Custom Policies:客户管理型策略数
  • MFA Not Enabled:未启用 MFA 的用户数
MFA 安全建议

如果存在未启用 MFA 的用户,顶部会显示警告横幅。建议为所有 IAM 用户启用 MFA。

MFA 状态图表

以饼图可视化 MFA 启用现状:

  • 绿色:已启用 MFA 的用户
  • 红色:未启用 MFA 的用户

IAM 用户列表

以表格形式显示所有 IAM 用户:

说明
Username用户名
User IDAWS 分配的唯一 ID
Created用户创建日期
Password Last Used最后一次密码使用日期(控制台登录)

用户详情

在表格中点击用户后,可在滑出面板中查看详细信息:

  • 用户名、ID、ARN
  • 路径(Path)
  • 创建日期及最后一次密码使用日期
  • 标签信息

IAM 角色列表

以表格形式显示所有 IAM 角色:

说明
Role Name角色名称
Role IDAWS 分配的唯一 ID
Path角色路径
Description角色说明
Created角色创建日期
Max Session最大会话持续时间

角色详情

在表格中点击角色后,可以查看详细信息:

基本信息

  • 角色名称、ID、ARN、路径
  • 说明及创建日期
  • 最大会话持续时间
  • 权限边界(Permissions Boundary)ARN

最后使用信息

  • 最后使用日期时间
  • 最后使用区域

实例配置文件

  • 关联的实例配置文件 ARN 列表

信任策略

  • 以 JSON 形式显示 AssumeRolePolicyDocument
  • 确认哪些实体(服务、账户、用户)可以代入此角色
信任策略分析

信任策略定义了可以代入(Assume)角色的主体。请在 Principal 字段中确认被允许的服务、账户 ID 和用户 ARN。

数据刷新

点击右上角的刷新按钮,会以 bustCache=true 使 5 分钟缓存失效并查询最新数据。

查询结构

页面调用的 SQL 查询(src/lib/queries/iam.ts):

查询键用途
summaryUsers / Roles / Custom Policies / MFA Not Enabled 计数
userList用户列表 + account_id 列
roleList角色列表 + account_id 列
userDetail点击时的动态 SQL(名称替换)
roleDetail点击时的动态 SQL — 包含信任策略 + 实例配置文件
规避 SCP 阻断列

mfa_enabledattached_policy_arns 已从列表查询中排除(应对组织 SCP 阻断 ListMFADevicesListAttachedUserPolicies 的环境)。MFA 统计在单独的 summary 查询中汇总。

相关页面

  • Security — Public S3、Open SG、未加密 EBS 等综合安全诊断
  • Compliance — CIS 基准(包含大量 IAM 控制项)
  • Accounts — 添加账户 + Department(Cognito 组)管理

参考

  • src/lib/queries/iam.ts — SQL 查询定义
  • ADR-024:仅限 admin 页面门控(adminEmails 矩阵)