核心组件与最小权限
- IAM 角色(Role):云平台中权限的载体——不为特定用户绑定,而是被信任实体(用户/服务/账户)通过 STS 临时 Assume。
- IAM 策略(Policy):JSON 文档定义 Allow/Deny 规则。须遵循最小权限原则——从零开始,逐步添加必需的 Action,而非用 s3:、ec2: 等通配符。
- 临时凭证(Temporary Credentials):通过 STS AssumeRole 获取短有效期访问密钥——避免长期 Access Key 硬编码带来的泄露风险。
- 权限边界(Permissions Boundary):为 IAM 实体设置权限上限——即使管理员授予更多权限,边界外操作仍被拒绝。
- 服务控制策略(SCP / Organizations Policy):在 AWS 组织级别定义成员账户的最大权限——即使账户管理员也无法超越 SCP 限制。
常见配置错误
- 通配符策略:在 Action 和 Resource 字段中使用 * 而非具体 ARN——一个 s3:* on * 的策略赋予所有 S3 桶的读写删除权限。
- 公开 S3 桶:Bucket Policy 或 ACL 设置允许 "Principal": "*" 或 "AuthenticatedUsers" 的公共访问。AWS 已于 2023 年默认阻止公开访问。
- 未轮换的长期 Access Key:嵌入代码或 CI/CD 环境变量中的 IAM User 长期密钥——一旦泄露(如通过 GitHub 公开仓库),攻击者可无限期利用。
- 过度信任外部角色:信任策略(Trust Policy)中允许任意外部 AWS 账户 Assume 角色——导致跨账户权限泄露。
- 未删除离职员工/废弃服务的 IAM 实体:「幽灵」用户和服务账户成为未监控的持久化后门。