

# リクエスト認証での署名バージョンの指定
<a name="specify-signature-version"></a>

 Amazon S3 は、ほとんどの AWS リージョン で AWS Signature Version 4 のみをサポートしています。ただし、初期の AWS リージョン のいくつかでは、Amazon S3 は Signature Version 4 と Signature Version 2 をサポートしています。ただし、署名バージョン 2 はオフになっています (廃止)。Signature Version 2 のサポート終了についての詳細は、「」を参照してください[Amazon S3 用の AWS 署名バージョン 2 がオフになっている (廃止)](#UsingAWSSDK-sig2-deprecation)

すべての Amazon S3 リージョンとリージョンでサポートされている署名バージョンのリストについては *AWS 全般のリファレンス*の[リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)を参照してください。

すべての AWS リージョン では、AWS SDK はデフォルトで Signature Version 4 を使用してリクエストを認証します。2016 年 5 月以前にリリースされた AWS SDK を使用する場合、次の表に示すように、Signature Version 4 のリクエストが必要になることがあります。


| SDK | リクエスト認証に署名バージョン 4 を使用するようリクエストする | 
| --- | --- | 
| AWS CLI | デフォルトプロファイルの場合、次のコマンドを実行します。<pre>$ aws configure set default.s3.signature_version s3v4</pre><br />カスタムプロファイルの場合、次のコマンドを実行します。<pre>$ aws configure set profile.your_profile_name.s3.signature_version s3v4</pre> | 
| Java SDK | コードに以下を追加します:<pre>System.setProperty(SDKGlobalConfiguration.ENABLE_S3_SIGV4_SYSTEM_PROPERTY, "true");</pre><br />または、コマンドラインで次のように指定します。<pre>-Dcom.amazonaws.services.s3.enableV4</pre> | 
|  JavaScript SDK | クライアントを構築するときに、`signatureVersion` パラメータを `v4` に設定します。<pre>var s3 = new AWS.S3({signatureVersion: 'v4'});</pre> | 
| PHP SDK | PHP SDK v2 用の Amazon S3 サービスクライアントを構築する場合は、`signature` パラメータを `v4` に設定します。<pre><?php <br />$client = S3Client::factory([<br />    'region' => 'YOUR-REGION',<br />    'version' => 'latest',<br />    'signature' => 'v4'<br />]);</pre><br />PHP SDK v3 を使用している場合、Amazon S3 サービスクライアントの構築中に `signature_version` パラメータを `v4` に設定します。<pre><?php <br />$s3 = new Aws\S3\S3Client([<br />    'version' => '2006-03-01',<br />    'region' => 'YOUR-REGION',<br />    'signature_version' => 'v4'<br />]);</pre> | 
| Python-Boto SDK | boto デフォルト設定ファイルに以下を指定します。<pre>[s3] use-sigv4 = True</pre> | 
| Ruby SDK | Ruby SDK - バージョン 1: クライアントを構築するときに `:s3_signature_version` パラメータを `:v4` に設定します。<pre>s3 = AWS::S3::Client.new(:s3_signature_version => :v4)</pre><br />Ruby SDK - バージョン 3: クライアントを構築するときに `signature_version` パラメータを `v4` に設定します。<pre>s3 = Aws::S3::Client.new(signature_version: 'v4')</pre> | 
| .NET SDK | Amazon S3 クライアントを作成する前に、コードに以下を追加します。<pre>AWSConfigsS3.UseSignatureVersion4 = true;</pre><br />または、以下を設定ファイルに追加します:<pre><appSettings><br />   <add key="AWS.S3.UseSignatureVersion4" value="true" /><br /></appSettings></pre> | 

 

## Amazon S3 用の AWS 署名バージョン 2 がオフになっている (廃止)
<a name="UsingAWSSDK-sig2-deprecation"></a>

署名バージョン 2 は Amazon S3 でオフになっています (廃止)。Amazon S3 は署名バージョン 4 を使用して署名された API リクエストのみを受けつけます。

このセクションでは、署名バージョン 2 のサポート終了に関するよくある質問への回答が掲載されています。

**署名バージョン 2 または 4 とは何ですか。また、署名リクエストとはどういう意味ですか。**  
署名バージョン 2 または署名バージョン 4 の署名プロセスは、Amazon S3 API リクエストを認証するために使用されます。リクエストの署名により、Amazon S3 によってリクエストの送信者を識別し、悪意のある人物からリクエストを保護することができます。

AWS リクエストの署名の詳細については、「*AWS 全般のリファレンス*」の「[AWS API リクエストの署名](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)」を参照してください。

**どの更新を実行していますか。**  
現在、署名バージョン 2 および署名バージョン 4 のプロセスを使用して署名された Amazon S3 API リクエストがサポートされています。今後、Amazon S3 は署名バージョン 4 を使用して署名したリクエストのみを受け入れるようになります。

AWS リクエストの署名の詳細については、「*AWS 全般のリファレンス*」の「[Signature Version 4 の変更](https://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html)」を参照してください。

**なぜこの更新を実行するのですか。**  
署名バージョン 4 は、シークレットアクセスキーに代わって、署名されたキーを使用することでセキュリティの向上を提供します。Signature Version 4 は現在すべての AWS リージョン でサポートされていますが、Signature Version 2 は 2014 年 1 月以前にリリースしたリージョンにおいてのみサポートされます。この更新によって、すべてのリージョンを通してより一貫したエクスペリエンスを提供することができます。

**署名バージョン 4 を使用していることはどのように確認できますか。また、どの更新が必要ですか。**  
リクエストを署名するために使用する署名バージョンは、通常の場合、クライアント側のツールあるいは SDK によって設定されます。デフォルトでは、最新バージョンの AWS SDK は Signature Version 4 を使用します。サードパーティのソフトウェアについては、お使いのソフトウェアに該当するサポートチームにお問い合わせいただき、必要なバージョンを確認してください。Amazon S3 にダイレクト REST コールを送信する場合、アプリケーションを変更して署名バージョン 4 の署名プロセスを使用する必要があります。

Signature Version 4 に移行するときに使用する AWS SDK のバージョンについての詳細は、[署名バージョン 2 から署名バージョン 4 への移行](#UsingAWSSDK-move-to-Sig4) を参照してください。

Amazon S3 REST API で Signature Version 4 を使用する方法については、*Amazon Simple Storage Service API リファレンス*の[リクエストの認証 (AWSSignature Version 4) ](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)を参照してください。

**更新しない場合には、どうなりますか。**  
以降に署名バージョン 2 で署名されたリクエストは、Amazon S3 における認証で失敗します。リクエスト送信者には、リクエストが署名バージョン 4 で署名されている必要があることのエラーが表示されます。

**7 日以上にわたって署名することが必要である署名付き URL を使用していても、変更することが必要ですか。**  
7 日以上にわたって署名することが必要である署名付き URL を使用している場合、現在のところ対応する必要はありません。引き続き AWS Signature Version 2 を使用して署名し、署名付き URL を認証できます。今後、署名付き URL シナリオにおける署名バージョン 4 への移行方法に関する詳細をフォローアップして、提供する予定です。

### 詳細
<a name="UsingAWSSDK-sev2-deprecation-more-info"></a>
+ Signature Version 4 の使用方法の詳細については、[AWS API リクエストの署名](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)を参照してください。
+ 署名バージョン 2 と 署名バージョン 4 の変更点のリストについては、「[署名バージョン 4 の変更](https://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html)」を参照してください。
+ AWS フォーラムの投稿である [Amazon S3 API リクエストの署名における AWS Signature Version 2 から AWS Signature Version 4 への移行](https://forums.aws.amazon.com/ann.jspa?annID=5816)を参照してください。
+ ご質問やご意見がありましたら、[サポート](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html) までお問い合わせください。

   

## 署名バージョン 2 から署名バージョン 4 への移行
<a name="UsingAWSSDK-move-to-Sig4"></a>

Amazon S3 API リクエスト認証に署名バージョン 2 を現在使用している場合は、署名バージョン 4 の使用に移行する必要があります。「[Amazon S3 用の AWS 署名バージョン 2 がオフになっている (廃止)](#UsingAWSSDK-sig2-deprecation)」で説明されているとおり、署名バージョン 2 のサポートは終了します。

Amazon S3 REST API で Signature Version 4 を使用する方法については、*Amazon Simple Storage Service API リファレンス*の[リクエストの認証 (AWSSignature Version 4) ](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)を参照してください。

次の表では、署名バージョン 4 (SigV4) を使用するために必要な最低限のバージョンの SDK の一覧を示しています。AWS Java、JavaScript (Node.js)、あるいは Python (Boto/CLI) SDK を使った署名付き URL を使用している場合は、正しい AWS リージョン を設定し、クライアント設定で Signature Version 4 を設定する必要があります。クライアント設定で `SigV4` を設定する詳細については、「[リクエスト認証での署名バージョンの指定](#specify-signature-version)」を参照してください。


| この SDK または製品を使用する場合 | この SDK バージョンにアップグレード | Sigv4 を使用するために、クライアントでコード変更が必要ですか。 | SDK ドキュメントへのリンク | 
| --- | --- | --- | --- | 
| AWS SDK for Java v1 | Java 1.11.201 以降または v2 にアップグレード。 | はい | [リクエスト認証での署名バージョンの指定](#specify-signature-version) | 
| AWS SDK for Java v2 | SDK のアップグレードは不要です。 | いいえ | [AWS SDK for Java](https://aws.amazon.com/sdk-for-java/) | 
| AWS SDK for .NET v1  | 3.1.10 以降にアップグレード。 | はい | [AWS SDK for .NET](https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v1/) | 
| AWS SDK for .NET v2  | 3.1.10 以降にアップグレード。 | いいえ | [AWS SDK for .NET v2](https://github.com/aws/aws-sdk-net/tree/aws-sdk-net-v2/) | 
| AWS SDK for .NET v3  | 3.3.0.0 以降にアップグレード。 | はい | [AWS SDK for .NET v3](https://github.com/aws/aws-sdk-net) | 
| AWS SDK for JavaScript v1  | 2.68.0 以降にアップグレード。 | はい | [AWS SDK for JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK for JavaScript v2  | 2.68.0 以降にアップグレード。 | はい | [AWS SDK for JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK for JavaScript v3  | 現在のところ、何もする必要はありません。主要バージョン V3 in Q3 2019 にアップグレード。 | いいえ | [AWS SDK for JavaScript](https://github.com/aws/aws-sdk-js) | 
| AWS SDK for PHP v1  | 最新バージョンの PHP、または少なくとも S3 クライアントの設定で署名パラメータを v4 に設定した v2.7.4 にアップグレードすることをお勧めします。 | はい | [AWS SDK for PHP](https://aws.amazon.com/sdk-for-php/) | 
| AWS SDK for PHP v2  | 最新バージョンの PHP、または少なくとも S3 クライアントの設定で署名パラメータを v4 に設定した v2.7.4 にアップグレードすることをお勧めします。 | いいえ | [AWS SDK for PHP](https://aws.amazon.com/sdk-for-php/) | 
| AWS SDK for PHP v3  | SDK のアップグレードは不要です。 | いいえ | [AWS SDK for PHP](https://aws.amazon.com/sdk-for-php/) | 
| Boto2  | Boto2 v2.49.0 にアップグレード。 | はい | [Boto 2 アップグレード](https://github.com/boto/boto/commit/16729da27b95d6dbbd81bcebb43bcf099ce23fd3) | 
| Boto3  | 1.5.71 (Botocore)、1.4.6 (Boto3) にアップグレード。 | はい | [Boto 3 - AWS SDK for Python](https://github.com/boto/boto3) | 
| AWS CLI  | 1.11.108 にアップグレード。 | はい | [AWS Command Line Interface](https://aws.amazon.com/cli/) | 
| AWS CLI v2 (プレビュー)  | SDK のアップグレードは不要です。 | いいえ | [AWS Command Line Interface バージョン 2](https://github.com/aws/aws-cli/tree/v2) | 
| AWS SDK for Ruby v1  | Ruby V3 にアップグレード。 | はい | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| AWS SDK for Ruby v2  | Ruby V3 にアップグレード。 | はい | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| AWS SDK for Ruby v3  | SDK のアップグレードは不要です。 | いいえ | [Ruby V3 for AWS](https://rubygems.org/gems/aws-sdk/versions) | 
| Go  | SDK のアップグレードは不要です。 | いいえ | [AWS SDK for Go](https://aws.amazon.com/sdk-for-go/) | 
| C\+\+  | SDK のアップグレードは不要です。 | いいえ | [AWS SDK for C\+\+](https://aws.amazon.com/sdk-for-cpp/) | 

**AWS Tools for Windows PowerShell または AWS Tools for PowerShell Core**  
3.3.0.0 より*前*のモジュールバージョンを使用している場合は、3.3.0.0 にアップグレードする必要があります。

バージョン情報を取得するには、`Get-Module` コマンドレットを使用します。

```
          Get-Module –Name AWSPowershell
          Get-Module –Name AWSPowershell.NetCore
```



3.3.0.0 バージョンに更新するには、`Update-Module` コマンドレットを使用します。

```
          Update-Module –Name AWSPowershell
          Update-Module –Name AWSPowershell.NetCore
```

署名バージョン 2 をトラフィックで送信する、7 日間以上で有効な署名付き URL を使用できます。