AWS IAM

安全控制 AWS 资源访问的认证与授权服务,通过用户、组、角色和策略提供精细的访问管理

概述

AWS Identity and Access Management (IAM) 是安全管理 AWS 资源访问的服务。通过创建 IAM 用户、组和角色,以 JSON 格式策略定义访问权限,精细控制「谁」可以对「哪些资源」执行「什么操作」。IAM 无额外费用,标准内置于所有 AWS 账户。具备多因素认证 (MFA) 强制、密码策略设置、访问密钥轮换等安全功能。使用 IAM 角色可为 EC2 实例或 Lambda 函数授予临时凭证,无需管理长期访问密钥。IAM Access Analyzer 自动检测可从外部访问的资源,识别非预期的访问许可。

策略设计的最佳实践与最小权限原则

IAM 策略设计的核心是最小权限原则 - 仅授予完成任务所需的最小权限。策略由 Effect (Allow/Deny)、Action (API 操作)、Resource (目标资源 ARN)、Condition (附加条件) 组成。实务中推荐从 AWS 托管策略开始,逐步收紧为自定义策略。IAM Access Analyzer 的策略生成功能可基于 CloudTrail 日志中的实际 API 调用历史自动生成最小权限策略。Condition 元素可实现基于 IP 地址、时间、MFA 状态、标签等的条件访问控制。权限边界 (Permissions Boundary) 可设置 IAM 实体可拥有的最大权限上限,防止权限提升。

角色与临时凭证的活用

IAM 角色是 IAM 的核心概念之一,提供无需长期凭证的安全访问方式。EC2 实例配置文件、Lambda 执行角色、ECS 任务角色等通过 STS (Security Token Service) 获取临时凭证,自动轮换无需管理。跨账户访问通过 AssumeRole 实现,在信任策略中指定允许承担角色的主体。服务链接角色 (Service-Linked Role) 是 AWS 服务自动创建和管理的角色,具有该服务运行所需的预定义权限。实务中应避免使用 IAM 用户的长期访问密钥,尽可能使用角色和临时凭证。

多账户环境中的 IAM 治理

Organizations 环境中,服务控制策略 (SCP) 在组织级别设置权限护栏,限制成员账户可执行的操作。SCP 与 IAM 策略的交集决定最终有效权限。IAM Identity Center (原 AWS SSO) 提供跨多账户的集中访问管理,通过权限集 (Permission Set) 统一定义各账户的角色。CloudTrail 记录所有 IAM API 调用,Config 规则可持续监控 IAM 配置合规性 (如检测未启用 MFA 的用户、未使用的访问密钥)。定期进行访问审查,删除未使用的用户和角色是安全运维的基本。

共有するXB!