

# データ保護と暗号化
<a name="s3-express-data-protection"></a>

 ディレクトリバケットの暗号化を設定する方法の詳細については、以下のトピックを参照してください。

**Topics**
+ [サーバー側の暗号化](#s3-express-ecnryption)
+ [ディレクトリバケットのデフォルト暗号化の設定とモニタリング](s3-express-bucket-encryption.md)
+ [ディレクトリバケットでの AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用](s3-express-UsingKMSEncryption.md)
+ [転送中の暗号化](#s3-express-ecnryption-transit)
+ [データの削除](#s3-express-data-deletion)

## サーバー側の暗号化
<a name="s3-express-ecnryption"></a>

すべてのディレクトリバケットにはデフォルトで暗号化が設定されており、ディレクトリバケットにアップロードされたすべての新しいオブジェクトは保存時に自動的に暗号化されます。Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) は、すべてのディレクトリバケットでのデフォルトの暗号化設定です。別の暗号化タイプを指定する場合は、バケットのデフォルトの暗号化設定を設定することで、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS) を使用できます。ディレクトリバケットの SSE-KMS の詳細については、「[ディレクトリバケットでの AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用](s3-express-UsingKMSEncryption.md)」を参照してください。

バケットのデフォルトの暗号化では、必要な暗号化設定を使用することをお勧めします。`CreateSession` リクエストまたは `PUT` オブジェクトリクエストでは、バケットのデフォルトの暗号化を上書きしないことをお勧めします。その後、新しいオブジェクトは必要な暗号化設定で自動的に暗号化されます。ディレクトリバケットの暗号化の上書き動作の詳細については、「[新しいオブジェクトのアップロードに AWS KMS を使用してサーバー側の暗号化を指定する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html)」を参照してください。

ディレクトリバケットを使用する SSE-KMS は、以下の点で汎用バケットの SSE-KMS とは異なります。
+ SSE-KMS 設定では、バケットの存続期間中、ディレクトリバケットごとに 1 つの[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)しかサポートできません。[https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) (`aws/s3`) はサポートされていません。また、SSE-KMS のカスタマーマネージドキーを指定した後は、バケットの SSE-KMS 設定のカスタマーマネージドキーを上書きすることはできません。

  バケットの SSE-KMS 設定に指定したカスタマーマネージドキーは、次のように識別できます。
  + `HeadObject` API オペレーションリクエストを実行して、レスポンス内の `x-amz-server-side-encryption-aws-kms-key-id` の値を検索します。

  データに新しいカスタマーマネージドキーを使用するには、新しいカスタマーマネージドキーを使用して既存のオブジェクトを新しいディレクトリバケットにコピーすることをお勧めします。
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) および [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) を除く[ゾーンエンドポイント (オブジェクトレベル) API オペレーション](s3-express-differences.md#s3-express-differences-api-operations)では、[CreateSession](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html) を介してリクエストを認証および承認することで低レイテンシーを実現します。バケットのデフォルトの暗号化では、必要な暗号化設定を使用することをお勧めします。`CreateSession` リクエストまたは `PUT` オブジェクトリクエストでは、バケットのデフォルトの暗号化を上書きしないことをお勧めします。その後、新しいオブジェクトは必要な暗号化設定で自動的に暗号化されます。SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトを暗号化するには、KMS キー (特に[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります その後、ゾーンエンドポイント API オペレーションのセッションが作成されると、セッション中に新しいオブジェクトが SSE-KMS および S3 バケットキーで自動的に暗号化および復号されます。ディレクトリバケットの暗号化の上書き動作の詳細については、「[新しいオブジェクトのアップロードに AWS KMS を使用してサーバー側の暗号化を指定する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html)」を参照してください。

  ゾーンエンドポイント API コール ([CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) および [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) を除く) では、`CreateSession` リクエストの暗号化設定 (`x-amz-server-side-encryption`、`x-amz-server-side-encryption-aws-kms-key-id`、`x-amz-server-side-encryption-context`、`x-amz-server-side-encryption-bucket-key-enabled`) の値を上書きすることはできません。ゾーンエンドポイント API コールでこれらの暗号化設定値を明示的に指定する必要はありません。Amazon S3 は `CreateSession` リクエストの暗号化設定値を使用してディレクトリバケット内の新しいオブジェクトを保護します。
**注記**  
AWS CLI または AWS SDK を使用する場合、セッショントークンは `CreateSession` に対して自動的に更新され、セッションの有効期限が切れたときのサービス中断を回避します。AWS CLI または AWS SDK は、`CreateSession` リクエストにバケットのデフォルトの暗号化設定を使用します。`CreateSession` リクエストの暗号化設定値を上書きすることはサポートされていません。また、ゾーンエンドポイント API コール ([CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) および [UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) を除く) では、`CreateSession` リクエストからの暗号化設定の値を上書きすることはできません。
+ [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) の場合、SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトコピーを暗号化するには、KMS キー (特に[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります。次に、SSE-KMS で新しいオブジェクトコピーにサーバー側の暗号化設定を指定するときは、暗号化キーがディレクトリバケットのデフォルトの暗号化設定に指定したカスタマーマネージドキーと同じであることを確認する必要があります。[UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) では、SSE-KMS を使用してディレクトリバケット内の新しいオブジェクトパーツコピーを暗号化するには、KMS キー (特に[カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)) を使用してディレクトリバケットのデフォルトの暗号化設定として SSE-KMS を指定する必要があります。[UploadPartCopy](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html) リクエストヘッダーで SSE-KMS を使用して新しいオブジェクトパートコピーのサーバー側の暗号化設定を指定することはできません。また、[CreateMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html) リクエストで指定する暗号化設定は、送信先バケットのデフォルトの暗号化設定と一致する必要があります。
+ S3 バケットキーは、ディレクトリバケット内の `GET` および `PUT` オペレーションで常に有効になっており、無効にすることはできません。SSE-KMS で暗号化されたオブジェクトを、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、[https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html)、[バッチオペレーションの Copy オペレーション](directory-buckets-objects-Batch-Ops.md)、または [import ジョブ](create-import-job.md)を使用して、汎用バケットからディレクトリバケットへ、ディレクトリバケットから汎用バケットへ、またはディレクトリバケット間でコピーする場合、S3 バケットキーはサポートされません。この場合、KMS で暗号化されたオブジェクトのコピーリクエストが実行されるたびに、Amazon S3 は AWS KMS を呼び出します。
+ ディレクトリバケットで暗号化に [AWS KMS カスタマーマネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)を指定する場合は、キー ID またはキー ARN のみを使用します。KMS キーのキーエイリアス形式はサポートされていません。

ディレクトリバケットは、AWS Key Management Service (AWS KMS) キーによる二層式サーバー側の暗号化 (DSSE-KMS) またはお客様が提供する暗号化キーを使用したサーバー側の暗号化 (SSE-C) をサポートしていません。

## 転送中の暗号化
<a name="s3-express-ecnryption-transit"></a>

ディレクトリバケットでは、リージョン API エンドポイントとゾーン API エンドポイントを使用します。使用する Amazon S3 API オペレーションに応じて、リージョンゾーンエンドポイントまたはゾーンエンドポイントのいずれかが必要です。ゲートウェイ仮想プライベートクラウド (VPC) エンドポイントを通じて、ゾーン API オペレーションとリージョン API オペレーションにアクセスできます。ゲートウェイエンドポイントは追加料金なしで使用できます。リージョン API エンドポイントとゾーン API エンドポイントの詳細については、「[ディレクトリバケットのネットワーク](s3-express-networking.md)」を参照してください。

## データの削除
<a name="s3-express-data-deletion"></a>

Amazon S3 コンソール、AWS SDK、AWS Command Line Interface (AWS CLI)、または Amazon S3 REST API を使用して、ディレクトリバケットから 1 つ以上のオブジェクトを直接削除できます。ディレクトリバケット内のすべてのオブジェクトにはストレージ コストが発生するため、不要になったオブジェクトを削除することをお勧めします。

ディレクトリバケットに保存されているオブジェクトを削除すると、削除されるオブジェクト以外のオブジェクトが親ディレクトリに含まれていない場合、親ディレクトリも再帰的に削除されます。

**注記**  
S3 Express One Zone では、多要素認証 (MFA) 削除と S3 バージョニングはサポートされていません。