Amazon SQS 访问策略语言中明确拒绝和默认拒绝之间的关系 - Amazon Simple Queue Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon SQS 访问策略语言中明确拒绝和默认拒绝之间的关系

如果 Amazon SQS 政策不直接适用于请求,则该请求会导致默认拒绝例如,如果用户请求使用亚马逊的权限,SQS但适用于该用户的唯一策略可以使用 DynamoDB,则该请求会导致默认拒绝。

如果未能满足语句中的某个条件,则该请求的结果为默认拒绝。如果满足了语句中的所有条件,那么根据策略中元素的值,该请求的结果可能为允许显式拒绝效果如果策略没有指定如何处理未满足某个条件的情况,那么在这种情况下默认结果为默认拒绝。例如,您想要阻止来自南极洲的请求。您编写了策略 A1,只要请求不是来自于南极洲,就接受请求。下图说明了 Amazon 的SQS政策。

策略 A1,其中包含的效果等于允许,如果请求不是来自南极洲,则条件等于。

如果用户从美国发出请求,那么条件已经满足(该请求不是来自南极洲),则该请求的结果是允许。但是,如果用户从南极洲发出请求,那么条件未满足,该请求的默认结果为默认拒绝。您可以编写策略 A2,显式拒绝来自南极洲的请求,这样结果就变为显式拒绝。下列示意图说明了该策略。

策略 A2,其中包含等于 “拒绝” 的效果和等于请求来自南极洲的条件。

如果用户从南极洲发出请求,那么条件已经满足,则该请求的结果为显式拒绝

默认拒绝显式拒绝之间的区别很重要,因为允许可以覆盖前者但不能覆盖后者。例如,策略 B 允许在 2010 年 6 月 1 日到达的请求。下图比较了将此策略与策略 A1 和策略 A2 进行组合的情况。

情景 1 和方案 2 的 side-by-side 比较。

在场景 1 中,策略 A1 的结果为默认拒绝,策略 B 的结果为允许,因为该策略允许 2010 年 6 月 1 日传入的请求。策略 B 返回的允许结果将覆盖策略 A1 的默认拒绝结果,因此,请求获得允许。

在场景 2 中,策略 B2 的结果为显式拒绝,策略 B 的结果为允许。从策略 A2 发出的显式拒绝将覆盖从策略 B 发出的允许,因此该请求会被拒绝。