お客様が指定したキーによるサーバー側の暗号化 (SSE−C) の使用
サーバー側の暗号化は、保管時のデータ保護に関するものです。サーバー側の暗号化では、オブジェクトのメタデータではなく、オブジェクトデータのみが暗号化されます。汎用バケットでお客様が用意したキーでのサーバー側の暗号化 (SSE−C) を使用すると、独自の暗号化キーでデータを暗号化できます。リクエストの一部として用意された暗号化キーで、Amazon S3 は、ディスクに書き込む際のデータ暗号化と、オブジェクトにアクセスする際のデータ復号を管理します。したがって、データの暗号化と復号を実行するコードをお客様が管理する必要はありません。必要なことは、お客様が用意する暗号化キーを管理することだけです。
2026 年 4 月以降、すべての新規汎用バケットと SSE-C で暗号化されたオブジェクトが存在しないアカウント内の既存のバケットに対して、SSE-C はデフォルトで無効になります。最新のワークロードのほとんどは、代わりに Amazon S3 マネージドキー (SSE-S3) または AWS KMS キー (SSE-KMS) によるサーバー側の暗号化を使用しています。SSE-C では、すべてのリクエストに暗号化キーを提供する必要があるため、データを操作する他のユーザー、ロール、または AWS サービスとアクセスを共有することは実用的ではありません。SSE-KMS の詳細については、「AWS KMS キーによるサーバー側の暗号化 (SSE-KMS) の使用」を参照してください。
ワークロードに SSE-C が必要な場合は、PutBucketEncryption API を使用してバケットのデフォルトの暗号化設定で BlockedEncryptionTypes を NONE に設定して明示的に有効にする必要があります。SSE-C がブロックされている間は、SSE-C 暗号化を指定する PutObject、CopyObject、PostObject、マルチパートアップロードまたはレプリケーションリクエストは、HTTP 403 AccessDenied エラーで拒否されます。詳細については汎用バケットの SSE-C のブロックまたはブロック解除を参照してください。
SSE-C の使用に追加料金はかかりません。ただし、SSE-C を設定および使用するためのリクエストには、標準の Amazon S3 リクエスト料金が発生します。料金については、「Amazon S3 の料金
重要
Amazon Simple Storage Service では、すべての新しい汎用バケットについて、お客様が用意したキーによるサーバー側の暗号化 (SSE-C) を自動的に無効にする新しいデフォルトのバケットセキュリティ設定が適用されるようになりました。2026 年 4 月、Amazon S3 は更新をデプロイし、すべての新しい汎用バケットで、すべての新しい書き込みリクエストに対して SSE-C 暗号化が無効になるようにしました。SSE-C で暗号化されたオブジェクトがない AWS アカウント内の既存のバケットの場合、Amazon S3 はすべての新しい書き込みリクエストに対しても SSE-C を無効にしました。この変更により、SSE-C 暗号化を必要とするアプリケーションは、新しいバケットの作成後に PutBucketEncryption API オペレーションを介して SSE-C の使用を意図的に有効にする必要があります。この変更の詳細については、「新しいバケットの SSE-C 設定に関するよくある質問」を参照してください。
SSE-C を使用する前の考慮事項
-
S3 は暗号化キーを保存しません。S3 から SSE-C 暗号化データをダウンロードするたびに、暗号化キーを指定する必要があります。
-
使用した暗号化キーと暗号化したオブジェクトのマッピングは、お客様に管理していただきます。どのオブジェクトにどの暗号化キーを使用したかは、お客様が管理してください。これは、暗号化キーを紛失した場合、オブジェクトも失われることを意味します。
-
クライアント側の暗号化キーはお客様が管理するため、キーの更新など、クライアント側での追加の安全対策はお客様に管理していただきます。
-
この設計により、データ操作を必要とする他のユーザー、ロール、または AWS のサービスと SSE-C キーを共有することが困難になる可能性があります。AWS 全体で SSE-KMS が広範囲にサポートされているため、ほとんどの最新のワークロードでは SSE-KMS の柔軟性が不足しているため、SSE-C を使用しません。SSE-KMS の詳細については、「AWS KMS キーによるサーバー側の暗号化の使用 (SSE-KMS)」を参照してください。
-
つまり、SSE-C で暗号化されたオブジェクトは、AWS マネージドサービスによってネイティブに復号することはできません。
-
-
リクエストで SSE-C ヘッダーを指定するときは、HTTPS を使用する必要があります。
-
SSE−C を使用する場合、Amazon S3 は HTTP 経由で行われたリクエストをすべて拒否します。セキュリティ上の考慮事項として、誤って HTTP で送信されたキーは漏洩したと見なすことをお勧めします。キーを破棄して、必要に応じて更新してください。
-
-
バケットのバージョニングが有効になっている場合、アップロードする各オブジェクトバージョンに、独自の暗号化キーを使用できます。どのオブジェクトバージョンにどの暗号化キーを使用したかは、お客様が管理してください。
-
SSE-C は Amazon S3 コンソールではサポートされていません。Amazon S3 コンソールを使用してオブジェクトをアップロードし、SSE-C 暗号化を指定することはできません。また、コンソールを使用して、SSE-C を使用して保存されている既存のオブジェクトを更新すること (ストレージクラスの変更やメタデータの追加など) もできません。
-
新しいバケットの場合、SSE-C はデフォルトでブロックされます。SSE-C 暗号化を使用してオブジェクトをアップロードする前に、
PutBucketEncryptionAPI を使用して SSE-C を明示的に有効にする必要があります。詳細については、「汎用バケットの SSE-C のブロックまたはブロック解除」を参照してください。