LabHub
学习 学习路径 课程

云权限设计

用手算出权限

在 LabHub 中继续学习

目标

IAM是云事故的第1大原因,决策逻辑本身只有三行

1. 명시적 Deny 가 하나라도 맞으면  → 거부
2. 아니고 Allow 가 하나라도 맞으면 → 허용
3. 둘 다 없으면                    → 거부 (암묵적 거부)

**不是顺序,而是种类更重要。**不管贴几个政策,只要有一个Deny,所有 允许。

这个练习没有云账户,就直接运行这个逻辑。

评价器

python3 /opt/lab/iam/evaluate.py policy.json requests.txt

请求文件在一行액션 리소스,条件是키=값加上。

s3:GetObject arn:aws:s3:::reports/2026-q1.csv
s3:GetObject arn:aws:s3:::pub/x aws:SourceVpc=vpc-lab1

也请阅读评价器的源代码——不能超过200行。IAM难点在于逻辑 不是因为复杂,而是因为政策在多个地方合并

准备好的文件

文件 用途
/opt/lab/iam/evaluate.py 评价器
/opt/lab/iam/policy1.json·requests1.txt 第1阶段
/opt/lab/iam/needed.txt 第4阶段——应用程序实际所做的事情
/opt/lab/iam/incident.json 6阶段

参考

第4阶段即使是**没有标记的要求也会进行测试。**如果广泛使用的话,就会在那儿遇到问题。

先预测结果

/opt/lab/iam/policy1.json/opt/lab/iam/requests1.txt看完后,在旋转评价器之前将每个请求的结果01-predict.txtallow或者deny请逐行写下。然后选择两个结果出乎意料的,并说明为什么。01-why.md请逐行写一句话。

规则有三条——明确Deny > 明确Allow > 默认Deny。不是顺序,而是种类更重要。

都写完之后python3 /opt/lab/iam/evaluate.py /opt/lab/iam/policy1.json /opt/lab/iam/requests1.txt请根据它进行调整。评分器只有在你的预测与评估器完全一致时才会通过。

意想不到的位置通常是三个中的一位——s3:*即使给了,也堵住了,没有被任何句子堵住,没有条件键堵住了。

Deny无论顺序如何都会赢

制作包含Allow相同动作的句子和Deny动作的句子的政策,但制作两个Deny句子放在上面和放在下面的句子,结果相同。02-deny.txt请留在这里。

文件是deny-first.jsondeny-last.json然后,请一起写出针对同一请求的两个结果。无论贴几个政策,**Deny一个都会超过所有Allow。**所以“贴了更多的权限,为什么不行”的答案通常是某个地方的Deny。

野生卡能抓到哪里?

arn:aws:s3:::app-data*用为资源的政策是**app-data-secret展示了要抓住到**为止,并修改为只抓住预定的事项。03-wildcard.txt请把两个都留在这里。

*也包含斜杠。app-data*app-dataapp-data-dev,**app-data-secret**全部抓住。

修复的方法是明确分隔符——arn:aws:s3:::app-data/*就像这样。是实际泄露事故的常见样子。

以最小权限缩小范围

/opt/lab/iam/needed.txt上面写着这个应用程序实际做的事情。只有那个,其他的政策不行。least.json请用。在动作中*不能用。

评分机是needed.txt不仅如此,还通过不恰当的相邻请求进行测试——比如删除同一桶,或者名字相似的其他桶之类的东西。如果广泛使用的话,就会在那儿遇到问题。

最小权限不是“稍微缩小一点”,而是写下必要的东西,只允许那个。顺序相反的话绝对不会缩小。

提出条件

4阶段政策公司VPC(vpc-lab1)加上只允许来自的请求的条件cond.json请用。

"Condition": {"StringEquals": {"aws:SourceVpc": "vpc-lab1"}}. 没有条件键的完全没有的请求是StringEquals无法满足,就会被拒绝——这就是正确的动作。这是让证书外露而无法仅凭证书使用的装置。

再现事故

/opt/lab/iam/incident.json实际上包含了常见的错误。找出什么是为什么危险06-incident.txt请写在上面,并留下一条证明风险的请求。

试着用评价器把各种东西放进去看看。通过的比预想的要多得多。找到答案后,也想想为什么写这个政策的人认为它很安全——这种误解才是事故的真正原因。

整理三个

07-notes.md至少三行以上。评价规则三行,小心Wildcard,条件会阻止。

在正文中Deny와일드카드조건这个必须进去。