为什么 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"
}]
}
用于定义策略语句的 语法 需要 Resource
或 NotResource
。来自 docs:
Statements must include either a Resource or a NotResource element.
所以你必须明确提供。 SNS 主题不使用任何特殊的策略语法,这将允许它们没有 Resource
组件。
因此,我认为没有更多的东西了。这只是正确政策声明的语法要求。
基于身份的策略不需要指定“主体”,因为它是隐式的。将相同的理由应用于 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"
}]
}
用于定义策略语句的 语法 需要 Resource
或 NotResource
。来自 docs:
Statements must include either a Resource or a NotResource element.
所以你必须明确提供。 SNS 主题不使用任何特殊的策略语法,这将允许它们没有 Resource
组件。
因此,我认为没有更多的东西了。这只是正确政策声明的语法要求。