AWS 账户与权限管理
April 5, 2024About 2 min
AWS 账户与权限管理
两个常考的多账户权限主题:组织层面用 SCP 限制权限边界,账户之间用 IAM 角色做跨账户授权。
SCP 服务控制策略
在 AWS Organizations 里,服务控制策略(Service Control Policies,SCP)用来集中限制成员账户能用哪些服务和操作,是组织级的权限管控工具。
它的几个关键性质,恰好也是考点:
- 只设上限,不直接授权。SCP 不会给账户任何权限,它只限制权限的最大边界。即使某个 IAM 角色有权限,只要 SCP 拒绝了这个操作,照样执行不了。
- 实际权限 = IAM 策略 ∩ SCP。一个操作必须 SCP 允许、且账户内 IAM 策略也授权,才真正能执行。这个交集关系是最容易出选择题的地方。
- 作用范围灵活:可挂在组织根(Root)、某个组织单元(OU)或单个账户上。
- JSON 格式:和 IAM 策略类似,写 Allow / Deny 的服务和操作。
一句话:SCP 管"这个组织/OU/账户最多能干什么",IAM 管"这个身份具体能干什么",两者取交集。
跨账户访问
典型场景:公司请了外部供应商在自己的 AWS 账户里干活,但供应商用的是他们自己账户里的自动化工具,且供应商在公司账户里没有 IAM 权限。怎么授权?
最安全的做法是用 IAM 角色做跨账户委派,而不是共享凭证:
- 在公司账户里创建一个 IAM 角色。
- 角色的信任策略指定信任供应商的 AWS 账户(供应商的 IAM 主体可以
AssumeRole扮演这个角色)。 - 给角色附加供应商实际需要的权限策略。
这样供应商从自己账户切换角色访问公司资源,全程不共享长期凭证,也符合最小权限原则。考试里只要看到"跨账户、不共享凭证、外部方用自己账户",答案基本就是创建 IAM 角色 + 信任策略 + AssumeRole。