AWS WAF でのラベル構文と命名要件 - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced

AWS WAF でのラベル構文と命名要件

このセクションでは、AWS WAF ラベルに対するコンストラクトと一致する方法について説明します。

ラベルは、プレフィックス、オプションの名前空間、および名前で構成される文字列です。ラベルのコンポーネントはコロンで区切られます。ラベルには次の要件と特性があります。

  • ラベルでは、大文字と小文字が区別されます。

  • 各ラベル名前空間またはラベル名には、最大 128 文字を使用できます。

  • ラベルには、最大 5 つの名前空間を指定できます。

  • ラベルのコンポーネントはコロン (:) で区切られます。

  • ラベルに指定する名前空間または名前で次の予約済み文字列を使用することはできません: awswafawswafrulegroupwebaclregexpatternsetipset、および managed

ラベル構文

完全修飾ラベルには、プレフィックス、オプションの名前空間、およびラベル名があります。プレフィクスは、ラベルを追加したルールのルールグループまたはウェブ ACL コンテキストを識別します。名前空間は、ラベルのコンテキストを追加するために使用されることがあります。ラベル名は、ラベルの詳細レベルが最も低いレベルになります。多くの場合、リクエストにラベルを追加した特定のルールを示します。

ラベルのプレフィックスは、そのオリジンによって異なります。

  • ラベル – ウェブ ACL およびルールグループのルールで作成するラベルの完全なラベル構文を次に示します。エンティティタイプは rulegroupwebacl です。

    awswaf:<entity owner account id>:<entity type>:<entity name>:<custom namespace>:...:<label name>
    • ラベル名前空間プレフィックス: awswaf:<entity owner account id>:<entity type>:<entity name>:

    • カスタム名前空間の追加: <custom namespace>:…:

    ルールグループまたはウェブ ACL でルールのラベルを定義する場合は、カスタム名前空間文字列とラベル名をコントロールします。残りは AWS WAF によって生成されます。AWS WAF は、すべてのラベルに、awswaf、アカウント、ウェブ ACL またはルールグループエンティティ設定のプレフィックスを自動的に付けます。

  • マネージドルールグループのラベル – マネージドルールグループのルールによって作成されるラベルの完全なラベル構文を次に示します。

    awswaf:managed:<vendor>:<rule group name>:<custom namespace>:...:<label name>
    • ラベル名前空間プレフィックス: awswaf:managed:<vendor>:<rule group name>:

    • カスタム名前空間の追加: <custom namespace>:…:

    すべての AWS マネージドルールのルールグループはラベルを追加します。マネージドルールグループの詳細については、「AWS WAF でのマネージドルールグループの使用」を参照してください。

  • 他の AWS プロセスからのラベル – これらのプロセスは AWS マネージドルールのルールグループによって使用されるため、マネージドルールグループを使用して評価するウェブリクエストに追加されています。マネージドルールグループによって呼び出されるプロセスが作成するラベルの完全なラベル構文を次に示します。

    awswaf:managed:<process>:<custom namespace>:...:<label name>
    • ラベル名前空間プレフィックス: awswaf:managed:<process>:

    • カスタム名前空間の追加: <custom namespace>:…:

    このタイプのラベルは、AWS プロセスを呼び出すマネージドルールグループ用に一覧表示されます。マネージドルールグループの詳細については、「AWS WAF でのマネージドルールグループの使用」を参照してください。

ルールの例にラベルを付ける

次のラベルの例は、アカウント 111122223333 に属する testRules という名前のルールグループのルールによって定義されています。

awswaf:111122223333:rulegroup:testRules:testNS1:testNS2:LabelNameA
awswaf:111122223333:rulegroup:testRules:testNS1:LabelNameQ
awswaf:111122223333:rulegroup:testRules:LabelNameZ

次のリストは、JSON のラベル指定の例を示しています。これらのラベル名には、末尾のラベル名の前にカスタム名前空間文字列が含まれます。

Rule: { Name: "label_rule", Statement: {...} RuleLabels: [ Name: "header:encoding:utf8", Name: "header:user_agent:firefox" ], Action: { Count: {} } }
注記

このタイプのリストには、ルール JSON エディタを通じてコンソールでアクセスできます。

前述のラベルの例と同じルールグループおよびアカウントで前述のルールを実行すると、結果として生じる完全修飾ラベルは次のようになります。

awswaf:111122223333:rulegroup:testRules:header:encoding:utf8
awswaf:111122223333:rulegroup:testRules:header:user_agent:firefox

マネージドルールグループのラベル例

AWS マネージドルールのルールグループとそれらが呼び出すプロセスのラベルの例を次に示します。

awswaf:managed:aws:core-rule-set:NoUserAgent_Header
awswaf:managed:aws:sql-database:SQLiExtendedPatterns_QueryArguments
awswaf:managed:aws:atp:aggregate:attribute:compromised_credentials
awswaf:managed:token:accepted