属性文字列値の一致 - Amazon Simple Notification Service

属性文字列値の一致

文字列値を使用してメッセージ属性とフィルタメッセージを一致させることができます。JSON ポリシーでは、文字列値を二重引用符で囲みます。

次の文字列オペレーションを使用してメッセージ属性と一致させることができます。

完全一致

完全一致は、ポリシー属性値が 1 つ以上のメッセージ属性値と一致した場合に発生します。

次のポリシー属性について考えます。

"customer_interests": ["rugby", "tennis"]

このポリシー属性は、以下のメッセージ属性と一致します。

"customer_interests": {"Type": "String", "Value": "rugby"}
"customer_interests": {"Type": "String", "Value": "tennis"}

ただし、次のメッセージ属性とは一致しません。

"customer_interests": {"Type": "String", "Value": "baseball"}

プレフィックスマッチング

ポリシー属性に prefix キーワードが含まれている場合、ポリシー属性は、指定した文字で始まる任意のメッセージ属性値と一致します。

次のポリシー属性について考えます。

"customer_interests": [{"prefix": "bas"}]

このポリシー属性は、以下のメッセージ属性のいずれとも一致します。

"customer_interests": {"Type": "String", "Value": "baseball"}
"customer_interests": {"Type": "String", "Value": "basketball"}

ただし、次のメッセージ属性とは一致しません。

"customer_interests": {"Type": "String", "Value": "rugby"}

「以外」のマッチング

ポリシー属性値に anything-but キーワードが含まれている場合、このポリシー属性値のいずれも含まれていないすべてのメッセージ属性と一致します。

次のポリシー属性について考えます。

"customer_interests": [{"anything-but": ["rugby", "tennis"]}]

このポリシー属性は、以下のメッセージ属性のいずれとも一致します。

"customer_interests": {"Type": "String", "Value": "baseball"}
"customer_interests": {"Type": "String", "Value": "football"}

また、次のメッセージ属性にも一致します (これは rugby でも tennis でもない値を含むためです)。

"customer_interests": {"Type": "String.Array", "Value": "[\"rugby\", \"baseball\"]"}

ただし、次のメッセージ属性とは一致しません。

"customer_interests": {"Type": "String", "Value": "rugby"}

anything-but 演算子でプレフィックスを使用する。

属性文字列マッチングでは、anything-but 演算子を伴うプレフィックスを使用することもできます。

例えば、次のポリシー属性が order- プレフィックスを拒否します。

"event":[{"anything-but": {"prefix":"order-"}}]

このポリシー属性は、以下の属性のいずれとも一致します。

"event": {"Type": "String", "Value": data-entry}
"event": {"Type": "String", "Value": order_number}

ただし、次のメッセージ属性とは一致しません

"event": {"Type": "String", "Value": order-cancelled}

IP アドレス一致

cidr 演算子を使用して、受信メッセージが特定の IP アドレスまたはサブネットから発信されているかどうかを確認できます。

次のポリシー属性について考えます。

"source_ip":[{"cidr": "10.0.0.0/24"}]

このポリシー属性は、以下のメッセージ属性のいずれとも一致します。

"source_ip": {"Type": "String", "Value": "10.0.0.0"}
"source_ip": {"Type": "String", "Value": "10.0.0.255"}

ただし、次のメッセージ属性とは一致しません

"source_ip": {"Type": "String", "Value": "10.1.1.0"}