Amazon SQSアクセスポリシー言語の明示的な拒否とデフォルトの拒否の関係 - Amazon Simple Queue Service

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SQSアクセスポリシー言語の明示的な拒否とデフォルトの拒否の関係

Amazon SQS ポリシーがリクエストに直接適用されない場合、リクエストの結果は、Default-deny となります。たとえば、ユーザーが Amazon SQSを使用するアクセス権限をリクエストしたが、そのユーザーに適用される唯一のポリシーではDynamoDBを使用できる場合、リクエストの結果は default-denyとなります。

ステートメントの条件が満たされない場合、リクエストの結果は default-denyになります。ステートメントのすべての条件が満たされている場合、ポリシーの [Effect] (効果) エレメントの値に基づいて、リクエストの結果は 許可 または Explicit-denyのどちらかとなります。条件が満たされていない際にポリシーが行為を特定していない場合、デフォルトの結果として default-deny となります。たとえば、南極大陸から来るリクエストを防ぐとします。その場合、南極大陸から来ていないリクエストにのみ許可を与えるポリシー A1を記述します。以下の図はAmazon SQSポリシーについて解説しています。


						アーキテクチャの概要

ユーザーがアメリカからリクエストを送信すると、条件が満たされ (リクエストは南極大陸から来ていない)、リクエストの結果は allow になります。ただし、ユーザーが南極からリクエストを送信した場合、条件は満たされず、リクエストはデフォルトで default-deny になります。南極大陸から来たリクエストを明示的に拒否するポリシー A2を作成して、結果を explicit-deny に変更することができます。以下の図はポリシーについて解説しています。


						アーキテクチャの概要

ユーザーが南極大陸からリクエストを送信すると、条件は満たされ、リクエストの結果はexplicit-denyとなります。

default-denyexplicit-deny の違いは重要です。allow は前者を上書きできますが、後者を上書きすることはできないためです。たとえば、ポリシー Bは、2010年6月1日に届いたリクエストを許可します。以下の図は、このポリシーをポリシー A1およびポリシー A2と組み合わせた場合を比較しています。


						カスタムクックブック属性を使用した

シナリオ 1では、ポリシー A1の結果はdefault-denyになり、ポリシー Bの結果はallowになります。これは、ポリシーで 2010年6月1日に来るリクエストが許可されるためです。ポリシー Bによるallowは、ポリシー A1の default-denyで拒否に優先するため、結果としてリクエストは許可されます。

シナリオ 2 で、ポリシー B2の結果は explicit-deny になり、ポリシー Bの結果は allow になります。ポリシー A2 によるexplicit-denyは、ポリシー Bのallow に優先するため、結果としてリクエストは拒否されます。