SlideShare a Scribd company logo
1 of 26
Download to read offline
1Copylight © Classmethod, Inc.
Amazon S3暗号化と運用
(CM:道 Version)
AWS勉強会 in 北海道
Developers.IO Meetup 06
2014/08/01
クラスメソッド株式会社
石川 覚
2Copylight © Classmethod, Inc.
自己紹介
石川 覚 (いしかわ さとる)
• SIer、IP電話開発会社を経て
• CMに2014/06 join
• 札幌出身、東京に8年
• Linux, Java, MySQL
• 自称 何でも屋
• 当然 AWS好き
クラスメソッド株式会社
ソリューションアーキテクト
3Copylight © Classmethod, Inc.
Amazon S3
4Copylight © Classmethod, Inc.
Amazon S3とは
• バケットという入れ物にファイルを無限に保存
できるサービス(1GB/月約3円)
• データはリージョン内の3カ所以上で自動複製
される(99.999999999%の信頼性)
低価格・高信頼性
AWSサービスを支える中心的存在
5Copylight © Classmethod, Inc.
Amazon S3の特長
• ファイルを上書きしても一定期間後に削除・
Glacierに保存できる(ライフサイクル管理)
• ユーザー・サーバーなどに対して読み書きの許
可・拒否ができる(アクセス制御)
• 万が一データを盗まれたときに中身が見られな
いようにできる(暗号化)
バックアップメディアに期待される
機能を標準で備えている
6Copylight © Classmethod, Inc.
Amazon S3の用語
• バケット
– オブジェクトの保存場所。各アカウントで最⼤100個
まで。名前がユニークな必要あり
• オブジェクト
– Amazon S3に置くファイルでURLが付与される。バ
ケット内には無制限にオブジェクトを置くことが可
能。
– 1オブジェクトのサイズは5TBまで
• キー
– オブジェクト毎に付与される一意なキー
• ACL
– アクセスコントロールリスト
7Copylight © Classmethod, Inc.
Amazon S3の使い方
• Management Console
– GUIツールでファイルの登録・取得・削除・一覧
• ファイルのPUT/GET/DELETE/LIST
– 簡単なコマンド操作(AWS Cli)
aws s3 元のファイル s3://バケット名
• サードパーティツール
– Mac:Cyberduck, Windows:CloudBerry
• AWS SDK
– Java, Ruby, .NETでS3の機能を組込む
8Copylight © Classmethod, Inc.
Amazon S3の利用法
• コンテンツの保存と配信
– 静的なWebサイトのホスティング
– ファイルの配信(Presigned URLも可)
• ビックデータ分析のストレージ
– Redshift、EMRのオリジナルデータの保存
• バックアップやディザスタリカバリ
– 各サーバ、データベースのスナップショット
– ログファイルの保存
– ファイルの分散保存
9Copylight © Classmethod, Inc.
S3の通信
• AWS SDKの動作イメージ
以下、PCからAWSの通信の例 (EC2の場合はIAMRole)
通信/HTTPS
Put、Get、
List、Move
REST/SOAP
AWS SDK
Credential
通信経路は暗号化済み(デフォルト)
AWS CLI
10Copylight © Classmethod, Inc.
Amazon S3暗号化
11Copylight © Classmethod, Inc.
Amazon S3暗号化の分類
• 鍵の生成・管理はサーバサイドとクライアント
サイドのどちらか
• オブジェクトの暗号化はサーバサイドとクライ
アントサイドのどちらかであるか
クライアントで暗号化 サーバーで暗号化
クライアントで
鍵の生成・管理
Client Side
Encryption(CSE)
Server-Side Encryption
with Customer-
Provided Encryption
Keys (SSE-C)
サーバーで
鍵の生成・管理
なし Server Side
Encryption(SSE)
12Copylight © Classmethod, Inc.
1. CSE - Client Side Encryption
• クライアント内で暗合したオブジェクトをS3に
登録
• 暗号化されたオブジェクトはユーザー以外に複
合化が不可能
• AWS SDK(Java、Ruby、.NET)のクライアント
サイドの機能として暗号化機能を提供
Java SDK
クライアントで暗号化した
オブジェクト
S3 Bucket
13Copylight © Classmethod, Inc.
2. SSE - Server Side Encryption
• クライアントから暗号化オプションを指定して
登録する
• サーバー内で鍵が自動生成され、暗号化した
データを保存する
• 鍵はユーザーが管理する必要がなく、AWSで管
理されるので手間をかけずに暗号化できる
• AWS SDKやAWS CLIから利用できる
14Copylight © Classmethod, Inc.
2. SSE - Server Side Encryption
15Copylight © Classmethod, Inc.
2. SSE - Server Side Encryption
• ファイル登録
• ファイル取得
• ファイル状態
$ aws s3api put-object --bucket bucket_name ¥
--key keyname --body src_path ¥
--server-side-encryption AES256
$ aws s3api get-object --bucket bucket_name ¥
--key keyname dest_path
$ aws s3api head-object --bucket bucket_name --key keyname
※”aws s3” コマンドの cp, mvは、”—sse”指定するとSSE動作する。
16Copylight © Classmethod, Inc.
3. SSE-C
• SSEにおいて、ユーザーが鍵の作成や管理をし
たい場合はServer-Side Encryption with
Customer-Provided Encryption Keys
• AWS SDKやAWSCliの機能として利用できます。
17Copylight © Classmethod, Inc.
3. SSE-C
• 事前にAES256 キーの生成
• ファイル登録
• ファイル取得
• ファイル状態
$ pwgen -Bs 31 1 | tee sse-key
ifxHAIEaASzbUT1kspCxEMo1N4syAXr
$ aws s3api put-object --bucket bucket_name --key keyname ¥
--body src_path --sse-customer-algorithm AES256 ¥
--sse-customer-key file://sse-c-key
$ aws s3api get-object --bucket bucket_name --key keyname ¥
--sse-customer-algorithm AES256 ¥
--sse-customer-key file://sse-c-key dest_path
$ aws s3api head-object --bucket bucket_name --key keyname ¥
--sse-customer-algorithm AES256 ¥
--sse-customer-key file://sse-c-key
18Copylight © Classmethod, Inc.
番外編:オレオレ暗号化
• クライアントサイドで暗号化したいが、鍵の管
理はしたくない場合。
• ファイル名+αから生成したハッシュを鍵として
利用する
• Blowfishで暗号化したオブジェクトを保存
• 標準的なハッシュや暗号化アルゴリズムを採用
すれば他の言語でも実装可能になる
19Copylight © Classmethod, Inc.
S3暗号化の運用
20Copylight © Classmethod, Inc.
S3暗号化のコスト
• CPUインテンシブ
– CSEは暗号化によるCPU負荷と処理時間が増加するこ
とを想定する
– 必要に応じてCPUリソースの増強、転送の並列化など
を検討する
21Copylight © Classmethod, Inc.
S3暗号化の検討課題
• 暗号化の状態を判別できない
– 登録したファイルをプロパティの詳細から確認する
と”Server Side Encryption “の状態が表示されますが、
その他は”none“となる。
– 同じキーに対して暗号化/非暗号化オブジェクト問わず
上書きが可能なので、誰かが異なる暗号化方式や非暗
号化オブジェクトを登録した後に、オブジェクトの取
得に失敗することがある。
22Copylight © Classmethod, Inc.
S3暗号化の検討課題
• SSE以外は鍵をユーザーが管理
– Amazon CloudHSMやHSMs(Hardware security
modules)といった鍵の管理が必要です。
23Copylight © Classmethod, Inc.
S3暗号化の運用
• CSEとSSE-C
– 鍵の管理(Amazon CloudHSMやHSMs)が必要
– CSEはさらにCPU負荷と処置時間を考慮
– 暗号化の種別を管理・強制する仕組みがありませんの
でないかわりに、暗号化をアプリケーション作りや運
用ルールで強制するしくみが必要
• SSE
– 登録時のオプション設定のみで導入可能
– 悪意のある第三者がオブジェクトへのアクセス権を得
ると、暗号化が掛かっていようといまいと関係なく復
号化されたファイルをダウンロードできる
24Copylight © Classmethod, Inc.
S3暗号化の運用
• SSEを強制させるバケットポリシー
– 登録時のオプション設定のみで導入可能{
"Version":"2012-10-17",
"Id":"PutObjPolicy",
"Statement":[{
"Sid":"DenyUnEncryptedObjectUploads",
"Effect":"Deny",
"Principal":{"AWS":"*"},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::bucket_name/*",
"Condition":{
"StringNotEquals":{
"s3:x-amz-server-side-encryption":"AES256"
}
}
}]
}
25Copylight © Classmethod, Inc.
最後に
• まずどこからデータを暗号化したいか
• 暗号化を簡単・確実に実施するならSSE
• 鍵管理のコストを下げるなら「オレオレ暗号化」
のように鍵の管理方法を検討
26Copylight © Classmethod, Inc.
ご清聴ありがとうございました。

More Related Content

What's hot

Amazon Virtual Private Cloud (VPC) by Default
Amazon Virtual Private Cloud (VPC) by DefaultAmazon Virtual Private Cloud (VPC) by Default
Amazon Virtual Private Cloud (VPC) by DefaultAmazon Web Services Japan
 
Ivsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapIvsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapTadashi Okazaki
 
AWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAFAWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAFAmazon Web Services Japan
 
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015y torazuka
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAmazon Web Services Japan
 
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormationAWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormationAmazon Web Services Japan
 
AWS Black Belt Techシリーズ AWS Storage Gateway
AWS Black Belt Techシリーズ  AWS Storage GatewayAWS Black Belt Techシリーズ  AWS Storage Gateway
AWS Black Belt Techシリーズ AWS Storage GatewayAmazon Web Services Japan
 
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信Amazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~Amazon Web Services Japan
 
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAmazon Web Services Japan
 
S3 -ほぼ週刊AWSマイスターシリーズ第2回-
S3 -ほぼ週刊AWSマイスターシリーズ第2回-S3 -ほぼ週刊AWSマイスターシリーズ第2回-
S3 -ほぼ週刊AWSマイスターシリーズ第2回-SORACOM, INC
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto ScalingAmazon Web Services Japan
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例Amazon Web Services Japan
 
初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しようAmazon Web Services Japan
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAmazon Web Services Japan
 
もっと気軽にCloudFormation
もっと気軽にCloudFormationもっと気軽にCloudFormation
もっと気軽にCloudFormationSatoshi Nakada
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Shota Umeda
 
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always OnAwsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always Onssuser79e118
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWSYasuhiro Araki, Ph.D
 

What's hot (20)

Amazon Virtual Private Cloud (VPC) by Default
Amazon Virtual Private Cloud (VPC) by DefaultAmazon Virtual Private Cloud (VPC) by Default
Amazon Virtual Private Cloud (VPC) by Default
 
Ivsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recapIvsctonightandday2016winter moringsession awsreinvent2016recap
Ivsctonightandday2016winter moringsession awsreinvent2016recap
 
AWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAFAWS Black Belt Tech シリーズ 2015 - AWS WAF
AWS Black Belt Tech シリーズ 2015 - AWS WAF
 
実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015実践 Amazon KMS #cmdevio2015
実践 Amazon KMS #cmdevio2015
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
 
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormationAWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
AWS Black Belt Tech シリーズ 2015 - AWS CloudFormation
 
AWS Black Belt Techシリーズ AWS Storage Gateway
AWS Black Belt Techシリーズ  AWS Storage GatewayAWS Black Belt Techシリーズ  AWS Storage Gateway
AWS Black Belt Techシリーズ AWS Storage Gateway
 
20120508 aws meister-rds-public
20120508 aws meister-rds-public20120508 aws meister-rds-public
20120508 aws meister-rds-public
 
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
[AWSマイスターシリーズ] Amazon CloudFront / Amazon Elastic Transcoderによるコンテンツ配信
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
 
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNSAWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
AWS Black Belt Tech シリーズ 2016 - Amazon SQS / Amazon SNS
 
S3 -ほぼ週刊AWSマイスターシリーズ第2回-
S3 -ほぼ週刊AWSマイスターシリーズ第2回-S3 -ほぼ週刊AWSマイスターシリーズ第2回-
S3 -ほぼ週刊AWSマイスターシリーズ第2回-
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
 
初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう初心者向けWebinar AWSでDRを構築しよう
初心者向けWebinar AWSでDRを構築しよう
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
 
もっと気軽にCloudFormation
もっと気軽にCloudFormationもっと気軽にCloudFormation
もっと気軽にCloudFormation
 
Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話Ph perがawsと出会ってdev opsを目指した話
Ph perがawsと出会ってdev opsを目指した話
 
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always OnAwsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
 
インフラ系自主トレするならAWS
インフラ系自主トレするならAWSインフラ系自主トレするならAWS
インフラ系自主トレするならAWS
 

Similar to Running Amazon S3 Encryption

AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)Amazon Web Services Japan
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...Amazon Web Services Japan
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜真吾 吉田
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...Amazon Web Services Japan
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう真吾 吉田
 
AWS 主要なサービスアップデート 6/3-11/28
AWS 主要なサービスアップデート 6/3-11/28AWS 主要なサービスアップデート 6/3-11/28
AWS 主要なサービスアップデート 6/3-11/28崇之 清水
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAmazon Web Services Japan
 
AWSを用いたWebホスティング
AWSを用いたWebホスティングAWSを用いたWebホスティング
AWSを用いたWebホスティングSORACOM, INC
 
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜Atsushi Fukui
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
S3 Client-Side Encryption by AWS SDK for Java/Ruby
S3 Client-Side Encryption by AWS SDK for Java/RubyS3 Client-Side Encryption by AWS SDK for Java/Ruby
S3 Client-Side Encryption by AWS SDK for Java/Ruby真吾 吉田
 
Search Solutions on AWS
Search Solutions on AWSSearch Solutions on AWS
Search Solutions on AWSEiji Shinohara
 
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -Akio Katayama
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪真吾 吉田
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrailAmazon Web Services Japan
 

Similar to Running Amazon S3 Encryption (20)

AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
AWS Black Belt Techシリーズ Amazon Simple Storage Service (Amazon S3)
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
実務で活かせる AWSアーキテクチャ設計 〜AWS re:Invent 2016アップデート最新版〜
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
 
これからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしようこれからのクラウドネイティブアプリケーションの話をしよう
これからのクラウドネイティブアプリケーションの話をしよう
 
AWS 主要なサービスアップデート 6/3-11/28
AWS 主要なサービスアップデート 6/3-11/28AWS 主要なサービスアップデート 6/3-11/28
AWS 主要なサービスアップデート 6/3-11/28
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
 
AWSを用いたWebホスティング
AWSを用いたWebホスティングAWSを用いたWebホスティング
AWSを用いたWebホスティング
 
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜[AWS Developers Meetup 2017] DeveloperのためのライブAWSウォークスルー 〜 AWS SDKの使い方 〜
[AWS Developers Meetup 2017] Developerのための ライブAWSウォークスルー 〜 AWS SDKの使い方 〜
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
S3 Client-Side Encryption by AWS SDK for Java/Ruby
S3 Client-Side Encryption by AWS SDK for Java/RubyS3 Client-Side Encryption by AWS SDK for Java/Ruby
S3 Client-Side Encryption by AWS SDK for Java/Ruby
 
20120319 aws meister-reloaded-s3
20120319 aws meister-reloaded-s320120319 aws meister-reloaded-s3
20120319 aws meister-reloaded-s3
 
20120319 aws meister-reloaded-s3
20120319 aws meister-reloaded-s320120319 aws meister-reloaded-s3
20120319 aws meister-reloaded-s3
 
AWS Black Belt - AWS Glue
AWS Black Belt - AWS GlueAWS Black Belt - AWS Glue
AWS Black Belt - AWS Glue
 
Search Solutions on AWS
Search Solutions on AWSSearch Solutions on AWS
Search Solutions on AWS
 
Data Lake Security on AWS
Data Lake Security on AWSData Lake Security on AWS
Data Lake Security on AWS
 
Serverless analytics on aws
Serverless analytics on awsServerless analytics on aws
Serverless analytics on aws
 
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
 
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
Anchors Aweigh!! - re:Invent報告@re:Port 2016 大阪
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 

More from Satoru Ishikawa

データ分析を支える技術 データ分析基盤再入門
データ分析を支える技術 データ分析基盤再入門データ分析を支える技術 データ分析基盤再入門
データ分析を支える技術 データ分析基盤再入門Satoru Ishikawa
 
BigData-JAWS#16 Lake House Architecture
BigData-JAWS#16 Lake House ArchitectureBigData-JAWS#16 Lake House Architecture
BigData-JAWS#16 Lake House ArchitectureSatoru Ishikawa
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門Satoru Ishikawa
 
re:Growth2019 Analytics Updates
re:Growth2019 Analytics Updatesre:Growth2019 Analytics Updates
re:Growth2019 Analytics UpdatesSatoru Ishikawa
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeSatoru Ishikawa
 
re:invent 2018 analytics関連アップデート
re:invent 2018 analytics関連アップデートre:invent 2018 analytics関連アップデート
re:invent 2018 analytics関連アップデートSatoru Ishikawa
 
Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Satoru Ishikawa
 
20161214 re growth-sapporo
20161214 re growth-sapporo20161214 re growth-sapporo
20161214 re growth-sapporoSatoru Ishikawa
 
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Satoru Ishikawa
 
re:Growth ビッグデータ観点で見た AWS re:Invent 2015
re:Growth ビッグデータ観点で見た AWS re:Invent 2015re:Growth ビッグデータ観点で見た AWS re:Invent 2015
re:Growth ビッグデータ観点で見た AWS re:Invent 2015Satoru Ishikawa
 
db-tech-showcase-sapporo-b24-20150911p
db-tech-showcase-sapporo-b24-20150911pdb-tech-showcase-sapporo-b24-20150911p
db-tech-showcase-sapporo-b24-20150911pSatoru Ishikawa
 
Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004Satoru Ishikawa
 
Cloud Programing for beginner
Cloud Programing for beginnerCloud Programing for beginner
Cloud Programing for beginnerSatoru Ishikawa
 

More from Satoru Ishikawa (14)

データ分析を支える技術 データ分析基盤再入門
データ分析を支える技術 データ分析基盤再入門データ分析を支える技術 データ分析基盤再入門
データ分析を支える技術 データ分析基盤再入門
 
BigData-JAWS#16 Lake House Architecture
BigData-JAWS#16 Lake House ArchitectureBigData-JAWS#16 Lake House Architecture
BigData-JAWS#16 Lake House Architecture
 
データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門データ分析を支える技術 DWH再入門
データ分析を支える技術 DWH再入門
 
re:Growth2019 Analytics Updates
re:Growth2019 Analytics Updatesre:Growth2019 Analytics Updates
re:Growth2019 Analytics Updates
 
Developers.IO 2019 Effective Datalake
Developers.IO 2019 Effective DatalakeDevelopers.IO 2019 Effective Datalake
Developers.IO 2019 Effective Datalake
 
re:invent 2018 analytics関連アップデート
re:invent 2018 analytics関連アップデートre:invent 2018 analytics関連アップデート
re:invent 2018 analytics関連アップデート
 
Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!Re invent 2017 データベースサービス総復習!
Re invent 2017 データベースサービス総復習!
 
20161214 re growth-sapporo
20161214 re growth-sapporo20161214 re growth-sapporo
20161214 re growth-sapporo
 
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114
 
re:Growth ビッグデータ観点で見た AWS re:Invent 2015
re:Growth ビッグデータ観点で見た AWS re:Invent 2015re:Growth ビッグデータ観点で見た AWS re:Invent 2015
re:Growth ビッグデータ観点で見た AWS re:Invent 2015
 
db-tech-showcase-sapporo-b24-20150911p
db-tech-showcase-sapporo-b24-20150911pdb-tech-showcase-sapporo-b24-20150911p
db-tech-showcase-sapporo-b24-20150911p
 
Cmdevio2015 devday-g-3
Cmdevio2015 devday-g-3Cmdevio2015 devday-g-3
Cmdevio2015 devday-g-3
 
Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004Cm re growth-devio-mtup11-sapporo-004
Cm re growth-devio-mtup11-sapporo-004
 
Cloud Programing for beginner
Cloud Programing for beginnerCloud Programing for beginner
Cloud Programing for beginner
 

Running Amazon S3 Encryption

  • 1. 1Copylight © Classmethod, Inc. Amazon S3暗号化と運用 (CM:道 Version) AWS勉強会 in 北海道 Developers.IO Meetup 06 2014/08/01 クラスメソッド株式会社 石川 覚
  • 2. 2Copylight © Classmethod, Inc. 自己紹介 石川 覚 (いしかわ さとる) • SIer、IP電話開発会社を経て • CMに2014/06 join • 札幌出身、東京に8年 • Linux, Java, MySQL • 自称 何でも屋 • 当然 AWS好き クラスメソッド株式会社 ソリューションアーキテクト
  • 3. 3Copylight © Classmethod, Inc. Amazon S3
  • 4. 4Copylight © Classmethod, Inc. Amazon S3とは • バケットという入れ物にファイルを無限に保存 できるサービス(1GB/月約3円) • データはリージョン内の3カ所以上で自動複製 される(99.999999999%の信頼性) 低価格・高信頼性 AWSサービスを支える中心的存在
  • 5. 5Copylight © Classmethod, Inc. Amazon S3の特長 • ファイルを上書きしても一定期間後に削除・ Glacierに保存できる(ライフサイクル管理) • ユーザー・サーバーなどに対して読み書きの許 可・拒否ができる(アクセス制御) • 万が一データを盗まれたときに中身が見られな いようにできる(暗号化) バックアップメディアに期待される 機能を標準で備えている
  • 6. 6Copylight © Classmethod, Inc. Amazon S3の用語 • バケット – オブジェクトの保存場所。各アカウントで最⼤100個 まで。名前がユニークな必要あり • オブジェクト – Amazon S3に置くファイルでURLが付与される。バ ケット内には無制限にオブジェクトを置くことが可 能。 – 1オブジェクトのサイズは5TBまで • キー – オブジェクト毎に付与される一意なキー • ACL – アクセスコントロールリスト
  • 7. 7Copylight © Classmethod, Inc. Amazon S3の使い方 • Management Console – GUIツールでファイルの登録・取得・削除・一覧 • ファイルのPUT/GET/DELETE/LIST – 簡単なコマンド操作(AWS Cli) aws s3 元のファイル s3://バケット名 • サードパーティツール – Mac:Cyberduck, Windows:CloudBerry • AWS SDK – Java, Ruby, .NETでS3の機能を組込む
  • 8. 8Copylight © Classmethod, Inc. Amazon S3の利用法 • コンテンツの保存と配信 – 静的なWebサイトのホスティング – ファイルの配信(Presigned URLも可) • ビックデータ分析のストレージ – Redshift、EMRのオリジナルデータの保存 • バックアップやディザスタリカバリ – 各サーバ、データベースのスナップショット – ログファイルの保存 – ファイルの分散保存
  • 9. 9Copylight © Classmethod, Inc. S3の通信 • AWS SDKの動作イメージ 以下、PCからAWSの通信の例 (EC2の場合はIAMRole) 通信/HTTPS Put、Get、 List、Move REST/SOAP AWS SDK Credential 通信経路は暗号化済み(デフォルト) AWS CLI
  • 10. 10Copylight © Classmethod, Inc. Amazon S3暗号化
  • 11. 11Copylight © Classmethod, Inc. Amazon S3暗号化の分類 • 鍵の生成・管理はサーバサイドとクライアント サイドのどちらか • オブジェクトの暗号化はサーバサイドとクライ アントサイドのどちらかであるか クライアントで暗号化 サーバーで暗号化 クライアントで 鍵の生成・管理 Client Side Encryption(CSE) Server-Side Encryption with Customer- Provided Encryption Keys (SSE-C) サーバーで 鍵の生成・管理 なし Server Side Encryption(SSE)
  • 12. 12Copylight © Classmethod, Inc. 1. CSE - Client Side Encryption • クライアント内で暗合したオブジェクトをS3に 登録 • 暗号化されたオブジェクトはユーザー以外に複 合化が不可能 • AWS SDK(Java、Ruby、.NET)のクライアント サイドの機能として暗号化機能を提供 Java SDK クライアントで暗号化した オブジェクト S3 Bucket
  • 13. 13Copylight © Classmethod, Inc. 2. SSE - Server Side Encryption • クライアントから暗号化オプションを指定して 登録する • サーバー内で鍵が自動生成され、暗号化した データを保存する • 鍵はユーザーが管理する必要がなく、AWSで管 理されるので手間をかけずに暗号化できる • AWS SDKやAWS CLIから利用できる
  • 14. 14Copylight © Classmethod, Inc. 2. SSE - Server Side Encryption
  • 15. 15Copylight © Classmethod, Inc. 2. SSE - Server Side Encryption • ファイル登録 • ファイル取得 • ファイル状態 $ aws s3api put-object --bucket bucket_name ¥ --key keyname --body src_path ¥ --server-side-encryption AES256 $ aws s3api get-object --bucket bucket_name ¥ --key keyname dest_path $ aws s3api head-object --bucket bucket_name --key keyname ※”aws s3” コマンドの cp, mvは、”—sse”指定するとSSE動作する。
  • 16. 16Copylight © Classmethod, Inc. 3. SSE-C • SSEにおいて、ユーザーが鍵の作成や管理をし たい場合はServer-Side Encryption with Customer-Provided Encryption Keys • AWS SDKやAWSCliの機能として利用できます。
  • 17. 17Copylight © Classmethod, Inc. 3. SSE-C • 事前にAES256 キーの生成 • ファイル登録 • ファイル取得 • ファイル状態 $ pwgen -Bs 31 1 | tee sse-key ifxHAIEaASzbUT1kspCxEMo1N4syAXr $ aws s3api put-object --bucket bucket_name --key keyname ¥ --body src_path --sse-customer-algorithm AES256 ¥ --sse-customer-key file://sse-c-key $ aws s3api get-object --bucket bucket_name --key keyname ¥ --sse-customer-algorithm AES256 ¥ --sse-customer-key file://sse-c-key dest_path $ aws s3api head-object --bucket bucket_name --key keyname ¥ --sse-customer-algorithm AES256 ¥ --sse-customer-key file://sse-c-key
  • 18. 18Copylight © Classmethod, Inc. 番外編:オレオレ暗号化 • クライアントサイドで暗号化したいが、鍵の管 理はしたくない場合。 • ファイル名+αから生成したハッシュを鍵として 利用する • Blowfishで暗号化したオブジェクトを保存 • 標準的なハッシュや暗号化アルゴリズムを採用 すれば他の言語でも実装可能になる
  • 19. 19Copylight © Classmethod, Inc. S3暗号化の運用
  • 20. 20Copylight © Classmethod, Inc. S3暗号化のコスト • CPUインテンシブ – CSEは暗号化によるCPU負荷と処理時間が増加するこ とを想定する – 必要に応じてCPUリソースの増強、転送の並列化など を検討する
  • 21. 21Copylight © Classmethod, Inc. S3暗号化の検討課題 • 暗号化の状態を判別できない – 登録したファイルをプロパティの詳細から確認する と”Server Side Encryption “の状態が表示されますが、 その他は”none“となる。 – 同じキーに対して暗号化/非暗号化オブジェクト問わず 上書きが可能なので、誰かが異なる暗号化方式や非暗 号化オブジェクトを登録した後に、オブジェクトの取 得に失敗することがある。
  • 22. 22Copylight © Classmethod, Inc. S3暗号化の検討課題 • SSE以外は鍵をユーザーが管理 – Amazon CloudHSMやHSMs(Hardware security modules)といった鍵の管理が必要です。
  • 23. 23Copylight © Classmethod, Inc. S3暗号化の運用 • CSEとSSE-C – 鍵の管理(Amazon CloudHSMやHSMs)が必要 – CSEはさらにCPU負荷と処置時間を考慮 – 暗号化の種別を管理・強制する仕組みがありませんの でないかわりに、暗号化をアプリケーション作りや運 用ルールで強制するしくみが必要 • SSE – 登録時のオプション設定のみで導入可能 – 悪意のある第三者がオブジェクトへのアクセス権を得 ると、暗号化が掛かっていようといまいと関係なく復 号化されたファイルをダウンロードできる
  • 24. 24Copylight © Classmethod, Inc. S3暗号化の運用 • SSEを強制させるバケットポリシー – 登録時のオプション設定のみで導入可能{ "Version":"2012-10-17", "Id":"PutObjPolicy", "Statement":[{ "Sid":"DenyUnEncryptedObjectUploads", "Effect":"Deny", "Principal":{"AWS":"*"}, "Action":"s3:PutObject", "Resource":"arn:aws:s3:::bucket_name/*", "Condition":{ "StringNotEquals":{ "s3:x-amz-server-side-encryption":"AES256" } } }] }
  • 25. 25Copylight © Classmethod, Inc. 最後に • まずどこからデータを暗号化したいか • 暗号化を簡単・確実に実施するならSSE • 鍵管理のコストを下げるなら「オレオレ暗号化」 のように鍵の管理方法を検討
  • 26. 26Copylight © Classmethod, Inc. ご清聴ありがとうございました。