AWS IAM 考试频率 ⭐⭐⭐⭐⭐

AWS IAM

AWS Identity and Access Management

securityAWS IAMAWS
最近整理

先确认你是谁,再通过策略决定你能对哪些资源做什么。

基本信息

字段内容
英文AWS IAM
全称AWS Identity and Access Management
中文释义身份与访问管理
日文释义AWS IAM(アイデンティティとアクセス管理)
考试频率⭐⭐⭐⭐⭐
易混淆Root User / IAM User / IAM Role / IAM Identity Center / Managed Policy / Inline Policy

一句话理解

先确认“你是谁”,再通过 Policy 决定“你能对哪些 Resource 做什么”。

身份对象

  • Root User 是账户固有身份,不是 IAM User,只用于账户恢复与少数 Root-only Tasks。
  • IAM User 是账户内的长期身份,可拥有 Console Password 或 Access Key。
  • Group 只能包含 User,不能嵌套 Group;一个 User 可加入多个 Group。
  • Role 是可被可信主体 Assume 的权限身份,提供会到期的临时凭证。
  • 员工多账户访问优先 IAM Identity Center / Federation,工作负载优先 Role。

Password Policy 与 MFA

IAM Password Policy 只控制 IAM User Console Password 的长度、字符、到期与重用,不控制 Root Password、Access Key 或 Identity Center Password。

MFA 增强 Authentication,本身不授予 Authorization。Passkey / Security Key 提供抗钓鱼 FIDO 认证,Virtual MFA 使用 Authenticator App 生成 TOTP。QR Code / Secret Configuration Key 可生成 TOTP,必须作为敏感凭证保护。

Console、CLI 与 SDK

方式常见认证与凭证适合场景
ConsolePassword + MFA,或 SSO / Federation Session人工探索与管理
CLIIdentity Center、AssumeRole、Profile、Workload Role命令、脚本、批量任务
SDKCredential Provider Chain应用代码调用 AWS API

aws configure 只保存 Profile 的 Access Key、默认 Region 与输出格式,不创建权限。CloudShell 自动使用当前 Console 身份的临时凭证,也不会扩大该身份权限。

Access Key 与临时凭证

  • 长期凭证:Access Key ID + Secret Access Key,通常属于 IAM User,不自动到期。
  • 临时凭证:再增加 Session Token,并有到期时间。
  • Secret Access Key 只显示一次,丢失时创建并验证新 Key,再停用和删除旧 Key。
  • 不共享、不硬编码、不放入源码、镜像、脚本或公开仓库。
  • CLI / SDK 并不要求长期 IAM User Key;人员和工作负载都优先临时凭证。

Policy JSON

元素作用考试提醒
VersionPolicy Language Version通常为 2012-10-17,不是修改日期
Statement一条或多条授权语句权限规则容器
Sid可选语句标识本身不授权
EffectAllow / Deny显式 Deny 优先
Principal规则面向的主体Identity-based Policy 不写
ActionAWS API 操作例如 s3:GetObject
Resource资源 ARN可精确时避免 *
Condition可选请求条件可检查 MFA、IP、Tag、Organization

Policy 类型与权限来源

Managed Policy 可复用并附加给 User、Group、Role;Inline Policy 可嵌入单个 User、Group、Role,并随身份删除。User 权限可能来自 Directly attached、Via group 或 Inline Policy,移出 Group 只撤销该 Group 带来的继承权限。

评估逻辑

  1. 默认是 Implicit Deny。
  2. AWS 汇总适用的 Identity、Resource、Boundary、Session 与 SCP 等规则。
  3. 需要存在适用 Allow 且没有适用 Explicit Deny。
  4. 任一适用 Explicit Deny 都覆盖 Allow。
  5. Permissions Boundary、Session Policy 与 SCP 只限制上限,不独立授权。

高频陷阱

  • Authentication 成功不代表 Authorization 允许。
  • iam:Get* / iam:List* 匹配 Action 名称;Resource: "*" 匹配资源范围。
  • IAMReadOnlyAccess 不允许 Create / Update / Delete。
  • IAMFullAccess 只管理 IAM,不等于 AdministratorAccess。
  • Policy 出现在 User 页面不代表一定直接附加,可能来自 Group。
  • Group 不能登录、不能被 Assume,也不能作为 Principal。

重点记忆

Group 不能嵌套;User 可加入多个 Group;Policy 表达权限;人优先 SSO,服务用 Role;默认拒绝、显式拒绝优先。

IAM Role、Instance Profile 与 PassRole

组成回答的问题关键点
Trust Policy谁可以 AssumeRole?可信任 AWS Service、Account、User、Role 或 Federated Principal
Permissions Policy代入 Role 后能做什么?只授予必要的 Action 与 Resource
STS Temporary Credentials怎样签名 API 请求?包含 Access Key ID、Secret Access Key、Session Token 与到期时间

EC2 通过 Instance Profile 使用 Role。Instance Profile 是把一个 IAM Role 交给 EC2 的容器;一个 Instance Profile 同时只能包含一个 Role,实例内的 CLI / SDK 会通过 IMDS 自动取得并轮换临时凭证。创建 Role 不等于实例已经使用它,还必须把相应 Instance Profile 关联到 EC2。

iam:PassRole 允许调用者把指定 Role 交给 AWS Service;它不等于调用者自己执行 AssumeRole。生产环境应同时限制可传递的 Role 与目标服务。

IAM 安全审查工具

工具主要回答
Credentials ReportIAM User 的 Password、Access Key、MFA 状态如何?
Access Advisor / Last Accessed身份或 Policy 允许访问什么,最后何时访问?
Access Analyzer是否存在外部、内部、未使用访问或 Policy 风险?
Policy Simulator某 Principal 对某 Resource 的 Action 会 Allow 还是 Deny?

Last Accessed 不是完整实时审计日志;收紧权限前要结合业务周期与 CloudTrail。凭证盘点、使用时间、访问路径、请求模拟和真实 API 记录各自解决不同问题。

凭证生命周期与现代身份

人员默认使用 IAM Identity Center / Federation,AWS Workload 默认使用 Role。长期 Key 只用于无法采用临时凭证的兼容场景,并按“新建、更新验证、停用、删除”的顺序轮换。

Credentials Report 是包含 Root Account 行与 IAM Users 的账户级 CSV,可审查 Password、MFA、两把 Access Key、签名证书及最后使用 / 轮换信息;不包含 Role 临时凭证或服务专用凭证。Access Advisor 可查看 User、Group、Role、Policy 的 Service / Action 最后访问时间并追踪权限来源。