

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

# Amazon SQS 访问策略语言评估逻辑
<a name="sqs-creating-custom-policies-evaluation-logic"></a>

在评估期间，Amazon SQS 确定应允许还是拒绝资源所有者以外的某人发送的请求。评估逻辑遵循多个基本规则：
+ 在默认情况下，您拒绝任何人发送的所有使用资源的请求。
+ *[允许](sqs-creating-custom-policies-key-concepts.md#allow)* 将覆盖任意*[默认拒绝](sqs-creating-custom-policies-key-concepts.md#default-deny)*。
+ *[显式拒绝](sqs-creating-custom-policies-key-concepts.md#explicit-deny)* 将覆盖任意**允许**。
+ 策略评估的顺序并不重要。

下图详述了 Amazon SQS 如何评估有关访问权限的决策。

![\[描述 Amazon SQS 如何评估有关访问权限的决策的流程图。\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/AccessPolicyLanguage_Evaluation_Flow.png)


![\[In the previous diagram, number one.\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-1-red.png) 该决策开始是一个**默认拒绝**。

![\[In the previous diagram, number two.\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-2-red.png) 执行代码评估适用于请求的所有策略（根据资源、主体、操作和条件）。执行代码评估策略的顺序并不重要。

![\[In the previous diagram, number three.\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-3-red.png) 执行代码寻找应用于请求的**显式拒绝**指令。即使执行代码只找到了一个，也会返回**拒绝**决策，整个过程完成。

![\[In the previous diagram, number four.\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-4-red.png) 如果没有找到**显式拒绝**指令，那么执行代码将寻找应用于请求的任何**允许**指令。即使执行代码只找到了一个，也会返回**允许**决策，整个过程完成（服务将继续处理该请求）。

![\[In the previous diagram, number five.\]](http://docs.aws.amazon.com/zh_cn/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/number-5-red.png) 如果未找到任何**允许**指令，那么最终决策将是**拒绝**（因为没有**显式拒绝**或**允许**，所以这将被视为一个**默认拒绝**）。