AWS IAM (Identity and Access Management) 是亚马逊云的权限与安全核心,负责控制谁(身份)能在什么条件下哪些资源执行哪些操作,是所有 AWS 服务的安全基石AWS。


一、核心定位

  • 身份认证:验证用户 / 服务是否合法(登录、密钥)。
  • 权限授权:精确控制可访问的资源与操作。
  • 安全审计:记录所有 API 与控制台行为。
  • 免费服务:IAM 本身不收费,仅管控其他资源Amazon Web Services (AWS)。

二、四大核心组件

1. 根用户 (Root User)
  • 账户创建时自动生成,拥有所有权限AWS。
  • 严禁日常使用,仅用于初始化、支付、关闭账户AWS。
  • 必须开启 MFA,删除其 Access KeyAWS。
2. IAM 用户 (User)
  • 代表人或程序,有独立密码 / Access Key。
  • 用于登录控制台或 API 调用。
  • 禁止共享账号,一人一用户。
3. 用户组 (Group)
  • 用户的集合,批量管理权限。
  • 例:管理员组开发组运维组
  • 权限附加到组,用户继承权限。
4. IAM 角色 (Role)
  • 无固定凭证的临时身份Amazon Web Services(AWS)。
  • 用于AWS 服务间授权(如 EC2 访问 S3)Amazon Web Services。
  • 用于跨账户 / 联合身份临时权限Amazon Web Services(AWS)。
  • 自动颁发临时凭证(时效 15 分钟~12 小时)Amazon Web Services(AWS)。

三、策略 (Policy) —— 权限核心

JSON 文档,定义 "谁能做什么"。

json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": ["arn:aws:s3:::my-bucket"],
      "Condition": {"IpAddress": {"aws:SourceIp": "192.168.1.0/24"}}
    }
  ]
}
  • Version:固定为2012-10-17Amazon Web Services(AWS)。
  • EffectAllow / DenyAmazon Web Services(AWS)。
  • Action:允许 / 拒绝的 API(如ec2:StartInstances)Amazon Web Services(AWS)。
  • Resource:目标资源 ARNAmazon Web Services(AWS)。
  • Condition:附加条件(IP、MFA、时间等)Amazon Web Services(AWS)。

四、关键应用场景

1. EC2 实例访问其他服务
  • 在代码里写 Access KeyAmazon Web Services。
  • 为 EC2 赋予IAM 角色(如EC2-S3-ReadOnly)Amazon Web Services。
  • 实例自动获取临时凭证,安全访问 S3Amazon Web Services。
2. 跨账户访问
  • Account A 允许 Account B 的角色读取其 S3Amazon Web Services(AWS)。
  • 无需共享账号密钥Amazon Web Services(AWS)。
3. 控制台权限划分
  • 开发:仅访问 EC2/RDS,不能删资源Amazon Web Services (AWS)。
  • 财务:仅查看账单Amazon Web Services (AWS)。
  • 管理员:全权限(带 MFA)Amazon Web Services (AWS)。

五、安全最佳实践(必做)

  1. 禁用 / 删除根用户 Access KeyAWS
  2. 所有用户启用 MFA
  3. 最小权限原则:只给必要权限AWS
  4. 多用角色,少用用户 Access Key
  5. 用户分组授权,不单独授权
  6. 定期轮换密钥(≤90 天)
  7. CloudTrail 审计所有操作
  8. 用 IAM Access Analyzer检查权限漏洞Amazon Web Services (AWS)

六、与 EC2/RDS/DynamoDB 的关系

  • EC2:通过 IAM 角色获取服务权限Amazon Web Services。
  • RDS/DynamoDB
    • 控制台管理权限由 IAM 控制Amazon Web Services (AWS)。
    • 数据库内权限(如 MySQL 用户)独立于 IAMAmazon Web Services (AWS)。
    • 数据备份 / 导出到 S3 需 IAM 授权Amazon Web Services。

一句话总结IAM 是 AWS 的安全大门,管好用户、角色、策略,你的云资源才安全。

更多推荐