

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

# Amazon EC2 の API の使用
<a name="ec2-low-level-api"></a>

**重要**  
**2022 年 10 月 14** 日現在、Amazon EC2 APIs からの HTTP レスポンスに理由コード要素が含まれなくなりました。[RFC7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2) で推奨されているように、アプリケーションが理由コードのコンテンツを使用しないようにする必要があります。アプリケーションが代わりに HTTP レスポンスに含まれる 3 桁のステータスコード要素を使用していることを確認します。

Amazon EC2 のクエリ API と、任意のプログラミング言語から Amazon EC2 にアクセスできる の AWS ソフトウェア開発キット (SDK) が用意されています。詳細については、[Amazon EC2 デベロッパーガイド](https://docs.aws.amazon.com/ec2/latest/devguide/)」を参照してください。

**Topics**
+ [必要な知識](#required-knowledge)
+ [Amazon EC2 APIs](#using-libraries)
+ [サービス別のアクション](OperationList-query.md)
+ [クエリリクエスト](Query-Requests.md)
+ [CORS サポート](cors-support.md)
+ [VM インポートマニフェスト](manifest.md)
+ [一般的なクエリパラメータ](#CommonParameters)
+ [アクセス許可](ec2-api-permissions.md)
+ [API リクエストエラーのトラブルシューティング](query-api-troubleshooting.md)
+ [エラーコード](errors-overview.md)

## 必要な知識
<a name="required-knowledge"></a>

API を介して Amazon EC2 にアクセスする場合は、以下を理解しておく必要があります。
+ XML
+ ウェブサービス
+ HTTP リクエスト
+ Java、PHP、Perl、Python、Ruby、C\#、C\+\+ などの 1 つ以上のプログラミング言語。

## Amazon EC2 APIs
<a name="using-libraries"></a>

Amazon EC2 クエリ API は、HTTP 動詞 GET または POST と という名前のクエリパラメータを使用する HTTP または HTTPS リクエストを提供します`Action`。

AWS は、HTTP または HTTPS 経由でリクエストを送信する代わりに、言語固有の APIs を使用してアプリケーションを構築するソフトウェア開発者向けに、ライブラリ、サンプルコード、チュートリアル、その他のリソースを提供します。これらのライブラリには、リクエストの暗号化による署名、リクエストの再試行、エラーレスポンスの処理などのタスクを自動的に処理する基本的な機能が用意されているため、開始が容易になります。

詳細については、[Amazon EC2 デベロッパーガイド」の AWS 「 SDK を使用して Amazon EC2 リソース](https://docs.aws.amazon.com/ec2/latest/devguide/sdk-general-information-section.html)を作成する」を参照してください。 *Amazon EC2 *

## 一般的なクエリパラメータ
<a name="CommonParameters"></a>

ほとんどの Amazon EC2 API アクションは、以下の表で説明されているパラメータをサポートしています。一般的なパラメータは、署名バージョン 2 と署名バージョン 4 のどちらを使用してリクエストに署名しているかによって異なります。詳細については、*IAM ユーザーガイド*[の AWS API リクエストの署名](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)を参照してください。

**Topics**
+ [署名バージョン 4 のパラメータ](#common-parameters-sigv4)
+ [署名バージョン 2 のパラメータ](#common-parameters-sigv2)

### 署名バージョン 4 のパラメータ
<a name="common-parameters-sigv4"></a>


| 名前 | 説明 | 必須 | 
| --- | --- | --- | 
|  `Action`  | 実行するアクション。<br />例: `RunInstances` | はい | 
|  `Version`  | 使用する API バージョン。 | はい | 
|  `X-Amz-Algorithm`  | リクエスト署名の作成に使用するハッシュアルゴリズム。<br />例: `AWS4-HMAC-SHA256` | はい | 
|  `X-Amz-Credential`  | access{{access-key-ID}}/{{YYYYMMDD}}/{{region}}/{{service}}/ 形式のリクエストの認証情報スコープ`aws4_request`<br />例: `AKIDEXAMPLE/20140707/us-east-1/ec2/aws4_request`  | はい | 
|  `X-Amz-Date`  | YYYYMMDDThhmmssZ 形式のリクエストの署名日時。日付は、 `X-Amz-Credential`パラメータの認証情報スコープに含まれる日付、または `Authorization`ヘッダーで使用される日付と一致する必要があります (表の下の注を参照）。<br />例: `20140707T150456Z` | はい | 
| X-Amz-SignedHeaders | リクエストの一部として含めるヘッダー。少なくとも、 `host`ヘッダーを含める必要があります。リクエストに `x-amz-date`ヘッダーを含める場合は、署名付きヘッダーのリストに含める必要があります。<br />例: `content-type;host;user-agent` | はい | 
|  `X-Amz-Signature`  | シークレットアクセスキーから派生した署名。<br />例: `ced6826de92d2bdeed8f846f0bf508e8559example` | はい | 
|  `X-Amz-Security-Token`  | への呼び出しを通じて取得される一時的なセキュリティトークン AWS Security Token Service。<br />例: `AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L` | いいえ | 
|  `DryRun`  | 実際にリクエストを行うことなく、アクションに必要なアクセス許可があるかどうかを確認します。必要なアクセス許可がある場合、リクエストは を返し、`DryRunOperation`それ以外の場合は を返します`UnauthorizedOperation`。 | いいえ | 

`X-Amz-Algorithm`、`X-Amz-Credential`、`X-Amz-SignedHeaders`、および `X-Amz-Signature`パラメータは、クエリ文字列で個別のパラメータとして指定することも、それらの値を 1 つの`Authorization`ヘッダーに含めることもできます。詳細については、*IAM ユーザーガイド*[の AWS API リクエストの署名](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html)を参照してください。

### 署名バージョン 2 のパラメータ
<a name="common-parameters-sigv2"></a>


| 名前 | 説明 | 必須 | 
| --- | --- | --- | 
|  `Action`  | 実行するアクション。<br />例: `RunInstances` | はい | 
|  `Version`  | 使用する API バージョン。 | はい | 
|  `AWSAccessKeyId`  | リクエスト送信者のアクセスキー ID。これにより、サービスの使用に対して課金されるアカウントが識別されます。アクセスキー ID に関連付けられているアカウントは、Amazon EC2 にサインアップする必要があります。サインアップしないと、リクエストは受け入れられません。<br /> 例: `AKIAIOSFODNN7EXAMPLE`  | はい | 
|  `Expires`  | リクエストに含まれる署名の有効期限が切れる日時。形式は YYYY-MM-DDThh:mm:ssZ です。詳細については、[ISO 8601](http://www.w3.org/TR/NOTE-datetime) を参照してください。<br />例: `2006-07-07T15:04:56Z` | 条件付き。リクエストには Timestampまたは を含める必要がありますがExpires、両方を含めることはできません。 | 
|  `Timestamp`  | リクエストが署名された日時。形式は YYYY-MM-DDThh:mm:ssZ です。詳細については、[ISO 8601](http://www.w3.org/TR/NOTE-datetime) を参照してください。<br />例: `2006-07-07T15:04:56Z` | 条件付き。リクエストには Timestampまたは を含める必要がありますがExpires、両方を含めることはできません。 | 
|  `Signature`  | リクエストの署名。<br />例: `Qnpl4Qk/7tINHzfXCiT7VEXAMPLE` | はい | 
|  `SignatureMethod`  | リクエスト署名の作成に使用するハッシュアルゴリズム。有効な値: `HmacSHA256` \| `HmacSHA1`。<br />例: `HmacSHA256` | はい | 
|  `SignatureVersion`  | リクエストに署名するときに使用する署名バージョン。この値は `2` に設定します。<br />例: `2` | はい | 
|  `DryRun`  | 実際にリクエストを行うことなく、アクションに必要なアクセス許可があるかどうかを確認します。必要なアクセス許可がある場合、リクエストは を返し、`DryRunOperation`それ以外の場合は を返します`UnauthorizedOperation`。 | いいえ | 
|  `SecurityToken`  | への呼び出しを通じて取得される一時的なセキュリティトークン AWS Security Token Service。<br />例: `AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/L` | いいえ | 

パラメータ値は URL エンコードする必要があります。これは、Amazon EC2 に渡されるクエリパラメータに当てはまります。通常、 `Signature`パラメータで必要です。一部のクライアントはこれを自動的に行いますが、これは標準ではありません。