Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20260516_SecJAWS_Days
Search
Takuya Yonezawa
May 16, 2026
Technology
930
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20260516_SecJAWS_Days
https://s-jaws.connpass.com/event/383751/
Takuya Yonezawa
May 16, 2026
More Decks by Takuya Yonezawa
See All by Takuya Yonezawa
20260422_Midosuji_Tech
takuyay0ne
2
99
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
630
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
750
20260204_Midosuji_Tech
takuyay0ne
1
260
20260129_CB_Kansai
takuyay0ne
1
390
20260126_JAWS_Osaka
takuyay0ne
1
74
こんな時代だからこそ! 想定しておきたいアクセスキー漏洩後のムーブ
takuyay0ne
4
830
セキュリティは全員参加!_JAWSのイベントサイトで脅威モデリングを学んでみよう!
takuyay0ne
0
230
20250920_ServerlessDays
takuyay0ne
10
5k
Other Decks in Technology
See All in Technology
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
200
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
220
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
150
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
180
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
160
Deploying a Full-Stack Bun-Native Framework on Cloudflare Workers
7nohe
0
160
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
0
1k
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
8
640
すぐできる衛星通信対応 あとは山奥に行くだけ
tatetate55
0
110
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
680
NW運用でNWトポロジ可視化ツールに期待すること/shumoku-meetup1
corestate55
2
120
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
200
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Music & Morning Musume
bryan
47
7.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
4 Signs Your Business is Dying
shpigford
187
23k
HDC tutorial
michielstock
2
860
Rails Girls Zürich Keynote
gr2m
96
14k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
300
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
For a Future-Friendly Web
brad_frost
183
10k
Transcript
1 © 2026 Japan Digital Design, Inc. Takuya Yonezawa 2026.05.16
Bottlerocket on ECS Dive Deep Security JAWS Days ~ Day 1 ~
2 © 2026 Japan Digital Design, Inc. お疲れのところ失礼しますmm ニッチな話なので気楽に聞いてください 内容を理解したからといって日常業務で
めっちゃ役に立つわけではないです ただただOSの話をします
3 © 2026 Japan Digital Design, Inc. 米澤 拓也 Software
Engineer Technology & Development Div. and Corporate Culture室 プロフィール アプリケーションを気持ちよく作るためには インフラやセキュリティも幅広くできなければならぬ! と意気込んだSWEの成れの果て。 採用活動もやってますので是非お声掛けください 証券系→銀行系 と 金融×IT なキャリアを歩んでいます (証券外務員一種) Community Builder (Serverless) 2023~ takuya_y0ne
4 © 2026 Japan Digital Design, Inc. 0 はじめに
5 © 2026 Japan Digital Design, Inc. Bottlerocketってご存知ですか? (ちゃんとアイコンもあるんですよ!) ペットボトルロケットのことではない
6 © 2026 Japan Digital Design, Inc. 一言で言うと… セキュアにコンテナをホストするために カリカリにチューニング
された Linuxベースのコンテナ特化型OS
7 © 2026 Japan Digital Design, Inc. https://aws.amazon.com/about-aws/whats-new/2020/08 /announcing-general-availability-of-bottlerocket/ https://aws.amazon.com/about-aws/whats-new/2020/08
/announcing-general-availability-of-bottlerocket/ 2020/08 EKS用Bottlerocket AMIが一般提供 実は結構老舗
8 © 2026 Japan Digital Design, Inc. https://aws.amazon.com/about-aws/whats-new/2021/06 /the-bottlerocket-ami-for-amazon-ecs-is-now-generally-available/ https://aws.amazon.com/about-aws/whats-new/2021/06
/the-bottlerocket-ami-for-amazon-ecs-is-now-generally-available/ 2021/06 ECS用Bottlerocket AMIが一般提供 実は結構老舗
9 © 2026 Japan Digital Design, Inc. もちろん現在もきちんとメンテされている https://github.com/bottlerocket-os/bottlerocket/releases https://github.com/bottlerocket-os/bottlerocket/releases
実は結構老舗
10 © 2026 Japan Digital Design, Inc. 1 Bottlerocketは何故セキュアなのか?
11 © 2026 Japan Digital Design, Inc. ① 徹底されたアタックサーフェスの削減
12 © 2026 Japan Digital Design, Inc. 不要なパッケージを徹底削減 不要なパッケージを排除することで、 脆弱性の混入リスクやパッケージの更新/
管理の手間を大幅に削減する シェルすら捨てるという男前仕様 もし任意のプログラムや設定スクリプト を持ち込む場合は起動時に実行される bootstrapコンテナ経由で行う 上記はコンテナイメージ作成における プラクティスにも通じる内容である Bottlerocketが捨て去ったもの シェルとインタプリタ 攻撃者が脆弱性を突いてOS内で 任意のコードを実行できないようにする シェル:bashとか インタプリタ:Pythonとか パッケージマネージャー システムの整合性を損なう変更や悪意のある パッケージのインストールをブロックする yumやaptなど
13 © 2026 Japan Digital Design, Inc. ② ファイルシステムの整合性の担保
14 © 2026 Japan Digital Design, Inc. BottlerocketのAMI(Marketplaceから入手可能)から EC2を起動しようとすると、EBSが2つ必要になる 何故かGP2デフォルト
..
15 © 2026 Japan Digital Design, Inc. Bottlerocketでは 2つのボリュームを利用する それぞれのボリュームに格納される
主要なデータ群は下記の2系統 ▪ Root Device(immutable:不変) - Active/Passive パーティションセット - ブートローダー - dm-verityハッシュツリー - Bottlerocket APIデータストア ▪ Data Device(mutable:可変) - Pullしたコンテナイメージ - アプリケーション用ストレージ - コンテナオーケストレーションに 関連するデータ Root Device (immutable) Data Device (mutable) Bottlerocket on EC2 Active/Passive パーティションセット ブートローダー dm-verityハッシュツリー API データストア コンテナイメージ Application/Admin/Control /Bootstrapコンテナ オーケストレーション 関連データ (containerd/kubelet/ECS agent) … … アプリケーション用ストレージ
16 © 2026 Japan Digital Design, Inc. Bottlerocketでは 2つのボリュームを利用する それぞれのボリュームに格納される
主要なデータ群は下記の2系統 ▪ Root Device(immutable:不変) - Active/Passive パーティションセット - ブートローダー - dm-verityハッシュツリー - Bottlerocket APIデータストア ▪ Data Device(mutable:可変) - Pullしたコンテナイメージ - アプリケーション用ストレージ - コンテナオーケストレーションに 関連するデータ Data Device (mutable) Bottlerocket on EC2 Active/Passive パーティションセット ブートローダー API データストア コンテナイメージ Application/Admin/Control /Bootstrapコンテナ オーケストレーション 関連データ (containerd/kubelet/ECS agent) … … アプリケーション用ストレージ Root Device (immutable) dm-verityハッシュツリー 事前に計算/保存された ハッシュツリーと比較することで Root Deviceのimmutable性を 担保している
17 © 2026 Japan Digital Design, Inc. dm-verity (device-mapper verity)
Root Hash Block 1 (4KB) Block 2 (4KB) Block 3 (4KB) Block 4 (4KB) … Hash 1 Hash 2 Hash 3 Hash 4 Hash (3|4) L0 データブロック(実データ) SHA256 SHA256 SHA256 SHA256 … Hash (1|2) SHA256 SHA256 SHA256 … ブロックデバイスの改竄検知/防止の仕組み Linuxカーネル上に実装されており、 Androidや組み込み系OSでも利用される 全データをツリー構造のSHA256ハッシュ (Hash Tree/Markle Tree)で管理し、 ルート(最上位)のハッシュが正しいこと を以て改竄判定を行う → ルートを見れば済むので計算量が減る ブロックが改竄された場合、 Root Hashの値が不一致になる
18 © 2026 Japan Digital Design, Inc. dm-verity (device-mapper verity)
ブロックデバイスの改竄検知/防止の仕組み Linuxカーネル上に実装されており、 Androidや組み込み系OSでも利用される 全データをツリー構造のSHA256ハッシュ (Hash Tree/Markle Tree)で管理し、 ルート(最上位)のハッシュが正しいこと を以て改竄判定を行う → ルートを見れば済むので計算量が減る ブロックが改竄された場合、 Root Hashの値が不一致になる Root Hash Block 1 (4KB) Block 2 (4KB) Block 3 (4KB) Block 4 (4KB) … Hash 1 Hash 2 Hash 3 Hash 4 Hash (3|4) L0 データブロック(実データ) SHA256 SHA256 SHA256 SHA256 … Hash (1|2) SHA256 SHA256 SHA256 … ハッシュが違う! → 改竄された
19 © 2026 Japan Digital Design, Inc. もしRoot Deviceで改竄が検知されたら… Bottlerocketは即座にRebootする
・Fail Closed:異常を検知したら止める ・脅威(不正なコードや攻撃者)の排除 CVE-2019-5736 のようなコンテナ エスケープ脆弱性への打ち手に
20 © 2026 Japan Digital Design, Inc. ③ Control containerと
Admin container
21 © 2026 Japan Digital Design, Inc. Bottlerocketの運用で利用する 特殊コンテナ 下記の2種類のコンテナが用意されている
▪ Control Container(コントロール) APIソケットと通信を行うことでOSの設定 を変更することが可能 → Bottlerocketでは、設定変更は原則的 にAPIを通じてしか行えない ※1 SSMエージェントも包含されている ▪ Admin Container(管理) 最強の権限を持ち、シェルやパッケージ マネージャーも使える(AL2イメージ) 高度な調査やトラブルシューティング用 デフォルトではオフ ※1 APIという唯一かつ厳格なインタフェースを強制させることで、 アタックサーフェスの削減やバリデーションによる不確実性の排除を実現する Admin Container (デフォルトではオフ) Control Container SSM Agent SSHサーバー パッケージマネージャー apiclient apiclient Session Manager Application Container (ユーザーが作成したアプリケーション)
22 © 2026 Japan Digital Design, Inc. Bottlerocketの運用で利用する 特殊コンテナ 下記の2種類のコンテナが用意されている
▪ Control Container(コントロール) APIソケットと通信を行うことでOSの設定 を変更することが可能 → Bottlerocketでは、設定変更は原則的 にAPIを通じてしか行えない ※1 SSMエージェントも包含されている ▪ Admin Container(管理) 最強の権限を持ち、シェルやパッケージ マネージャーも使える(AL2イメージ) 高度な調査やトラブルシューティング用 デフォルトではオフ Control ContainerにSSM接続した際のコンソール (日々の運用ではこちらを使う)
23 © 2026 Japan Digital Design, Inc. ④ SELinuxによるmutable領域の保護
24 © 2026 Japan Digital Design, Inc. Bottlerocketでは 2つのボリュームを利用する それぞれのボリュームに格納される
主要なデータ群は下記の2系統 ▪ Root Device(immutable:不変) - Active/Passive パーティションセット - ブートローダー - dm-verityハッシュツリー - Bottlerocket APIデータストア ▪ Data Device(mutable:可変) - Pullしたコンテナイメージ - アプリケーション用ストレージ - コンテナオーケストレーションに 関連するデータ Root Device (immutable) Bottlerocket on EC2 Active/Passive パーティションセット ブートローダー dm-verityハッシュツリー API データストア … Data Device (mutable) コンテナイメージ Application/Admin/Control /Bootstrapコンテナ オーケストレーション 関連データ (containerd/kubelet/ECS agent) … アプリケーション用ストレージ こちらの話
25 © 2026 Japan Digital Design, Inc. SELinux (Security Enhanced
Linux) アメリカ国家安全保障局 (NSA)が開発 したLinuxカーネルのセキュリティ機能 プロセスやファイルにラベル(コンテキ スト)を付与することでアクセス可否を 判断する 3つの実行モードがあり、Bottlerocket ではenforcingで動く - enfocing: アクセス制限適応 - permissive: アクセス制限未適応 - disabled: SELinuxを無効化 Bottlerocketで利用されるSELinuxラベル container_t 通常ワークロード用コンテナ、制限が最も強い control_t 特権コンテナ 管理用APIソケットへの書き込みが可能 super_t ホストの全ファイル操作とAPI操作が可能な最強 権限(利用にはオプトインが必要)
26 © 2026 Japan Digital Design, Inc. ここまでのまとめ (※) root権限を保有していたとしても、
カーネルの整合性を損なうような操作はできない 他にも カーネルロックダウン※ なども 取り入れられており、 多層でOSを守っている
27 © 2026 Japan Digital Design, Inc. 2 日々の運用
28 © 2026 Japan Digital Design, Inc. OSのバージョンアップ
29 © 2026 Japan Digital Design, Inc. Bottlerocket OSのアップデート Bottlerocket
on EC2 ブートローダー dm-verityハッシュツリー API データストア … Root Device (immutable) Active/Passive パーティションセット Data Device (mutable) Control Container SSM Agent apiclient カリカリにチューニングされた Bottlerocketとはいえ、OS自体のアップ デートは必要 OSアップデートの際にはControl Contaner内のapiclientを利用して、 Passiveパーティションセットに書き込む その後はインスタンスをrebootして、 Active/Passiveをスワップする TUF:The Update Framework → CNCFのプロジェクト
30 © 2026 Japan Digital Design, Inc. Bottlerocket OSのアップデート カリカリにチューニングされた
Bottlerocketとはいえ、OS自体のアップ デートは必要 OSアップデートの際にはControl Contaner内のapiclientを利用して、 Passiveパーティションセットに書き込む その後はインスタンスをrebootして、 Active/Passiveをスワップする TUF:The Update Framework → CNCFのプロジェクト Active/Passive パーティションセット Active Version (v1.58.0) Passive Version (v1.59.0) ダウンロード 利用中 未利用 Active/Passive パーティションセット Passive Version (v1.58.0) Active Version (v1.59.0) reboot Active/Passiveパーティション構成 × API更新により、 - OS起動失敗時の自動ロールバック(手動もOK) - OSバージョンをまたいだ設定情報の移行 が実現可能に
31 © 2026 Japan Digital Design, Inc. Bottlerocket OSのアップデート Bottlerocektの
バージョン一覧 現在のOSバージョン アップデート予定の OSバージョン $ apiclient update check カリカリにチューニングされた Bottlerocketとはいえ、OS自体のアップ デートは必要 OSアップデートの際にはControl Contaner内のapiclientを利用して、 Passiveパーティションセットに書き込む その後はインスタンスをrebootして、 Active/Passiveをスワップする TUF:The Update Framework → CNCFのプロジェクト
32 © 2026 Japan Digital Design, Inc. Bottlerocket OSのアップデート $
apiclient update apply $ apiclient reboot 新バージョン反映 カリカリにチューニングされた Bottlerocketとはいえ、OS自体のアップ デートは必要 OSアップデートの際にはControl Contaner内のapiclientを利用して、 Passiveパーティションセットに書き込む その後はインスタンスをrebootして、 Active/Passiveをスワップする TUF:The Update Framework → CNCFのプロジェクト
33 © 2026 Japan Digital Design, Inc. インスタンス毎にアップデート回すのが面倒? Bottlerocket ECS
Updaterを利用して自動化 https://aws.amazon.com/jp/blogs/news/a-deep-dive-into-bottlerocket-ecs-updater/
34 © 2026 Japan Digital Design, Inc. 3 実際に導入してみた気づき
35 © 2026 Japan Digital Design, Inc. そもそもFargateを使えばOSメンテ不要だよね?
36 © 2026 Japan Digital Design, Inc. 仰るとおりです Fargate良いですよね EC2
(GPU) ECS Task × 1 ECS Service Bottlerocket ALB 弊社では 下記のような一部のワークロードで ECS on EC2を利用中 ① GPUを利用するECSサービス ② パフォーマンスが求められるECSサービス (= 最新のCPUを使いたい) もともとはECS標準AMIを利用していたが、 脆弱性ケアの負荷を下げるためにBottlerocketに乗り換えた 資料の要約結果 ベクトル化結果 [0.1, 0.4, 0.8, 0.7, 0.2, … , 1.0] "このページはxxxについて説明 しています。hogehoge..." ただし、 下記のようなケースではECS on EC2の 利用検討が必要 ▪ GPUの利用 → この要件が出るとEC2しかない ▪ 常に新しいCPUを利用したい → EC2はCPUガチャがない ▪ Reserved Instanceなどの割引 → EC2利用だと選択肢が多い ▪ ややこしいコンテナを動かす場合 → 詳しくは述べません()
37 © 2026 Japan Digital Design, Inc. 仰るとおりです Fargate良いですよね ただし、
下記のようなケースではECS on EC2の 利用検討が必要 ▪ GPUの利用 → この要件が出るとEC2しかない ▪ 常に新しいCPUを利用したい → EC2はCPUガチャがない ▪ Reserved Instanceなどの割引 → EC2利用だと選択肢が多い ▪ ややこしいコンテナを動かす場合 → 詳しくは述べません() apne-1a/1c, X86_64, 1vCPU/2Mem で Fargateタスクを100発起動してlscpuした結果 リリース年は下記サイトを参照 https://www.cpubenchmark.net/ 2020 Q1 2019 Q3 2018 Q3 2018 Q4
38 © 2026 Japan Digital Design, Inc. ECS Managed Instanceが絶妙
FargateとEC2のいいとこ取りを できるようなアップデート。 AWSブログによると、 裏側でBottlerocketが動いている※1。 ただし、 14日ごとにパッチ適応が発動する。 (インスタンスドレイン) これは裏で動いているBottlerocketを 最新化することによるものと思われる ※1 https://aws.amazon.com/jp/blogs/aws/announcing-amazon- ecs-managed-instances-for-containerized-applications/
39 © 2026 Japan Digital Design, Inc. で、実際に脆弱性検知はどんなもんか?
40 © 2026 Japan Digital Design, Inc. Inspectorでの検出 全てのEC2インスタンスを同じタイミング で起動し、1か月ほど放置してみた。
脆弱性の検出はInspectorベース AMIは下記の3パターン - AL2023(kernel 6.1) - ECS最適化 AL2023(kernel 6.1) - Bottlerocket v1.59.0 (kernel 6.1) お分かりいただけるでしょうか? 脆弱性の数が全然違いますよね
41 © 2026 Japan Digital Design, Inc. Inspectorでの検出 とはいえカーネルレベルの脆弱性は どうしても避けられない
(検知数は少ないけど) https://aws.amazon.com/jp/security/security-bulletins/rss/2026-026-aws/ 全てのEC2インスタンスを同じタイミング で起動し、1か月ほど放置してみた。 脆弱性の検出はInspectorベース AMIは下記の3パターン - AL2023(kernel 6.1) - ECS最適化 AL2023(kernel 6.1) - Bottlerocket v1.59.0 (kernel 6.1)
42 © 2026 Japan Digital Design, Inc. 4 まとめ
43 © 2026 Japan Digital Design, Inc. Bottlerocket導入で脆弱性はめちゃくちゃ削減できる。 ( !=
脆弱性管理から解放される) Fargateも良いけど、ECS on EC2も良いぞ。
44 © 2026 Japan Digital Design, Inc. 5 宣伝
45 © 2026 Japan Digital Design, Inc. https://fin-jaws.connpass.com/event/388549/ https://fin-jaws.connpass.com/event/388549/ 5/20(水)19:00~21:00
QUICK様オフィス@茅場町
46 © 2026 Japan Digital Design, Inc. OSについて勉強したい方向け https://www.amazon.co.jp/dp/B0GC5QRMVY
Thank you. 47 © 2026 Japan Digital Design, Inc.