Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS暗号コンピューティング - C3Rを使って暗号化したまま処理を実行
Search
西岡 賢一郎 (Kenichiro Nishioka)
May 27, 2023
Technology
0
230
AWS暗号コンピューティング - C3Rを使って暗号化したまま処理を実行
機械学習の社会実装勉強会第23回 (
https://machine-learning-workshop.connpass.com/event/283439/
) の発表で使用した資料です。
西岡 賢一郎 (Kenichiro Nishioka)
May 27, 2023
Tweet
Share
More Decks by 西岡 賢一郎 (Kenichiro Nishioka)
See All by 西岡 賢一郎 (Kenichiro Nishioka)
LangGraph Templatesによる効率的なワークフロー構築
knishioka
0
46
AIエージェントの開発に特化した統合開発環境 LangGraph Studio
knishioka
0
83
LangGraphを用いたAIアプリケーションにおけるメモリ永続化の実践
knishioka
0
200
Text-to-SQLをLangSmithで評価
knishioka
0
150
効果的なLLM評価法 LangSmithの技術と実践
knishioka
1
310
LangGraphのノード・エッジ・ルーティングを深堀り
knishioka
0
400
LangGraphでマルチエージェントワークフローを構築
knishioka
0
340
LLMアプリケーションで使用するVector Databaseの比較
knishioka
0
1.9k
LLMアプリケーションの デバッグ・テスト・評価・監視を楽にするLangSmith
knishioka
0
280
Other Decks in Technology
See All in Technology
CAMERA-Suite: 広告文生成のための評価スイート / ai-camera-suite
cyberagentdevelopers
PRO
3
270
Aurora_BlueGreenDeploymentsやってみた
tsukasa_ishimaru
1
130
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
Amazon FSx for NetApp ONTAPを利用するにあたっての要件整理と設計のポイント
non97
1
160
サイバーエージェントにおける生成AIのリスキリング施策の取り組み / cyber-ai-reskilling
cyberagentdevelopers
PRO
2
200
Product Engineer Night #6プロダクトエンジニアを育む仕組み・施策
hacomono
PRO
1
470
話題のGraphRAG、その可能性と課題を理解する
hide212131
4
1.5k
ネット広告に未来はあるか?「3rd Party Cookie廃止とPrivacy Sandboxの効果検証の裏側」 / third-party-cookie-privacy
cyberagentdevelopers
PRO
1
130
Gradle: The Build System That Loves To Hate You
aurimas
2
150
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
210
Amazon_CloudWatch_ログ異常検出_導入ガイド
tsujiba
4
1.6k
新卒1年目が向き合う生成AI事業の開発を加速させる技術選定 / ai-web-launcher
cyberagentdevelopers
PRO
7
1.5k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
275
23k
We Have a Design System, Now What?
morganepeng
50
7.2k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Optimizing for Happiness
mojombo
376
69k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
Automating Front-end Workflow
addyosmani
1365
200k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Designing on Purpose - Digital PM Summit 2013
jponch
115
6.9k
A better future with KSS
kneath
238
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Transcript
AWS暗号コンピューティング C3Rを使って暗号化したまま処理を実行 2023/05/27 第23回勉強会
自己紹介 • 名前: 西岡 賢一郎 ◦ Twitter: @ken_nishi ◦ note:
西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro) ◦ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル (https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg) • 経歴 ◦ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 ◦ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト ライディアを設立 ◦ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 ◦ CDPのスタートアップ (Sr. PdM)・株式会社データインフォームド (CEO)・株式会社ディース タッツ (CTO) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
本日のお話 • 機械学習と暗号コンピューティング • AWS暗号コンピューティング • クリーンルーム用暗号コンピューティング (C3R) • C3Rを使ったデータ暗号化のデモ
機械学習と暗号コンピューティング
データエンハンスメント • 機械学習に限らず、より精度の高い分析をするためには、様々なデータを結合した い (データエンハンスメント) • しかし、自社データだけでなく他社のデータを結合するとなると、プライバシー保 護の観点でデータの取扱が極端に難しくなる • その問題を解決するために出てきた技術が、第22回勉強会で紹介したData
Clean Room (参考: https://youtu.be/BwqSqnsZb_o) • 今回紹介する暗号コンピューティングは、Data Clean Roomのセキュリティレベル をさらに高める技術として使える データ提供するときに 個人情報をマスクできるかが課題 3rd Party 3rd Partyデータを用いて 詳細な分析ができる
Data Clean Roomで安全に結合し分析 • ローデータを分析者に公開することなく結合 (ここでは結合キーをPIDとしている) し、分析できる環境を提供 • 集計結果に制約を設けることで、個人情報漏洩のリスクを下げることが可能 (完璧に防げるわけではない)
• 個人情報の第三者提供をくぐり抜けるための銀の弾丸ではない Data Clean Roomの分析イメージ
暗号コンピューティングを使いたい場面 • Data Clean Roomを利用する時、自社データをクラウド環境に置く必要がある • 設定ミスなどでデータが漏洩した場合に備えて、社外にデータを置く場合は暗号化 したい (暗号化の対象はPIDに限らない)
機械学習視点 • 第三者データの結合にData Clean Roomというソリューションを使うことができる • ただし、第三者データを結合する時に使われるキーは、Data Clean Roomで丸められたり、 SELECTできなかったりするため、モデル作成に影響が生じる可能性がある
• 暗号化したデータを結合に使うことはありえるが、暗号化したデータを演算する必要がある場面は 少ない • 暗号コンピューティング x 機械学習自体はまだまだ実務では使われていないのが現状 ◦ 機械学習に暗号化を組み込んだPrivacy-Preserving XGBoost Inferenceなども出てきている
AWS暗号コンピューティング
AWS暗号コンピューティング • 「暗号コンピューティングは単一のものではありません。むしろ、使用中の データを保護するための方法論であり、機密データを他人に知られることな く計算するための一連の技術なのです。」Bill Horne, Principal Product Manager, AWS
Cryptography (出典: Amazon Web Services ブログ) • オープンソースツールを提供 (AWS 暗号コンピューティング) ◦ クリーンルーム用暗号コンピューティング (C3R): 秘匿性を維持したままその入力に対して 合同で関数を計算する技術を提供するライブラリ ← 今回紹介する内容 ◦ Privacy Preserving XGBoost Inference: プライバシー保護 XGBoost のプロトタイプ ◦ Lattigo 準同型暗号ライブラリの C++ バインディング: 準同型暗号ライブラリの部分的な C++ バインディング ◦ Homomorphic Implementor’s Toolkit: CKKS 準同型暗号スキーム向けの準同型回路を設計す るプロセスを簡素化するためのツール
クリーンルーム用暗号コンピューティング (C3R)
クリーンルーム用暗号コンピューティング (C3R) • 暗号化されたデータは、復号化されることなく暗号化されたまま処理が実行 される • 暗号化されたデータ ◦ できること ▪
他データと結合するためのJOINのキーとして使う ▪ COUNT, COUNT(DISTINCT)とGROUP BYなどの集計 (条件あり) ◦ できないこと ▪ WHERE句やSUMやAVERAGEなどの集約関数の適用
C3Rのカラムの種類 • Fingerprintカラム ◦ JOINなどで使用するために暗号的に保護されているカラム ◦ HMACによる保護 ◦ 使用可能な構文 ▪
他のFingerprintカラムとJOINまたはINNER JOIN ▪ SELECT COUNT() ▪ SELECT COUNT(DISTINCT ) ▪ GROUP BY (NULLの保持が許可されている場合のみ) • sealedカラム ◦ SELECT文で使用するために暗号化されたカラム ◦ AES-GCMによる保護 ◦ 使用可能な構文 ▪ SELECT ▪ SELECT ... AS ▪ SELECT COUNT() • cleartextカラム ◦ JOIN文やSELECT文で使用するために暗号化されていないカラム
Fingerprintカラムが保護される仕組み AWS Clean Rooms上でFingerprintカラムが漏洩しないような保護が行われる • 第三者とのデータの結合には、Fingerprintカラムを暗号化したまま使う • Fingerprintカラムを直接SELECTすることはできない • どのデータが結合されたかを使用者は知ることができない
• 集計結果がしきい値以下の場合は削除
AWS Clean Roomsの特徴 • 自分AWSを含め最大で5つのAWSアカウントでデータの連携が可能 • クエリの実行および結果の受け取りができるのは1つのAWSアカウントのみ • 集計結果に対して最小閾値を設定し、少ない集計結果による元データの推定 を防ぐ事が可能
• 自分が開始したクエリと自分のデータを含むクエリのログを受け取り可能 • 暗号コンピューティングにより、データを暗号化したまま保存・転送・処理 が可能
データの保護レベルの4つのトレードオフ • データの保護レベルと利便性はトレードオフとなる • トレードオフとして考えられるもの 1. cleartextの混在を許可するかどうか 2. Fingerprintカラムの重複を許可するかどうか 3.
Fingerprintカラム名の制限を緩和するかどうか 4. Nullを保持するかどうか
1. cleartextの混在を許可するかどうか • すべてのカラムを暗号化すると、データを最大限に保護することができる • 一方で、暗号化されたデータはSUMなどの集計関数などが使えなくなるとい う欠点がある • データを暗号化しても、cleartextカラムから元データを推定できる可能性が ある
◦ 例: 県を暗号化して、市を暗号化していない場合
2. Fingerprintカラムの重複を許可するかどうか • Fingerprintカラムがすべてユニークな値である場合、C3Rによって暗号化さ れた値から元の値を推測することは不可能 • ただし、分析によっては、Fingerprintカラムで重複を許さないといけない場 合が出てくる • 重複を許す場合、統計的推定により、元のカラムを推定される可能性がある
◦ 例: 暗号化された地域データで、データ数の違いによって地域を推定
3. Fingerprintカラム名の制限を緩和するかどうか • デフォルトでは、暗号化されたFingerprintカラムを利用して2つのテーブル を結合 ◦ Fingerprintカラムを暗号化するときに、共通秘密鍵とカラム名の組み合わせから作られた鍵 を利用する ◦ 異なるカラム名の場合、結合ができなくなる
• Fingerprintカラム名の制御をなくす場合 ◦ すべてのFingerprintカラムに対して単一の鍵を使うこととなる ◦ 異なるFingerprintカラムで同じ値を導出してしまうこととなる ▪ 例:県名と市名が同じ場合、暗号化したあとも同じ値となる
4. Nullを保持するかどうか • Nullを他の値と同様に暗号化することで、データの保護レベルを高めること ができる • Nullを暗号化した場合 ◦ IS NULLなどが使用できなくなる
◦ GROUP BYでグループ化できる • 値がNullであることが元データの推定に使われることがある ◦ 例: ミドルネームカラムがNullの場合
C3Rを使用した暗号コンピューティングの流れ • AWS Clean RoomsでCollborationを作成 (暗号化にcollaboration idが必要なので暗号化よりも前に 作成が必要) • ローカルで暗号化
◦ 共通鍵の作成 ◦ C3Rのjarファイルを使ってSchemaおよび暗号化されたカラムを含むデータの作成 (CSV, Parquet形式) • 暗号化されたカラムを含むデータをS3へ保存 • AWS Glue カタログを作成 • AWS Clean Roomsにテーブルを登録 出典: AWS Console ここで暗号化をする
デモ: C3Rを使ったデータ暗号化 GitHubにあるC3Rを使ってテーブルデータを暗号化するまでのフローを紹介 • インタラクティブモードを使ったschema定義のJSON作成 • 暗号化に利用する共通鍵の作成 • テーブルデータの暗号化
参考: デモで実行したコマンド • wget https://github.com/aws/c3r/releases/download/1.1.3/c3r-cli-1.1.3.jar # C3Rをダウンロード • java -jar
c3r-cli-1.1.3.jar -h # 使用可能なコマンドの確認 • java -jar c3r-cli-1.1.3.jar schema -i <暗号化前のcsv> # schema jsonの作成 • openssl rand 32 > secret.key # 共通鍵の作成 • export C3R_SHARED_SECRET="$(cat secret.key | base64)" # 共通鍵を環境変数に格納 • java -jar c3r-cli-1.1.3.jar \ encrypt <暗号化前のcsv> \ --schema=<暗号化前のcsv>.json \ --id <collaboration id> \ --output=<暗号化後のcsv> # 暗号化されたカラムを含む csvを作成