为什么 SNS 访问控制策略需要指定 Resource 元素 - 它不是隐式的吗?

Why does an SNS access control policy require a Resource element to be specified - Is it not implicit?

基于身份的策略不需要指定“主体”,因为它是隐式的。将相同的理由应用于 SNS 访问控制策略(这是基于资源的策略),为什么需要在策略中指定与“资源”相同的 SNS 主题?对于 Buckets,“资源”有助于缩小到特定前缀等范围,但在 SNS 访问控制策略中拥有(隐式)“资源”究竟有什么意义?即,主题 ARN 被指定为“资源”,但策略附加到同一主题。下面显示了 AWS 文档中的 SNS 访问控制策略示例以供参考。

{
  "Statement": [{
    "Sid": "grant-1234-publish",
    "Effect": "Allow",
    "Principal": {
      "AWS": "111122223333"
    },
    "Action": ["sns:Publish"],
    "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic"
  }]
}

用于定义策略语句的 语法 需要 ResourceNotResource。来自 docs:

Statements must include either a Resource or a NotResource element.

所以你必须明确提供。 SNS 主题不使用任何特殊的策略语法,这将允许它们没有 Resource 组件。

因此,我认为没有更多的东西了。这只是正确政策声明的语法要求