📅 第12天 | AWS IAM — AWS 安全的支柱 🔐☁️
发布: (2025年12月12日 GMT+8 00:39)
3 min read
原文: Dev.to
Source: Dev.to
什么是 IAM?
IAM(身份与访问管理) 是 AWS 的安全系统。
它决定 谁可以访问什么 在你的 AWS 账户中。
把 IAM 想象成一名保安:
- 用户 – 需要访问的人员
- 角色 – 为 AWS 服务(EC2、Lambda、GitHub Actions、Terraform)提供的权限
- 策略 – 规定允许哪些操作的规则
- 组 – 团队权限
如何使用 IAM(分步指南)
1. 创建 IAM 用户(针对人员)
使用用户来进行人工访问,而不是自动化。
步骤
- 前往 AWS 控制台 → IAM → Users
- 点击 Create user
- 输入名称(例如
devops-user) - 附加权限(管理员或自定义)
- 创建登录凭证
- 启用 MFA(非常重要!)
目的: 以个人身份登录 AWS。
2. 创建组(针对团队)
组帮助为多个用户分配相同的权限。
示例
- DevOps‑Team
- Developers
- Admin‑Team
步骤
- IAM → User groups → Create group
- 附加通用策略
- 将用户添加到组中
3. 创建 IAM 角色(针对 AWS 服务)
角色由 机器 使用,而不是人。
示例
- EC2 实例角色
- Lambda 执行角色
- GitHub Actions OIDC 角色
- Jenkins 角色
- Terraform 角色
步骤
- IAM → Roles → Create role
- 选择一个服务(EC2、Lambda 等)
- 附加策略(S3、EC2、CloudWatch,…)
- 将角色关联到相应服务
使用场景
- EC2 可以通过角色读取 S3 对象
- GitHub Actions 使用角色部署到 AWS(无需访问密钥)
4. 附加策略(权限)
策略是定义允许操作的 JSON 文档。
示例策略
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
步骤
- IAM → Policies → Create policy
- 将策略附加到 用户、组 或 角色
5. 启用 MFA(提升安全)
MFA 在登录时提供强有力的保护。
步骤
- IAM → Users → Your user → Security credentials
- 点击 Assign MFA device
- 使用 Google Authenticator / Authy 扫描二维码
- 完成设置
6. 使用 IAM Access Analyzer
IAM Access Analyzer 能识别安全风险,例如公开的 S3 桶或权限过宽的策略。
步骤
- IAM → Access Analyzer
- 启用分析器
- 查看发现结果
- 修复权限过宽的策略
IAM 在 DevOps 中的应用场景
| 任务 | 是否需要 IAM | 示例 |
|---|---|---|
| CI/CD(GitHub Actions) | 是 | 带 OIDC 的角色 |
| Terraform | 是 | 带策略的 IAM 角色 |
| EC2 日志记录 | 是 | CloudWatch 角色 |
| S3 构件存储 | 是 | S3 访问策略 |
| EKS | 是 | 用于 Kubernetes 的 IAM 角色 |
| Jenkins 部署 | 是 | IAM 用户 / 角色 |
| 监控 | 是 | CloudWatch 权限 |
有用链接
- GitHub:
- Dev.to 博客:
- LinkedIn:
- 简历(Google Drive):