S3がサーバーサイドでのファイル暗号化に対応しました。
ファイルをアップロードする際に、x-amz-server-side-encryptionヘッダにAES256を指定することで自動的に暗号化が行われ、配信時に複合されるようです。
はじめに、コンソール上で試してみます。
AWSコンソールのS3タブで「Upload」ボタンをクリックし、アップロードダイアログより、通常通りファイルを選択します。
「Set Details..」で次の画面を表示すると、RSSのチェックボックスの下に、「Use Server Side Encryption」という項目が追加されているのがわかります。
これにチェックを入れ、あとは通常通りアップロードします。
以上でファイルが暗号化され、保持されます。
次は、APIから暗号化を試してみます。
現在のところ、ドキュメントを見る限りではREST、Java、.NETで対応しているようです。
ここではJavaのSDKでの例を紹介します。
AmazonS3 s3client = new AmazonS3Client( new BasicAWSCredentials("XXXXXXXXXXX", "YYYYYYYYYYY")); File file = new File("hoge.txt"); PutObjectRequest putRequest = new PutObjectRequest("hoge-bucket", "hoge.txt", file); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setServerSideEncryption( ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION ); putRequest.setMetadata(objectMetadata); PutObjectResult response = s3client.putObject(putRequest);
上記のように、通常のアップロードリクエストにメタデータを追加するのみです。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら