

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

# Amazon S3 のデータ整合性保護
<a name="feature-dataintegrity"></a>

**注記**  
設定ページのレイアウトの理解、または以下の ** AWS SDKs**「」を参照してください[このガイドの設定ページについて](settings-reference.md#settingsPages)。

しばらくの間、 AWS SDKs は Amazon Simple Storage Service にデータをアップロードするとき、または Amazon Simple Storage Service からデータをダウンロードするときに、データ整合性チェックをサポートしています。以前は、これらのチェックはオプトインされていました。現在、CRC32 や CRC64NVME などの CRC ベースのアルゴリズムを使用して、これらのチェックがデフォルトで有効になっています。各 SDK またはツールにはデフォルトのアルゴリズムがありますが、別のアルゴリズムを選択できます。必要に応じて、アップロード用に事前に計算されたチェックサムを引き続き手動で指定することもできます。アップロード、マルチパートアップロード、ダウンロード、暗号化モード間で一貫した動作により、クライアント側の整合性チェックが簡素化されます。

 最新バージョンの AWS SDKs を使用して、アップロードごとに[周期冗長チェック (CRC) ベースのチェックサム](https://en.wikipedia.org/wiki/Cyclic_redundancy_check) AWS CLI を自動的に計算し、Amazon S3 に送信します。Amazon S3 はサーバー側のチェックサムを個別に計算し、指定された値で検証してから、オブジェクトとそのチェックサムをオブジェクトのメタデータに永続的に保存します。オブジェクトと共にメタデータにチェックサムを保存することで、オブジェクトのダウンロード時に同じチェックサムが自動的に返され、ダウンロードの検証にも使用することができます。オブジェクトのメタデータに保存されているチェックサムはいつでも確認できます。

 チェックサムオペレーション、マルチパートアップロード、またはサポートされているチェックサムアルゴリズムのリストの詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 でのオブジェクトの整合性のチェック](https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html)」を参照してください。

 **マルチパートアップロード:**

Amazon S3 は、単一パートアップロードとマルチパートアップロードにわたって一貫性のある完全なフルオブジェクトチェックサムをデベロッパーに提供します。

マルチパートでファイルをアップロードする場合、SDK は各パートのチェックサムを計算します。Amazon S3 は、これらのチェックサムを使用し、`UploadPart` API を通じて各パートの整合性を検証します。さらに、Amazon S3 は `CompleteMultipartUpload` API を呼び出すときにファイル全体のサイズとチェックサムを検証します。

SDK にマルチパートアップロードを支援する Amazon S3 Transfer Manager がある場合、チェックサムは、[AWS SDKsとツールによるサポート](#dataintegrity-sdk-compat) テーブルにある SDK 固有のデフォルトアルゴリズムを使用してパートについて検証されます。`checksum_type` を `FULL_OBJECT` に設定するか、CRC64NVME アルゴリズムを使用することを選択することで、完全なオブジェクトチェックサムにオプトインできます。

**古いバージョンの SDK または AWS CLIを使用している場合:** 

アプリケーションが 2024 年 12 月より前のバージョンの SDK またはツールを使用している場合でも、Amazon S3 は新しいオブジェクトに対して CRC64NVME チェックサムを計算し、今後の参照のためにオブジェクトのメタデータに保存します。後で、保存された CRC をユーザー側で計算された CRC と比較し、ネットワーク送信が正常であったことを確認できます。また、独自の事前計算されたチェックサムに [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html) または [https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html) リクエストを提供することで、整合性保護を手動で拡張することもできます。これは、古いバージョンでの対処のための標準的な手法です。



この機能を設定するには、以下のように使用します。

**`request_checksum_calculation` - 共有 AWS `config`ファイル設定`AWS_REQUEST_CHECKSUM_CALCULATION` - 環境変数`aws.requestChecksumCalculation` - JVM システムプロパティ: Java/Kotlin のみ**  
デフォルトでは、ユーザーはリクエストの送信時にリクエストのチェックサムを計算するようオプトインされます。ユーザーは、リクエストの構築の一環として、[使用可能なチェックサムアルゴリズム](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html)のいずれかを選択できます。選択しない場合は、SDK 固有のデフォルトアルゴリズムが使用されます。各 SDK またはツールのデフォルトアルゴリズムについては、[AWS SDKsとツールによるサポート](#dataintegrity-sdk-compat) テーブルを参照してください。  
**デフォルト値**: `WHEN_SUPPORTED`  
**有効な値:**  
+ **`WHEN_SUPPORTED`** – チェックサム検証は、Amazon S3 へのデータ転送など、API オペレーションでサポートされている場合、すべてのリクエストペイロードで実行されます。
+ **`WHEN_REQUIRED`** – チェックサム検証は、API オペレーションで必要な場合にのみ実行されます。

**`response_checksum_validation` - 共有 AWS `config`ファイル設定`AWS_RESPONSE_CHECKSUM_VALIDATION` - 環境変数`aws.responseChecksumValidation` - JVM システムプロパティ: Java/Kotlin のみ**  
デフォルトでは、ユーザーはリクエストの送信時にレスポンスのチェックサムの検証にオプトインされます。チェックサムはレスポンスペイロードに対して計算され、チェックサムのレスポンスヘッダーと比較されます。チェックサムの検証に失敗すると、ペイロードの読み取り時にエラーが発生します。  
 チェックサムのレスポンスヘッダーには、チェックサムのアルゴリズムも示されます。Amazon S3 クライアントは、チェックサムをサポートするすべての Amazon S3 API オペレーションのレスポンスのチェックサム検証を試みます。ただし、SDK が指定されたチェックサムアルゴリズムを実装していない場合、この検証はスキップされます。  
**デフォルト値**: `WHEN_SUPPORTED`  
**有効な値:**  
+ **`WHEN_SUPPORTED`** – チェックサム検証は、Amazon S3 へのデータ転送など、API オペレーションでサポートされている場合、すべてのレスポンスペイロードで実行されます。
+ **`WHEN_REQUIRED`** – チェックサム検証は、API オペレーションでサポートされ、呼び出し元がオペレーションのチェックサムを明示的に有効にしている場合にのみ実行されます。例えば、Amazon S3 `GetObject` API が呼び出され、`ChecksumMode` パラメータが有効に設定されている場合などです。

## AWS SDKsとツールによるサポート
<a name="dataintegrity-sdk-compat"></a>

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。

**注記**  
次の表では、「CRT」は [AWS 共通ランタイム (CRT) ライブラリ](common-runtime.md) を参照しており、プロジェクトへの依存関係の追加が必要になる場合があります。


| SDK | サポート | デフォルトのチェックサムアルゴリズム | サポートされているチェックサムアルゴリズム | 注意または詳細情報 | 
| --- | --- | --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | はい | CRC64NVME | CRC64NVME、CRC32、CRC32C、SHA1、SHA256 |  AWS CLI v1 の場合、デフォルトのアルゴリズムとサポートされているアルゴリズムは Python (Boto3) と同じになります。 | 
| [SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | はい | CRC64NVME | CRC64NVME、CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | はい | CRC32 | CRC64NVME、CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | いいえ |  |  |  | 
| [SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | はい | CRC32 | CRC64NVME (CRT のみ)、CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | いいえ |  |  |  | 
| [SDK for JavaScript 3.x](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for JavaScript 2.x](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | いいえ |  |  |  | 
| [SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for .NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | はい | CRC32 | CRC32、CRC32C (CRT 経由のみ)、SHA1、SHA256 | CRC32C を使用するには awscrt 拡張機能が必要です。 | 
| [SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | はい | CRC32 | CRC64NVME (CRT のみ)、CRC32、CRC32C (CRT のみ)、SHA1、SHA256 |  | 
| [SDK for Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | はい | CRC32 | CRC64NVME (CRT のみ)、CRC32、CRC32C (CRT のみ)、SHA1、SHA256 |  | 
| [SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | はい | CRC32 | CRC64NVME、CRC32、CRC32C、SHA1、SHA256 |  | 
| [SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | はい | CRC32 | CRC64NVME、CRC32、CRC32C、SHA1、SHA256 | すべてのアルゴリズムに必要な CRT 依存関係。 | 
| [PowerShell V5 のツール](https://docs.aws.amazon.com/powershell/latest/userguide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 
| [PowerShell V4 のツール](https://docs.aws.amazon.com/powershell/v4/userguide/) | はい | CRC32 | CRC32、CRC32C、SHA1、SHA256 |  | 