0Pricing
AWS Security Academy · 课时

IAM 策略文档的结构

阅读策略中的效果、操作、资源和条件。

IAM 策略文档的结构 是 CoddyKit 上的免费 AWS Security Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 AWS Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 AWS Security Academy 课程共包含 4 节课。

策略定义权限

在 AWS 中,权限通过策略表达:策略是授予或拒绝对资源执行操作的 JSON 文档。熟练阅读策略是 SCS-C02 的核心技能,因为几乎所有访问问题最终都取决于策略允许、拒绝或未涵盖哪些内容。本课将逐部分剖析其结构。

Statement 数组

策略包含一个 Version 字段(使用 "2012-10-17")和一个 Statement 元素,该元素可以是单条语句,也可以是语句数组。每条语句都是一条独立规则。AWS 会评估每一条语句,因此同一份文档可以允许某些操作,同时明确拒绝其他操作。

Effect:Allow 或 Deny

每条语句的 Effect 都是 Allow 或 Deny。AWS 默认拒绝访问:如果没有匹配的 Allow,请求就会被拒绝。匹配的 Deny 始终优先于任何 Allow。分析访问权限时,首先应检查每条语句的 Effect。

Action 和 NotAction

Action 元素列出该语句适用的 API 操作,格式为 service:operation,例如 s3:GetObject。其中可以使用通配符,例如 s3:* 或 s3:Get*。相反,NotAction 会匹配所列操作以外的所有操作,很容易被误用,因此考试会重点考查这一点。

Resource 和 NotResource

Resource 元素使用 ARN(Amazon 资源名称)指定操作适用的资源,例如某个特定存储桶及其中的对象。值为 "*" 表示所有资源。NotResource 会匹配所列 ARN 以外的所有资源。严格限定资源范围是实现最小权限的关键。

策略示例

此身份策略仅允许从一个存储桶读取对象。请注意其中的操作、具体的对象级 ARN,以及明确的 Allow 效果。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Effect": "Allow",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::reports/*"
  }]
}

Condition 块

可选的条件块使用上下文键和运算符限制语句何时适用。例如,仅当请求使用 TLS(aws:SecureTransport)或来自已知 IP 时才允许访问。条件让您能够在操作和资源之外,添加细粒度且基于上下文的控制。

资源策略中的 Principal

基于身份的策略省略 Principal 元素,因为它们已经附加到某个主体。基于资源的策略(例如 S3 存储桶策略)包含 Principal,用于指定规则适用的对象。判断策略是否包含 Principal,可以帮助您确定正在阅读的是哪种类型的策略。

通配符存在风险

同时使用 "Action": "*" 和 "Resource": "*" 等通配符,会授予完整的管理权限。考试经常给出权限过宽的策略,并要求您收紧权限。解决方法是用具体的操作和 ARN 替换通配符,贯彻最小权限原则。

解析 ARN

ARN 的格式为 arn:partition:service:region:account:resource。有些服务会省略区域或账户信息(S3 在存储桶部分会同时省略二者)。准确读取 ARN,可以判断策略针对的是单个资源、单个账户还是全部资源,这会直接影响授予的访问范围。

快速阅读策略

分析任意策略时:检查 Effect,阅读 Action(注意 NotAction 和通配符),限定 Resource 的范围(注意 "*"),并检查是否存在 Condition。请记住,明确拒绝优先于允许,而默认状态是拒绝。经过练习,您可以在几秒内判断策略的实际影响范围,这正是考试要求的能力。

快速检查

测试您阅读策略的能力。

回顾

IAM 策略是包含 Version 和 Statement 数组的 JSON。每条语句都包含 Effect(Allow/Deny)、Action(或 NotAction)、通过 ARN 指定的 Resource(或 NotResource),以及可选的 Condition。基于资源的策略还会添加 Principal。默认状态是拒绝,明确拒绝始终优先,而通配符表示权限过宽,需要收紧。

常见问题解答

「IAM 策略文档的结构」课时是免费的吗?

是的 — 「IAM 策略文档的结构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 AWS Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 AWS Security Academy 课程共包含 4 节课。

「IAM 策略文档的结构」这节课中我会学到什么?

阅读策略中的效果、操作、资源和条件。 你通过在浏览器中直接运行的动手代码来练习 AWS Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 AWS Security Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 AWS Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「IAM 策略文档的结构」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 AWS Security Academy 课中编写并运行代码吗?

能。每节 AWS Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. IAM 策略文档的结构
  2. 基于身份的策略与基于资源的策略
  3. 策略评估决策流程
  4. 条件、通配符和策略变量
← 返回 AWS Security Academy