AWS WAF またはShield アドバンスドへの HTTPS リクエストの実行 - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

AWS WAF またはShield アドバンスドへの HTTPS リクエストの実行

AWS WAF およびShield アドバンストリクエストは、RFC 2616で定義されているHTTPSリクエストです。他の HTTP リクエストと同様に、 AWS WAF または Shield Advanced へのリクエストには、リクエストメソッド、URI、リクエストヘッダー、およびリクエスト本文が含まれます。レスポンスには HTTP ステータスコードとレスポンスヘッダーが含まれており、レスポンス本文が含まれている場合もあります。

リクエストの URI

リクエスト URI は常に 1 つのスラッシュ / です。

HTTP ヘッダー

AWS WAF およびShield アドバンスドでは、HTTP リクエストのヘッダーに次の情報が必要です。

Host (必須)

リソースが作成される場所を指定するエンドポイント。エンドポイントの詳細については、「AWS サービスエンドポイント」を参照してください。たとえば、Host CloudFront ディストリビューションのヘッダーの値はですwaf.amazonaws.com:443。 AWS WAF

x-amz-date または日付 (必須)

Authorization ヘッダーに含める署名を作成するときに使用できる日付。ISO 8601 の標準形式に基づいて UTC 時間で日付を指定します (次の例を参照)。

x-amz-date: 20151007T174952Z

x-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 アドバンスド 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" } } ] }