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
Rustで実装された AWS Nitro Enclaves CLIを読む
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Osuke
December 07, 2020
Programming
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Rustで実装された AWS Nitro Enclaves CLIを読む
Osuke
December 07, 2020
More Decks by Osuke
See All by Osuke
特許データを使ったマルチモーダルAIの検証事例@LLMProd#4
osuke
0
340
dbtを中心に据えた データ分析とプロダクト開発
osuke
1
1.2k
LayerX Privacy Tech事業部紹介 Tech編
osuke
1
260
(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール
osuke
1
450
Rustのパフォーマンスに関するTips
osuke
4
4.8k
ARM TrustZone入門 / ARM TrustZone intro
osuke
21
10k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Privacy on Blockchain
osuke
1
1.3k
Other Decks in Programming
See All in Programming
Contextとはなにか
chiroruxx
1
370
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.8k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
170
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
170
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
5.4k
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
130
さぁV100、メモリをお食べ・・・
nilpe
0
160
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
0
120
Oxcを導入して開発体験が向上した話
yug1224
4
340
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
13
6.3k
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
120
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
Music & Morning Musume
bryan
47
7.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
We Have a Design System, Now What?
morganepeng
55
8.2k
BBQ
matthewcrist
89
10k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
150
A Soul's Torment
seathinner
6
3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Context Engineering - Making Every Token Count
addyosmani
9
980
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
240
So, you think you're a good person
axbom
PRO
2
2.1k
Transcript
1 Rustで実装された AWS Nitro Enclaves CLIを読む Osuke Sudo 2020/12/7 @Rust
LT Online #2
2 @zoom_zoomzo Osuke ソフトウェアエンジニア@LayerX • 暗号技術・TEEを用いたデータのプライバシー保護・改ざん 耐性手法の研究開発(Confidential Computing) • Anonifyの開発
◦ https://github.com/LayerXcom/anonify
3 アジェンダ • AWS Nitro Enclacvesとは • Enclave起動までの処理の流れ • EIFイメージ展開とメモリ割り当て
4 • 高度にセキュアな情報を扱うことを想定し、AWS Nitro Systemにより提供される隔離保護された実行環境 ◦ 軽量なkvmベースのハイパーバイザ + ネットワーク・ストレージのオフロード +
セキュリティチッ プなど • それぞれのEnclaveには、EC2のメモリやCPUリソースを割り当てることができ、独立したカーネルOS上 で動作 • Enclaveは親EC2とのvsockのみでやりとり可能(外部のネットワークやストレージに接続することはでき ず、admin IAM権限でもユーザーアクセスはできない) AWS Nitro Enclavesとは https://aws.amazon.com/jp/blogs/aws/aws-nitro-enclaves-isolated-ec2-environments-to-process-confidential-data/
5 Nitro Enclacve CLI • Nitro-cliでdocker imageからEIF(Enclave Image File)をビルド可能 •
EIFと割り当てるメモリ、vCPUを指定しenclaveを起動
6 enclave起動までの処理 1. 親プロセス:CLIコマンドでコミュニケーションするためのEnclave用デーモンの生成 2. デーモン:コマンドを受け取るためのevent loopを回す 3. 親プロセス:socketにrun-enclaveコマンドを送信 4.
デーモン:nitroデバイスファイルへVM生成コマンド送信 5. デーモン:メモリの割り当てとEIFをメモリに書き込み 6. デーモン:vCPUの割り当て 7. デーモン:nitroデバイスファイルを介しenclaveをスタート 8. 親プロセス:enclaveからのレスポンスを処理し表示 参考: Rustで実装されたAWS Nitro Enclaves CLIの実装を読む https://qiita.com/Osuke/items/81d928bd2a46fab46cbc
7 init_memory(): メモリ領域の確保 • Run-enclaveコマンドの引数として渡したメ モリサイズ分だけメモリ領域を確保 • それぞれのregionがhuge-pageに対応し、 libc::mmap()により割り当て
8 init_memory(): EIFイメージの展開 • NE_GET_IMAGE_LOAD_INFOコマンドでioctlを呼 び、EIFイメージを展開するメモリのオフセットを Nitro Systemから取得 • 確保したメモリ領域とイメージ展開オフセットから
実際にEIFを書き込む • ページごとにNE_SET_USER_MEMORY_REGIONコ マンドでioctlを呼び、デバイスドライバにセット ◦ (KVMでいうところの KVM_SET_USER_MEMORY_REGIONで実行 バイナリをVMにセットしているイメージ)
9 • Rustで実装されたAWS Nitro Enclaves CLIの実装を読む ◦ https://qiita.com/Osuke/items/81d928bd2a46fab46cbc • Nitro
Enclaves Command Line Interface (Nitro CLI) ◦ https://github.com/aws/aws-nitro-enclaves-cli • Deep Dive Into AWS Nitro Enclaves - AWS Online Tech Talks ◦ https://youtu.be/K5PRNHaEdOw • AWS re:Invent 2019: Powering next-gen Amazon EC2: Deep dive into the Nitro system (CMP303-R2) ◦ https://youtu.be/rUY-00yFlE4 References