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 Signerを考えてみよう!! ~コード署名のその先へ~
Search
モブエンジニア
April 13, 2025
Technology
3
230
開発視点でAWS Signerを考えてみよう!! ~コード署名のその先へ~
2025.04.14に登壇したJAWS-UG朝会 #68で登壇した資料です。
connpass:
https://jawsug-asa.connpass.com/event/338579/
モブエンジニア
April 13, 2025
Tweet
Share
More Decks by モブエンジニア
See All by モブエンジニア
改めてAWS WAFを振り返る~業務で使うためのポイント~
masakiokuda
1
200
登壇未経験者のための登壇戦略~LTは設計が9割!!!~
masakiokuda
3
520
宇宙パトロール ルル子から考える LT設計のコツ
masakiokuda
2
130
(キラキラ)人事教育担当のつらみ~教育担当として知っておくポイント~
masakiokuda
0
110
バックオフィス組織にも「チームトポロジー」の考えが使えるかもしれない!!
masakiokuda
0
110
VPC Reachability AnalyzerAnalyzer~実務での使いどころ
masakiokuda
1
420
爆速成長するエンジニアの秘訣 ~最適なアウトプット方法~
masakiokuda
0
82
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
180
Education-JAWS #3 ~教育現場に、AWSのチカラを~
masakiokuda
0
170
Other Decks in Technology
See All in Technology
AWS認定を取る中で感じたこと
siromi
1
140
ビギナーであり続ける/beginning
ikuodanaka
3
600
ネットワーク保護はどう変わるのか?re:Inforce 2025最新アップデート解説
tokushun
0
170
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
250
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
120
さくらのIaaS基盤のモニタリングとOpenTelemetry/OSC Hokkaido 2025
fujiwara3
2
290
Model Mondays S2E03: SLMs & Reasoning
nitya
0
320
CI/CD/IaC 久々に0から環境を作ったらこうなりました
kaz29
1
210
生まれ変わった AWS Security Hub (Preview) を紹介 #reInforce_osaka / reInforce New Security Hub
masahirokawahara
0
390
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
200
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
530
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
KATA
mclloyd
30
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
940
Side Projects
sachag
455
42k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
17
950
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Transcript
開発視点でAWS Signerを 考えてみよう!! ~コード署名のその先へ~ 2025.04.14(月) JAWS-UG 朝会 モブエンジニア(@mob_engineer) JAWS-UG朝会 #68
LTのねらい・対象者 • LTのねらい • コード署名の重要性について「ざっくり」理解してもらう • AWS Signerを通じて実現できることを「ざっくり」理解してもらう • 開発視点でコード署名の「うれしい」ポイントをざっくり理解してもらう
• 対象者 • コード署名についてこれからキャッチアップしていこうと思っている方 • AWS Signerについてこれからキャッチアップしていこうと思っている方 • 開発視点でコード署名のうれしいポイントを知りたいと思っている方 2 JAWS-UG朝会 #68
お話しすること・しないこと • お話しすること • コード署名に関する概要 • AWS Signerの概要・Lambdaでの検証 • 開発視点でのうれしいポイント
• お話ししないこと • コード署名で用いられている暗号化技術 • ECSでの検証、実務での活用事例 • その他関連すること 3
自己紹介 • ペンネーム:モブエンジニア • 所属企業:ソフトハウス企業 • ロール:開発よりインフラエンジニア • AWS歴:1年半(現在は個人で触っている) •
好きなサービス:Amazon Workspaces • JAWS-UG 彩の国埼玉支部 運営 • 保有資格: 4 JAWS-UG朝会 #68 プレーリーカード
お品書き • 今回登壇したモチベーション • コード署名とは何か • AWS Signerについて • AWS
Signerを試してみた • 開発者視点でAWS Signerを考えてみよう 5 JAWS-UG朝会 #68
今回登壇したモチベーション 6 JAWS-UG朝会 #68
AWSを用いた開発を行うなかで・・・ •Lambdaなどでコードを執筆する中で、「このコー ドって安全なのだろうか?」といった疑問を持ちはじ めました。 7 JAWS-UG朝会 #68
安全性を考えてみた • クライアント側・サーバ側については秘密鍵などで暗号化 されているから安全そうだ。 • サービス間通信に関してもVPCを通じて保護されている から安全だろう。 • ビジネスの根幹である「ソースコードは改ざんされないよう な仕組みはあるのか?」が気になりました。
8 JAWS-UG朝会 #68
探す中で見つけた一つの解 • ソースコードの改ざん防止として「AWS Signer」という サービスを見つけたました。 • そのうえで、「このサービスは開発視点で大きなインパクト があるかもしれない」と思い、セッションでお話ししようと思 いました。 9
JAWS-UG朝会 #68
コード署名とは何か 10 JAWS-UG朝会 #68
コード署名(コードサイニング証明書)とは •コードサイニング証明書は、ソフトウェアにデジタル署 名を行う電子署名用の証明書です。 •ソフトウェアの配布元を認証し、「なりすましや内容 の改ざんなどがされていないこと」を保証し、ユーザの 手元に責任をもってソフトウェアを届けることができま す。 https://jp.globalsign.com/codesigning/knowledge/ 11 JAWS-UG朝会
#68
コード署名 イメージ 12 JAWS-UG朝会 #68 https://www.digicert.com/jp/faq/code-signing-trust/what-is-code-signing
(例)配送倉庫から自宅まで荷物を配送する 配送工場 自宅 13 JAWS-UG朝会 #68
(例)配送倉庫から自宅まで荷物を配送する 配送工場 自宅 14 JAWS-UG朝会 #68
悪意のある第三者(泥棒)にすり替えられたら 配送工場 自宅 15 JAWS-UG朝会 #68
悪意のある第三者(泥棒)にすり替えられたら 配送工場 自宅 16 JAWS-UG朝会 #68
悪意のある第三者(泥棒)にすり替えられたら 配送工場 自宅 17 JAWS-UG朝会 #68
盾となるような存在(改ざん検知)できれば 配送工場 自宅 18 JAWS-UG朝会 #68
盾となるような存在(改ざん検知)できれば 配送工場 自宅 19 JAWS-UG朝会 #68
コード署名のメリット • 大きく3つあると考えられます。 •なりすまし防止 •改ざんソフトウェアの被害防止 •正規の配布元の証明 20 JAWS-UG朝会 #68
コード署名をざっくり言うと・・ •ソースコードを守るゴールキーパー のような存在 21 JAWS-UG朝会 #68
AWS Signerについて 22 JAWS-UG朝会 #68
AWS Signer(サイナー)とは • 開発者ガイドには次のように示されていました。 https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html 23 JAWS-UG朝会 #68
利用可能なリージョン • 米国 (バージニア北部) • 米国 (オハイオ) • 米国 (北カリフォルニア)
• 米国 (オレゴン) • アフリカ (ケープタウン) • アジアパシフィック (香港) • アジアパシフィック (ムンバイ) • アジアパシフィック (ソウル) • アジアパシフィック (シンガポール) • アジアパシフィック (シドニー) • アジアパシフィック (東京) • カナダ (中部) • 欧州 (フランクフルト) • 欧州 (アイルランド) • 欧州 (ロンドン) • 欧州 (ミラノ) • 欧州 (パリ) • 欧州 (ストックホルム) • 中東 (バーレーン) • 南米 (サンパウロ) 24 JAWS-UG朝会 #68
AWS Signerを利用できるサービス 25 JAWS-UG朝会 #68
ちなみに、利用料金は • Signer自体に利用料金はかかりません!! JAWS-UG朝会 #68
(余談)AWS Signerのアップデート情報 JAWS-UG朝会 #68
AWS Signerを試してみた JAWS-UG朝会 #68
とりあえずAWS Signerを触ってみた •多くの方が触るLambdaでAWS Signerの挙動 について確認しました。 https://aws.amazon.com/jp/blogs/aws/new-code-signing-a-trust-and-integrity-control-for-aws-lambda/ 29 JAWS-UG朝会 #68
構成イメージ •構成イメージとして次のようなイメージです。 30 JAWS-UG朝会 #68
AWS Signer署名 事前準備 •バージョニング設定されたS3でないと機能しないと 示されています。 31 JAWS-UG朝会 #68
AWS Signer署名 事前準備 •バージョニング設定を有効にしたS3を作成しました。 32 JAWS-UG朝会 #68
AWS Signer署名 署名設定 •AWS Signerサービス画面へ署名設定ができます。 33 JAWS-UG朝会 #68
AWS Signer署名 署名設定 •プラットフォーム、名前、期間とタグを選択するシンプ ルな設定で実装できます。 34 JAWS-UG朝会 #68
AWS Signer署名 Lambda設定 •作成した関数ごとにコード署名の設定が必要です。 (少しめんどくさい) 35 JAWS-UG朝会 #68
AWS Signer署名 Lambda設定 •作成したLambda関数をS3バケットにアップロード しておきましょう。 36 JAWS-UG朝会 #68
AWS Signer署名 ジョブ設定 •AWS Signer>ジョブ設定からジョブ署名設定を 行っておきましょう。 37 JAWS-UG朝会 #68
AWS Signer署名 設定確認 •送信先S3に署名済みLambda関数が入っていま した。 38 JAWS-UG朝会 #68
AWS Signer署名 設定確認 •AWS Signer側でも署名されていることが確認で きました。 39 JAWS-UG朝会 #68
開発視点でAWS Signerを 考えてみよう 40 JAWS-UG朝会 #68
開発視点でよいところ •コード改ざんに対して対策を講じることができる •無料で利用できるため、サードパーティのサービスを 利用する必要がない •ジョブ単位で管理できるため、コード署名を Lambdaごとに管理できる 41 JAWS-UG朝会 #68
留意しなくてはいけないところ •リージョンをまたいだコード署名は行えない(≒リー ジョン単位で設定が必要) •手数がそこそこ多いため、CDKなどを用いて運用自 動化する必要がある •マネージドサービスのため署名方法を自分で選択で きない(≒オリジナル署名ができない) •GitHubなどからコード署名ができない? 42 JAWS-UG朝会
#68
まとめ •コード署名を行うことで「コード改ざん」などのリスクに 対処することができる •AWS Signerを利用すればLambdaで設定して いるコードを保護することができる •手動対応だと手数が多いため、CDK・Step Functionなどのツールを利用する必要がある •多くのプロダクトで利用できる可能性が・・・ 43
JAWS-UG朝会 #68
参考サイト • https://speakerdeck.com/atsuw0/aws- signertekotoshu-ming-nituitematometemita • https://speakerdeck.com/ozawa/ecs-x-aws- signer-woshi-tutaimesishu-ming-wakuhurowoshi- sitemita • https://qiita.com/atw0_0w/items/80e04e36d40a
baacff50 • https://dev.classmethod.jp/articles/lambda- support-verify-code-sign/ 44 JAWS-UG朝会 #68
宣伝させてください!!! • 2025/04/17(木)19:00にJAWS-UG 彩の国 埼玉支部キックオフが開催します!! 45 JAWS-UG朝会 #68
宣伝させてください!!! • 彩の国埼玉支部 Xアカウントも運用しているのでフォ ローをお願いいたします!! 46 JAWS-UG朝会 #68
47 JAWS-UG朝会 #68