Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) の指定
すべての Amazon S3 バケットにはデフォルトで暗号化が設定されており、S3 バケットにアップロードされたすべての新しいオブジェクトは保存時に自動的に暗号化されます。Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3) は、Amazon S3 のすべてのバケットでのデフォルトの暗号化設定です。別のタイプの暗号化を使用するには、S3 PUT
リクエストで使用するサーバー側の暗号化のタイプを指定するか、宛先バケットにデフォルトの暗号化設定を更新できます。
PUT
リクエストで別の暗号化タイプを指定する場合は、AWS Key Management Service (AWS KMS) キーによるサーバー側の暗号化 (SSE-KMS)、AWS KMS キーによる二層式サーバー側の暗号化 (DSSE-KMS)、または顧客提供のキーによるサーバー側の暗号化 (SSE-C) を使用できます。宛先バケットに別のデフォルト暗号化設定を設定する場合は、SSE-KMS または DSSE-KMS を使用できます。
汎用バケットのデフォルトの暗号化設定を変更する方法の詳細については、「デフォルトの暗号化の設定」を参照してください。
バケットのデフォルトの暗号化設定を SSE-KMS に変更しても、バケット内の既存の Amazon S3 オブジェクトの暗号化タイプは変更されません。デフォルトの暗号化設定を SSE-KMS に更新した後に既存のオブジェクトの暗号化タイプを変更するには、Amazon S3 バッチオペレーションを使用できます。S3 バッチオペレーションにオブジェクトのリストを指定すると、バッチオペレーションが対応する API オペレーションを呼び出します。オブジェクトのコピー アクションを使用して既存のオブジェクトをコピーし、SSE-KMS で暗号化されたオブジェクトと同じバケットに書き戻すことができます。1 つのバッチオペレーションジョブで、数十億ものオブジェクトに対して、指定されたオペレーションを実行できます。詳細については、「バッチオペレーションでオブジェクトオペレーションを一括で実行する」および AWS Storage Blog の投稿「How to retroactively encrypt existing objects in Amazon S3 using S3 Inventory, Amazon Athena, and S3 Batch Operations
S3 コンソール、REST API、AWS SDK、および AWS Command Line Interface (AWS CLI) を使用して SSE−S3 を指定できます。詳細については、「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。
このトピックでは、AWS Management Console を使用してオブジェクトの暗号化のタイプを設定または変更する方法について説明します。コンソールを使用してオブジェクトをコピーする場合、Amazon S3 はオブジェクトを現状のままコピーします。つまり、ソースが暗号化されている場合、ターゲットオブジェクトも暗号化されます。コンソールを使用して、オブジェクトの暗号化を追加または変更することもできます。
注記
-
オブジェクトが 5 GB 未満の場合は、オブジェクトの暗号化を変更できます。オブジェクトが 5 GB を超える場合は、AWS CLI または AWS SDK を使用してオブジェクトの暗号化を変更する必要があります。
-
オブジェクトの暗号化の変更に必要な追加のアクセス許可のリストについては、「Amazon S3 API オペレーションに必要なアクセス許可」を参照してください。このアクセス許可を付与するポリシーの例については、「Amazon S3 のアイデンティティベースのポリシー例」を参照してください。
オブジェクトの暗号化を変更すると、新しいオブジェクトが作成され、古いオブジェクトが置き換えられます。S3 バージョニングが有効になっている場合は、オブジェクトの新しいバージョンが作成され、既存のオブジェクトが古いバージョンになります。また、プロパティを変更するロールは、新しいオブジェクト (またはオブジェクトのバージョン) の所有者になります。
オブジェクトの暗号化を変更するには
AWS Management Console にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/
を開きます。 -
ナビゲーションペインで [バケット] を選択してから、[汎用バケット] タブをクリックします。変更するオブジェクトを含む Amazon S3 バケットまたはフォルダに移動します。
-
変更するオブジェクトのチェックボックスをオンにします。
-
[アクション] メニューに表示されるオプションのリストから [サーバー側の暗号化を編集] を選択します。
[サーバー側の暗号化] セクションまでスクロールします。
[暗号化設定] で、[デフォルトの暗号化にバケット設定を使用する] または [デフォルトの暗号化にバケット設定を上書きする] を選択します。
-
[デフォルトの暗号化にバケット設定を上書きする] を選択した場合は、次の暗号化設定を設定します。
-
[暗号化タイプ] で、[Amazon S3 マネージドキーを用いたサーバー側の暗号化 (SSE-S3)] を選択します。SSE-S3 は、最強のブロック暗号の 1 つである 256 ビットの 高度暗号化規格 (AES-256) を使用して、各オブジェクトを暗号化します。詳細については、「Amazon S3 マネージドキーによるサーバー側の暗号化 (SSE-S3)」を参照してください。
-
-
[追加のコピー設定] で、[ソース設定をコピー] するか、[設定を指定しない] か、[設定を指定] するかを選択します。[ソース設定をコピー] がデフォルトのオプションです。ソース設定の属性なしでオブジェクトのみをコピーする場合は、[設定を指定しない] を選択します。ストレージクラス、ACL、オブジェクトタグ、メタデータ、サーバー側の暗号化、その他のチェックサムの設定を指定するには、[設定を指定] を選択します。
-
[Save changes] (変更の保存) をクリックします。
注記
このアクションは、指定されたすべてのオブジェクトに暗号化を適用します。フォルダを暗号化する場合は、保存オペレーションが完了するのを待ってから、フォルダに新しいオブジェクトを追加します。
オブジェクト作成時、つまり、新しいオブジェクトをアップロードするときや既存オブジェクトのコピーを作成するときに、リクエストに x-amz-server-side-encryption
ヘッダーを追加することで、Amazon S3 マネージドキー (SSE-S3) を使用してデータを暗号化するかどうかを指定することができます。ヘッダーの値を、Amazon S3 がサポートする暗号化アルゴリズム AES256
に設定します。Amazon S3 によりレスポンスヘッダー x-amz-server-side-encryption
が返されるため、SSE-S3 を使用してオブジェクトが保存されたことを確認できます。
次の REST アップロード API オペレーションは、x-amz-server-side-encryption
リクエストヘッダーを受け付けます。
マルチパートアップロード API オペレーションを使用して大容量のオブジェクトをアップロードするときに、x-amz-server-side-encryption
ヘッダーを Initiate Multipart Upload リクエストに追加することでサーバー側の暗号化を指定することができます。既存のオブジェクトをコピーする際は、コピー元オブジェクトが暗号化されているかどうかに関係なく、明示的にサーバー側の暗号化を要求しない限り、コピー先オブジェクトは暗号化されません。
次の REST API オペレーションのレスポンスヘッダーは、オブジェクトが SSE-S3 を使用して保存されているときに x-amz-server-side-encryption
ヘッダーを返します。
注記
オブジェクトで SSE−S3 を使用している場合、または、HTTP ステータスコード 400 (BadRequest) エラーが発生する場合、暗号化リクエストヘッダーを GET
リクエストおよび HEAD
リクエストに対して送信しないでください。
AWS SDK を使用して、Amazon S3 マネージド暗号化キー (SSE-S3) を使用するように Amazon S3 にリクエストできます。このセクションでは、AWS SDK を複数の言語で使用する場合の例を示します。他の SDK については、「サンプルコードとライブラリ
AWS CLI を使用してオブジェクトをアップロードするときに SSE−S3 を指定するには、次の例を使用します。
aws s3api put-object --bucket
--key
amzn-s3-demo-bucket1
object-key-name
--server-side-encryption AES256 --bodyfile path
詳細については、AWS CLI リファレンスの put−object
AWS CloudFormation を使用して暗号化を設定する例については、AWS CloudFormation ユーザーガイドの AWS::S3::Bucket ServerSideEncryptionRule
トピックの「デフォルト暗号化を備えたバケットの作成」および「AWS KMS サーバー側の暗号化と S3 バケットキーを使用したバケットの作成」の例を参照してください。