次の項目を編集できます。JSON configuration that is used when you have Amazon SNSトピックへのイベント転送の有効化。イベントをトピックにパブリッシュするために満たす必要がある条件を定義します。設定言語のモデルAmazonのSNSに関するポリシーの文言。
各フィールドの指定は次のとおりです。 SNSの基本設定は次のようになります。
{
"Version": "2014-09-24",
"Statement": [statement1, statement2, ...]
}
例については、例のSNS構成を参照してください。
バージョン
[バージョン] 要素は、設定言語のバージョンを指定します。
注意現在有効な「Version」値は、文字列「2014-09-24」のみです。
|
"Version": "2014-09-24",
ステートメント
[ステートメント] 要素は、個々のステートメントの配列です。個々のステートメントは、イベントが所定の条件を満たした場合に送信するSNSトピックを提供する個別のJSONオブジェクトです。
"Statement": [{...}, {...}, ...]
それぞれのステートメントの形式は次のとおりです。
{
"Topic": "destination topic",
"Condition": {conditions event must meet to be published to the destination topic}
}
Topic
[Topic] 要素は、発行先のSNSトピックのAmazonリソースネームである必要があります。
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic"
条件
[条件] 要素は、設定の中で最も複雑な部分です。イベントをトピックに公開するために一致する必要がある条件が1つ以上含まれています。
各条件には、イベントをトピックに含めるために一致する (条件の種類によっては一致しない) 1 つ以上のキーと値のペアを含めることができます。キーは、任意の有効なイベントプロパティです。
(イベントのプロパティについては、 JSON形式のイベント)。有効な値はキーによって異なります。一部のキーは複数の値をサポートします。
"Condition": {
"ConditionName": {
"key1": [value1, value2],
"key2": value3
},
"ConditionName2": {
"key3": [value4]
},
...
}
有効な条件の名前と構文を以下に示します。
Bool
[Bool] 条件は、ブール一致を実行します。一致させるには、イベントに目的のブール値を持つプロパティが必要です。イベント内のプロパティが存在するが、それ自体がブール値でない場合、プロパティは次のようにテストされます。
- 0に等しい数値はfalseと評価されます。 0以外の数値はtrueと評価されます。
- 空の文字列、および特殊文字列「false」および「0」は、falseと評価されます。その他の文字列はtrueと評価されます。
- それ以外の値を持つイベントのプロパティについては、値をブール値に変換できず、照合されません。
複数の値を許可しますか?いいえ
次の設定例では、「DetectOnly」プロパティの値がfalseである場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"Bool": {
"DetectOnly": false
}
}
}
]
}
Exists
[Exists] 条件は、イベント内のプロパティの有無をテストします。プロパティの値は考慮されません。
複数値の使用: ×
次の設定例では、「Severity」プロパティがあり、かつ「Title」プロパティがない場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"Exists": {
"Severity": true,
"Title": false
}
}
}
]
}
IpAddress
[IpAddress] 条件は、イベントのプロパティの値がCIDR形式で指定された範囲内のIPアドレスであるか、または単一のIPアドレスと完全に等しいかをテストします。
複数値の使用: ○
次の設定例では、「DestinationIP」プロパティのIPアドレスが10.0.1.0/24の範囲に含まれているか、10.0.0.5と一致する場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"IpAddress": {
"DestinationIP": ["10.0.1.0/24", "10.0.0.5"]
}
}
}
]
}
NotIpAddress
[NotIpAddress] 条件は、イベントのプロパティの値が、指定されたIPアドレス範囲のいずれのIPアドレスでもないことをテストします。
複数値の使用: ○
次の設定例では、「DestinationIP」プロパティのIPアドレスが10.0.0.0/8の範囲に含まれていない場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NotIpAddress": {
"DestinationIP": "10.0.0.0/8"
}
}
}
]
}
NumericEquals
[NumericEquals] 条件は、イベントのプロパティの数値が1つ以上の目的の値と等しいかどうかをテストします。イベント内のプロパティが存在するが、それ自体が数値ではない場合、プロパティは次のようにテストされます。
- 文字列は数値に変換されます。数値に変換できない文字列は一致しません。
- それ以外の値を持つイベントのプロパティについては、値を数値に変換できず、照合されません。
複数の値を許可しますか? はい
次の設定例では、「Protocol」プロパティの値が6または17である場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericEquals": {
"Protocol": [6, 17]
}
}
}
]
}
NumericNotEquals
[NumericNotEquals] 条件は、イベントのプロパティの数値が、望ましくない値のセットのいずれにも等しくないことをテストします。
複数値の使用: ○
次の設定例では、「Protocol」プロパティの値が6以外で、かつ「Risk」プロパティの値が2または3以外である場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericNotEquals": {
"Protocol": 6,
"Risk" : [2, 3]
}
}
}
]
}
NumericGreaterThan
[NumericGreaterThan] 条件は、イベントのプロパティの数値が目的の値よりも厳密に大きいかどうかをテストします。イベント内のプロパティが存在し、それ自体が数値でない場合は、NumericEqualsの説明に従って数値に変換されます。
複数の値を許可しますか?いいえ
次の設定例では、「Protocol」プロパティの値が6よりも大きい場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericGreaterThan": {
"Protocol": 6
}
}
}
]
}
NumericGreaterThanEquals
[NumericGreaterThanEquals] 条件は、イベントのプロパティの数値が目的の値以上であるかどうかをテストします。イベント内のプロパティが存在し、それ自体が数値でない場合は、NumericEqualsの説明に従って数値に変換されます。
複数の値を許可しますか?いいえ
次の設定例では、「Number」プロパティの値が600以上の場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericGreaterThanEquals": {
"Number": 600
}
}
}
]
}
NumericLessThan
[NumericLessThan] 条件は、イベントのプロパティの数値が目的の値よりも小さいかどうかをテストします。イベント内のプロパティが存在し、それ自体が数値でない場合は、NumericEqualsの説明に従って数値に変換されます。
複数の値を許可しますか?いいえ
次の設定例では、「Number」プロパティの値が1000よりも小さい場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericLessThan": {
"Number": 1000
}
}
}
]
}
NumericLessThanEquals
[NumericLessThanEquals] 条件は、イベントのプロパティの数値が目的の値以下であるかどうかをテストします。イベント内のプロパティが存在し、それ自体が数値でない場合は、NumericEqualsの説明に従って数値に変換されます。
複数値の使用: ×
次の設定例では、「Number」プロパティの値が500以下の場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericLessThanEquals": {
"Number": 500
}
}
}
]
}
StringEquals
[StringEquals] 条件は、イベントのプロパティの文字列値が必要な値以上であるかどうかをテストします。
複数の値を許可するはい
次の設定例では、「EventType」プロパティの値が「SystemEvent」と一致し、かつ「TargetType」プロパティの値が「User」または「Role」と一致する場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringEquals": {
"EventType": ["SystemEvent"],
"TargetType" : ["User", "Role"]
}
}
}
]
}
StringNotEquals
[StringNotEquals] 条件は、イベントのプロパティの文字列値が望ましくない値のセットと等しくないことをテストします。
複数の値を許可しますか? はい
次の設定例では、「EventType」プロパティの値が「PacketLog」と「IntegrityEvent」のいずれにも一致しない場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringNotEquals": {
"EventType": ["PacketLog", "IntegrityEvent"]
}
}
}
]
}
StringEqualsIgnoreCase
[StringEqualsIgnoreCase] 条件は、文字列照合が大文字と小文字を区別せずに実行される点を除いて、StringEquals条件と同じです。
StringNotEqualsIgnoreCase
[StringNotEqualsIgnoreCase] 条件は、文字列照合が大文字と小文字を区別せずに実行される点を除いて、StringNotEquals条件と同じです。
StringLike
[StringLike] 条件は、イベントのプロパティの文字列値が目的の値以上であるかどうかをテストします。目的の値には、任意の数の文字に一致するワイルドカード「*」または「?」を含めることができます。単一の文字に一致します。文字列の比較では大文字と小文字が区別されます。
複数の値を許可しますか? はい
次の設定例では、「Title」プロパティの値に「User」または「Role」という文字列が含まれる場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringLike": {
"Title": ["\*User\*", "\*Role\*"]
}
}
}
]
}
StringNotLike
[StringNotLike] 条件は、イベントのプロパティの文字列値が望ましくない値のセットと等しくないことをテストします。値には、任意の数の文字に一致するワイルドカード「*」または「?」を含めることができます。単一の文字に一致します。文字列の比較では大文字と小文字が区別されます。
複数値の使用: ○
次の設定例では、「システム設定の保存」イベントを除くすべてのイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringNotLike": {
"Title":"System Settings Saved"
}
}
}
]
}
次の設定例では、「Title」プロパティの値の先頭が「User」でなく、かつ末尾が「Created」でない場合にイベントが公開されます。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringNotLike": {
"Title": ["User\*", "\*Created"]
}
}
}
]
}
複数の文と複数の条件
同じSNSトピックに対して複数のステートメントを作成した場合、それらのステートメントは「or」で結合されているかのように評価されます。ステートメントに複数の条件が含まれる場合、それらの条件は「and」で結合されているかのように評価されます。
複数の文
これは、してはいけないことの例です。最初のステートメントは、「System Settings Saved」以外のすべてのイベントを転送するように指定しています。 2番目のステートメントは、「System
Settings Saved」イベントをすべて転送するように指定しています。結果として、すべてのイベントが転送されます。これは、いずれかのイベントが最初の文の条件
[または] と2番目の文の条件のいずれかに一致するためです。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringNotLike" : {
"Title" : "System Settings Saved"
}
}
},
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringLike" : {
"Title" : "System Settings Saved"
}
}
}
]
}
複数の条件
これは、禁止事項の別の例です。最初の条件は、「システム設定が保存されました」以外のすべてのイベントを転送することを示しています。 2番目の条件は、「System Settings
Saved」イベントをすべて転送することです。最初の文 [および] の条件と2番目の文の条件の両方に一致するイベントがないため、イベントは転送されません。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"StringNotLike" : {
"Title" : "System Settings Saved"
},
"StringLike" : {
"Title" : "System Settings Saved"
}
}
}
]
}
SNSの設定例
これらの構成は、特定のシナリオに一致するイベントを送信します。フィルタリングに使用できるその他のイベントプロパティ名と値については、JSON形式のイベントを参照してください。
重大なすべての侵入防御イベントをSNSトピックに送信する
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:myTopic",
"Condition": {
"NumericEquals": {
"Severity": 4
},
"StringEquals" : {
"EventType" : "PayloadLog"
}
}
}
]
}
イベントごとに異なるSNSトピックに送信する
この例では、すべてのシステムイベントを1つのトピックに送信し、すべての変更監視イベントを別のトピックに送信します。
{
"Version": "2014-09-24",
"Statement": [
{
"Topic": "arn:aws:sns:us-east-1:012345678901:systemEventsTopic",
"Condition": {
"StringEquals" : {
"EventType" : "SystemEvent"
}
}
},
{
"Topic": "arn:aws:sns:us-east-1:012345678901:integrityTopic",
"Condition": {
"StringEquals" : {
"EventType" : "IntegrityEvent"
}
}
}
]
}
