AWS 全般のリファレンス
リファレンスガイド (Version 1.0)

AWS 署名バージョン 4 のリクエストの要素

バージョン 4 の署名を使用する各 HTTP/HTTPS リクエストには、これらの要素を含める必要があります。

  • エンドポイント仕様

  • Action

  • 必須およびオプションのパラメータ

  • 日付

  • 認証パラメータ

エンドポイント仕様

これは、HTTP/1.1 リクエストの Host ヘッダーとして指定されています。このヘッダーでは、リクエストの送信先となるコンピュータの DNS 名 (例: dynamodb.us-east-1.amazonaws.com) を指定します。

HTTP/1.1 リクエストには、Host ヘッダーを含める必要があります。HTTP/2 リクエストの場合は、:authority ヘッダー、または Host ヘッダーを使用できます。HTTP/2 仕様にのみ準拠するには、:authority ヘッダーのみ使用します。すべてのサービスが HTTP/2 リクエストをサポートしているとは限らないため、サービスマニュアルで詳細を確認してください。

エンドポイントには通常、サービス名とリージョンが含まれており、どちらも Credential 認証パラメータの一部として使用する必要があります。たとえば、eu-west-1 リージョンの Amazon DynamoDB エンドポイントは、dynamodb.eu-west-1.amazonaws.com です。リージョンを指定していない場合は、デフォルトリージョンである us-east-1 がウェブサービスで使用されます。グローバルに一意であるエンドポイントを使用する IAM のようなサービスを使用する場合は、Credential 認証パラメータの一部として、デフォルトリージョン (us-east-1) を使用します (このトピックの後半で説明)。

AWS がサポートするエンドポイントの全リストについては、「リージョンとエンドポイント」を参照してください。

アクション

この要素では、ウェブサービスを実行するアクション (例: DynamoDB CreateTable アクションまたは Amazon EC2 の DescribeInstances アクション) を指定します。指定されたアクションによって、リクエスト内で使用されるパラメータが決まります。クエリ API では、アクションは API 名です。非クエリ API (例: RESTful API) については、サービスドキュメントで正しいアクションを参照してください。

必須およびオプションのパラメータ

この要素では、リクエストアクションのパラメータを指定します。ウェブサービスの各アクションには、API コールを定義する必須およびオプションのパラメータセットがあります。API バージョンは通常、必須パラメータです。必須およびオプションのパラメータの詳細については、サービスドキュメントを参照してください。

日付

リクエストを行う日時。日付をリクエストに含めると、サードパーティーによるリクエストの傍受や再送信の防止に役立ちます。日付は、ISO8601 基本形式を使用し、x-amz-date ヘッダーを介して YYYYMMDD'T'HHMMSS'Z' 形式で指定します。

認証パラメータ

送信する各リクエストには、リクエストの有効性と正統性を確保するために AWS によって使用される次のパラメータセットを含める必要があります。

  • Algorithm.署名プロセスの一部として使用しているハッシュアルゴリズム。たとえば、ハッシュの作成に SHA-256 を使用する場合は、AWS4-HMAC-SHA256 という値を使用します。

  • 認証情報スコープ。アクセスキー ID および認証情報スコープのコンポーネントを連結することで形作られ、スラッシュ("/")で区切られる文字列。認証情報スコープには、YYYYMMDD 形式の日付、AWS リージョン、サービス名、および特殊な終了文字列(aws4_request) が含まれます。たとえば、次の文字列は、us-east-1 リージョンの IAM リクエストの Credential パラメータを表します。

    AKIAIOSFODNN7EXAMPLE/20111015/us-east-1/iam/aws4_request

    重要

    リージョン、サービス名、および特殊な終了文字列には、小文字を使用する必要があります。

  • SignedHeaders 署名に含める HTTP/HTTPS ヘッダーのセミコロン (";") で区切られたリスト。

  • Signature A hexadecimal-encoded string that represents the output of the signature operation described in 「タスク 3: AWS 署名バージョン 4 の署名を計算する」で説明されている署名操作の出力を表す 16 進エンコードされた文字列。Algorithm パラメータで指定したアルゴリズムを使用して署名を計算する必要があります。

署名付きリクエストの例を確認するには、「完全なバージョン 4 署名プロセスの例 (Python)」を参照してください。