AWS WAF の新しいコンソールエクスペリエンスのご紹介
更新されたエクスペリエンスを使用して、コンソールの任意の場所で AWS WAF 機能にアクセスできるようになりました。詳細については、「更新されたコンソールエクスペリエンスを使用する」を参照してください。
AWS WAF または Shield Advanced に対する HTTPS リクエストの実行
AWS WAF と Shield Advanced に対するリクエストは、RFC 2616
リクエストの URI
リクエスト URI は常に 1 つのスラッシュ / です。
HTTP ヘッダー
AWS WAF および Shield Advanced では、HTTP リクエストのヘッダーに次の情報を入力する必要があります。
- Host (必須)
リソースが作成される場所を指定するエンドポイント。エンドポイントの詳細については、「AWS サービスエンドポイント」を参照してください。例えば、CloudFront ディストリビューションの AWS WAF の
Hostヘッダーの値はwaf.amazonaws.com:443です。- x-amz-date または Date (必須)
Authorizationヘッダーに含める署名を作成するときに使用できる日付。ISO 8601 の標準形式に基づいて UTC 時間で日付を指定します (次の例を参照)。x-amz-date: 20151007T174952Zx-amz-dateまたはDateのどちらかを含める必要があります。(一部の HTTP クライアントライブラリでは、Dateヘッダーを設定することができません)。x-amz-dateヘッダーがあると、AWS WAF はリクエストの認証時にDateヘッダーを無視します。タイムスタンプは、リクエストが受け取られた時点の AWS システム時刻の 15 分以内に入っている必要があります。このようにしないと、リクエストは
RequestExpiredエラーコードで失敗し、任意のユーザーがリクエストを再現できなくなります。- Authorization (必須)
リクエスト認証に必要な情報。このヘッダーの作成方法の詳細については、「リクエストの認証」を参照してください。
- X-Amz-Target (必須)
AWSWAF_またはAWSShield_、API バージョン (ピリオドなし)、ピリオド (.)、オペレーション名を連結したもの。例えば、以下のようになります。AWSWAF_20150824.CreateWebACL- Content-Type (条件付き)
コンテンツタイプとして JSON をそのバージョンと共に指定します。例えば、次のようになります。
Content-Type: application/x-amz-json-1.1条件:
POSTリクエストに必要です。- Content-Length (条件付き)
RFC 2616 に基づくメッセージの長さ (ヘッダーなし)。
条件: リクエストボディ自体に情報が含まれる場合、必須です (このヘッダーは、ほとんどのツールキットで自動的に追加されます)。
次に示しているのは、AWS WAF で保護パック (ウェブ ACL) を作成するための HTTP リクエストのヘッダーの例です。
POST / HTTP/1.1 Host: waf.amazonaws.com:443 X-Amz-Date: 20151007T174952Z Authorization: AWS4-HMAC-SHA256 Credential=AccessKeyID/20151007/us-east-2/waf/aws4_request, SignedHeaders=host;x-amz-date;x-amz-target, Signature=145b1567ab3c50d929412f28f52c45dbf1e63ec5c66023d232a539a4afd11fd9 X-Amz-Target: AWSWAF_20150824.CreateWebACL Accept: */* Content-Type: application/x-amz-json-1.1; charset=UTF-8 Content-Length: 231 Connection: Keep-Alive
HTTP リクエストボディ
多くの AWS WAF および Shield Advanced API アクションでは、リクエストの本文に JSON 形式のデータを含める必要があります。
次に示しているリクエストの例では、シンプルな JSON ステートメントを使用して、IP アドレス 192.0.2.44 (CIDR 表記では 192.0.2.44/32) を含めるように、IPSet を更新しています。
POST / HTTP/1.1 Host: waf.amazonaws.com:443 X-Amz-Date: 20151007T174952Z Authorization: AWS4-HMAC-SHA256 Credential=AccessKeyID/20151007/us-east-2/waf/aws4_request, SignedHeaders=host;x-amz-date;x-amz-target, Signature=145b1567ab3c50d929412f28f52c45dbf1e63ec5c66023d232a539a4afd11fd9 X-Amz-Target: AWSWAF_20150824.UpdateIPSet Accept: */* Content-Type: application/x-amz-json-1.1; charset=UTF-8 Content-Length: 283 Connection: Keep-Alive { "ChangeToken": "d4c4f53b-9c7e-47ce-9140-0ee5ffffffff", "IPSetId": "69d4d072-170c-463d-ab82-0643ffffffff", "Updates": [ { "Action": "INSERT", "IPSetDescriptor": { "Type": "IPV4", "Value": "192.0.2.44/32" } } ] }