リクエストの認証 - AWS WAF、 AWS Firewall Manager、および AWS Shield Advanced

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

リクエストの認証

SDK AWS を提供する言語を使用する場合は、その SDK を使用することをお勧めします。すべての AWS SDK を使用すると、 AWS WAF または Shield Advanced API を使用する場合と比較して、リクエストに署名するプロセスが大幅に簡略化され、時間を大幅に節約できます。また、SDK は開発環境と容易に統合されるため、関連するコマンドへのアクセスが簡単です。

AWS WAF Shield Advanced では、送信するすべてのリクエストに署名して認証を受ける必要があります。リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。この関数は入力に基づいてハッシュ値を返します。入力には、リクエストのテキスト、およびシークレットアクセスキーが含まれます。ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リクエストの Authorization ヘッダーの一部です。

リクエストを受け取ると、 AWS WAF または Shield Advanced は、リクエストの署名に使用したのと同じハッシュ関数と入力を使用して署名を再計算します。結果の署名がリクエスト内の署名と一致する場合、 AWS WAF または Shield Advanced がリクエストを処理します。一致しない場合、リクエストは拒否されます。

AWS WAF および Shield アドバンスドは、AWS 署名バージョン 4 を使用した認証をサポートしています。署名の計算プロセスは 3 つのタスクに分けることができます。

タスク 1: 正規リクエストを作成する

https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html』の「Amazon Web Services 全般のリファレンスタスク 1: 署名バージョン 4 の正規リクエストを作成する」で説明されているように、正規形式で HTTP リクエストを作成します。

タスク 2: 署名対象の文字列を作成する

暗号化ハッシュ関数への入力値の 1 つとして使用する文字列を作成します。署名対象の文字列と呼ばれる文字列は、次の値を連結したものです。

  • ハッシュアルゴリズムの名前

  • リクエスト日

  • 認証情報スコープ文字列

  • 前のタスクからの正規形式のリクエスト

認証情報スコープの文字列自体は、日付、リージョン、およびサービス情報を結合したものです。

X-Amz-Credential パラメータでは、次の内容を指定します。

  • リクエストの送信先であるエンドポイントのコード (us-east-2)

  • サービスの省略形としての waf

例:

X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20130501/us-east-2/waf/aws4_request

タスク 3: 署名を作成する

2 つの入力文字列を受け取る暗号化ハッシュ関数を使用して、リクエストの署名を作成します。

  • タスク 2 からの署名対象の文字列。

  • 派生キー。シークレットアクセスキーから開始し、認証情報スコープの文字列を使用して一連のハッシュベースのメッセージ認証コード (HMAC) を作成することで、派生キーが計算されます。