

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

# AWS WAF ACLs の管理
<a name="managing-waf"></a>

 AWS Network Security Manager を使用すると、組織内のアカウントとリソース間で AWS WAF ウェブアクセスコントロールリスト (ウェブ ACLs) を一元的に設定してデプロイできます。 AWS WAF の AWS Network Security Manager ルールを定義し、保護テンプレートにグループ化して、 AWS Network Security Manager のポリシーとデプロイを通じて大規模に適用できます。

## AWS WAF の概念
<a name="concepts-waf"></a>

以下の概念は、 AWS WAF での AWS Network Security Manager の使用に固有のものです。 AWS Network Security Manager の仕組みの詳細については、「」を参照してください[AWS Network Security Manager の仕組み](concepts.md)。

### AWS WAF ルールタイプ
<a name="concepts-waf-rule-types"></a>

 AWS WAF の場合、ルールは 2 つのタイプのいずれかです。
+ **検査** – (ユーザー定義ルールの前に実行されるルール) または `PreProcessFirewallManagerRuleGroups` (後に実行される`PostProcessFirewallManagerRuleGroups`ルール) を使用するルールグループ定義が含まれます。
+ **CONFIGURATION** – 単一のウェブ ACL 設定が含まれます。設定 JSON には、サポートされている設定 (、`Description`、、`DefaultAction`、`VisibilityConfig`、、、、、`TokenDomains`、、 など) に一致する最上位キーが 1 `LoggingConfiguration` `CaptchaConfig` `ChallengeConfig` `CustomResponseBodies` `DataProtectionConfig` `AssociationConfig` `OnSourceDDoSProtectionConfig`つだけ含まれている必要があります`MonetizationConfig`。

ほとんどのウェブ ACL 設定は、 AWS WAF `CreateWebACL`オペレーションのパラメータに対応しています。これらの設定とその定義の詳細については、*AWS 「 WAF API リファレンス*」の[CreateWebACL](https://docs.aws.amazon.com/waf/latest/APIReference/API_CreateWebACL.html)」を参照してください。

例外は、個別に設定`LoggingConfiguration`する です。詳細については、「[のウェブ ACL トラフィックのログ記録](#managing-waf-logging)」を参照してください。

### AWS WAF ポリシーのマージ
<a name="concepts-priority-waf"></a>

 AWS WAF の場合、各設定は次のいずれかのマージ戦略を使用します。

SingleValue  
1 つの値のみを持つことができる設定。優先度が最も高いポリシーが優先されます。優先度値は一意であるため、2 つのポリシーで同じ優先度で異なる値を定義することはできません。 AWS Network Security Manager が優先度を解決する方法の詳細については、「」を参照してください[優先度ベースのポリシーマージ](concepts.md#concepts-priority)。SingleValue を使用する設定は、`DefaultAction`、、`VisibilityConfig`、`CaptchaConfig`、`ChallengeConfig`、`OnSourceDDoSProtectionConfig`、`LoggingConfiguration``MonetizationConfig`、および です`Description`。

追加 (および AppendAndSort)  
すべてのポリシーからのエントリは、優先度順にリストに追加されます。 `TokenDomains`および `DataProtectionConfig.DataProtections`は、追加を使用します。 `PreProcessFirewallManagerRuleGroups` および は、すべてのポリシーからルールグループを追加し、優先度でソートする AppendAndSort `PostProcessFirewallManagerRuleGroups`を使用します。 AWS WAF はルールグループを順番に評価するので、順序は重要です。

Merge (マージ)  
すべてのポリシーからのエントリは、優先度に関係なく 1 つのセットにマージされます。 `CustomResponseBodies`と はマージ`AssociationConfig.RequestBody`を使用します。

Append、AppendAndSort、Merge 戦略は、重複するエントリを削除します。2 つのポリシーが同じ設定を提供する場合、 AWS Network Security Manager は優先度の高いポリシーからエントリを保持します。したがって、有効な設定には、寄与ポリシーごとに 1 つのコピーではなく、そのエントリの 1 つのコピーが含まれます。

### 既存のウェブ ACL 解決
<a name="concepts-waf-existing-webacl"></a>

 AWS WAF ポリシーの `existingCustomerWebACLResolution`設定を使用して、 AWS Network Security Manager が既にカスタマーマネージドウェブ ACL を持つリソースを処理する方法を指定します。
+ `RETROFIT` – 有効な設定に合わせて既存のウェブ ACL を更新します。
+ `OVERRIDE_ASSOCIATION` – AWS Network Security Manager によって管理されるウェブ ACL を代わりにリソースに関連付けます。
+ `NO_REMEDIATION` – ウェブ ACL が存在する場合は修復しないでください。

### のウェブ ACL トラフィックのログ記録
<a name="managing-waf-logging"></a>

ポリシーの `LoggingConfiguration`設定でウェブ ACL ログ記録を制御します。 AWS Network Security Manager は AWS 、WAF `PutLoggingConfiguration`オペレーションを使用してこの設定を適用します。Web ACL ごとに 1 つのログ記録先を定義できます。詳細については、*AWS 「 WAF API リファレンス*」の[PutLoggingConfiguration](https://docs.aws.amazon.com/waf/latest/APIReference/API_PutLoggingConfiguration.html)」を参照してください。

ポリシーが管理するすべての対象範囲内のウェブ ACL は、ポリシーが指定した宛先にログを送信します。これにより、組織内のアカウント全体でログ記録を一元化できます。これを使用して、ウェブ ACLs が組織全体で分析するトラフィックに関する詳細情報を取得します。

複数のアカウントを一元的にログ記録するには、Amazon S3 バケットまたは Amazon Data Firehose 配信ストリームにログを送信できます。各送信先タイプには追加の設定が必要です。これは、 AWS Network Security Manager が範囲内のリソースとアカウント全体で AWS WAF ログ記録を管理する前に完了する必要があります。送信先名は で始まる必要があります`aws-waf-logs-`。

Amazon Data Firehose  
次の特性を持つ配信ストリームを作成します。  
+  AWS Network Security Manager 管理者アカウントを使用して作成
+ で始まる名前`aws-waf-logs-`。例: `aws-waf-logs-network-security-manager-central`
+ `PUT` ソース
+ 運用しているリージョンで作成、または Amazon CloudFront のログをキャプチャする場合は米国東部 (バージニア北部) リージョンで作成
配信ストリームを使用する前に、それをテストして、組織のログに十分なスループットがあることを確認します。詳細については、[「Amazon Data Firehose デベロッパーガイド」の「Amazon Data Firehose 配信ストリーム](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html)の作成」を参照してください。 **

Amazon S3  
*AWS WAF デベロッパーガイド*の Amazon S3 ガイダンスに従ってバケットを作成します。また、ログ配信に書き込みを許可するアクセス許可でバケットを設定する必要があります。次のバケットポリシーは、これらのアクセス許可を付与します。  

```
{
    "Version":"2012-10-17",
    "Id": "AWSLogDeliveryForNetworkSecurityManager",
    "Statement": [
        {
            "Sid": "AWSLogDeliveryAclCheckNetworkSecurityManager",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:GetBucketAcl",
            "Resource": "arn:aws:s3:::aws-waf-logs-{{bucket-suffix}}"
        },
        {
            "Sid": "AWSLogDeliveryWriteNetworkSecurityManager",
            "Effect": "Allow",
            "Principal": {
                "Service": "delivery.logs.amazonaws.com"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::aws-waf-logs-{{bucket-suffix}}/{{policy-id}}/AWSLogs/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}
```
{{bucket-suffix}} を独自のバケット名のサフィックスに置き換え、{{policy-id}} をポリシーの ID に置き換えます。

**CloudWatch Logs はシングルアカウントの使用のみをサポートします**  
複数のアカウントで AWS Network Security Manager を使用する場合、Amazon CloudWatch Logs ロググループをログ記録先として使用することはできません。ロググループは、ウェブ ACL と同じ AWS アカウントとリージョンに存在する必要があります。マルチアカウントデプロイの場合は、代わりに Amazon S3 バケットまたは Amazon Data Firehose 配信ストリームを使用します。