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
gVisorを使おう!/ Let's use gVisor!
Search
Kattyan
July 13, 2023
Programming
0
130
gVisorを使おう!/ Let's use gVisor!
Kattyan
July 13, 2023
Tweet
Share
More Decks by Kattyan
See All by Kattyan
QPACK って何?/What is QPACK?
sou1118
0
600
スライド操作用リモコンを作った話/Making-a-remote-control-for-slide-operation
sou1118
0
340
マイナンバーカードを用いた認証について/Authentication-using-the-My-Number-Card
sou1118
0
730
マイナンバーカードの有効利用法を探る / Finding-ways-to-use-my-number-card
sou1118
0
270
少し幸せになれるスマートなリモコンを作る / Making-a-Smart-remote-controller
sou1118
0
320
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
860
若手バックエンドエンジニアが Elasticsearch を使ってみた話
hott0mott0
1
100
Datadog Workflow Automation で圧倒的価値提供
showwin
1
340
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
3
180
CloudRun, Spanner に対する負荷試験の反省と オブザーバビリティによるアプローチ
oyasumipants
1
210
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
230
Django NinjaによるAPI開発の効率化とリプレースの実践
kashewnuts
1
310
フロントエンドオブザーバビリティ on Google Cloud
yunosukey
0
110
Expoによるアプリ開発の現在地とReact Server Componentsが切り開く未来
yukukotani
2
300
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
170
Accelerate your key learnings of scaling modern Android apps
aldefy
0
100
1年目の私に伝えたい!テストコードを怖がらなくなるためのヒント/Tips for not being afraid of test code
push_gawa
1
670
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
660
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Git: the NoSQL Database
bkeepers
PRO
429
65k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Code Reviewing Like a Champion
maltzj
521
39k
Writing Fast Ruby
sferik
628
61k
Six Lessons from altMBA
skipperchong
27
3.6k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
134
33k
For a Future-Friendly Web
brad_frost
176
9.6k
Transcript
gVisorを使おう! Kattyan 1
自己紹介 インターネット技術とネットワークセキュリティ,低いところに興味 GitHub: sou1118 自己紹介 2
コンテナとは? コンテナは,アプリケーションとその依存関係をパッケージ化し,独立 した環境で実行するための技術 コンテナは分離された環境を提供し,これによりアプリケーションは他 のシステムから独立して動作 NameSpaceを使用して,この分離された空間に対するアクセス制御 を行う cgroupsを使用して,リソースの制限(CPU,メモリなど)を行う コンテナについて 3
コンテナランタイムとは? コンテナの作成と管理を担当するソフトウェア 以下の4層で構成される 1. 管理コマンド 2. 高レベルコンテナランタイム 3. 低レベルコンテナランタイム 4.
Linux カーネル コンテナランタイムについて 4
例えば,Dockerを使用した場合 1. Docker CLI 2. containerd 3. runC 4. Linux
カーネル 5
低レベルコンテナランタイムとは? Linux カーネルの上で直接コンテナを作成,実行 ホスト OS の特権権限が必要 runC に脆弱性があると,ホスト OS の特権権限が侵害される可能性
がある 最近では,runC を置き換える動きが活発 高レベルコンテナランタイムから低レベルコンテナランタイムへの通信 は,OCI (Open Container Initiative) に基づく gVisor, Firecracker, Kata などが低レベルコンテナランタイムの例と して挙げられる 低レベルコンテナランタイムについて 6
gVisorとは? runC の代わりとして開発された低レベルコンテナランタイム OCI に準拠 システムコールの大部分を,ホストカーネルに直接渡さずに,gVisorの ゲストカーネルで実行 コンテナがホストから完全に分離(サンドボックス化) Go 言語で書かれており,メモリ安全を保証
GCP の App Engine や Cloud Run での実用経験があり Dockerで利用する場合は, daemon.json ファイルを編集することで設 定可能 gVisorについて 7
おしまい 8