share facebook facebook twitter menu hatena pocket slack

2011.10.06 THU

S3ってなんじゃ?(サーバー側でファイルのAES256暗号化)

三浦 悟

WRITTEN BY 三浦 悟

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)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。