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
Atsushi Satou
September 25, 2023
1
920
AWS Signerでコード署名についてまとめてみた
Atsushi Satou
September 25, 2023
Tweet
Share
More Decks by Atsushi Satou
See All by Atsushi Satou
図で理解するAWS Network Firewallのアーキテクチャ
atsuw0
0
69
CLIで構築した方が良いもの一覧.pdf
atsuw0
0
81
HCP Terraformを使ったら AWSやGCPの環境構築が捗った話
atsuw0
0
86
HashicorpCloudについて.pdf
atsuw0
0
10
HCP Terraform について
atsuw0
0
1.6k
HashicorpCloudについて.pdf
atsuw0
0
16
AWS サーバレス設計 Tips集
atsuw0
0
90
AWS re:Invent 2023 ストレージ EFSレプリケーションのフェイルバック機能を試してみた
atsuw0
0
280
AWS re:Invent 2023 個人的に興味深いもの集
atsuw0
0
76
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Music & Morning Musume
bryan
46
6.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
98
18k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
Fireside Chat
paigeccino
34
3.2k
Faster Mobile Websites
deanohume
306
31k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
A designer walks into a library…
pauljervisheath
205
24k
The Pragmatic Product Professional
lauravandoore
32
6.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Transcript
AWS Signerでコード署名についてまとめてみた 佐藤 淳 JAWS-UG朝会 #49 https://jawsug-asa.connpass.com/event/282614/
自己紹介 名前: 佐藤 淳 ( Atsushi Sato ) 会社: アイレット株式会社
クラウドインテグレーション 所属 Qiita: https://qiita.com/atw0_0w 好きなAWSサービス: Systems Manager, Lambda, CDK (主に自動化やIaC周り) 2023 Japan AWS All Certifications Engineers
突然ですが コード署名 やってますか? 私はやったことなかったです。。
Q. コード署名(Code Signing)とは? - 署名後のコードの変更や改ざんなどがされていないことを保証するもの。 - ソフトウェアの品質を担保することができる。 Q. AWSでもコード署名のサービスを提供しているか? -
AWS Signer というマネージドサービスが提供されている。 - Lambda, ECR, IoTデバイスなどでコード署名可能。 - 署名ジョブと署名プロファイル を使用することができる。 コード署名とは? https://docs.aws.amazon.com/ja_jp/signer/latest/developerguide/whatis-services.html
AWS Signerの必要性 AWS Well-Architected Frameworkでもソフトウェアの整合性検証で必要なサービスとして記載 https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/sec_protect_compute_validate_software_integrity.html
・署名プロファイルとは? コード署名を実行する際、このプロファイルを用いること でコード署名をおこなうことができる。 署名プラットフォーム(Lambda、Notation)やコード署名 の有効期限を設定することができる。 AWS Signerの基本 https://docs.aws.amazon.com/ja_jp/signer/latest/developerguide/signing-profiles.html
AWS Signerの基本 ・署名ジョブとは? 未署名のコードに対して署名プロファイルを用いて、署名付きのコードを生成するためのジョブ。 S3バケットを明示的に指定し、署名されたコードをアップロードする。 https://docs.aws.amazon.com/ja_jp/signer/latest/developerguide/signing-jobs-lambda.html
Lambdaでコード署名を使うには? ・コード署名設定(CodeSigningConfiguration)を作成する。 Lambdaで使用する署名プロファイルを定義する。 署名検証ポリシーによってコード署名設定を有効にしたLambda関数上で、署名されていないコードをアップした際のアクション を指定可能。 Enforce … コード署名を強制する (未署名のコードはアップロードできない) Warn
… 強制はしないがCloudWatchに出力 CloudTrail ログにも出力 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-codesigning.html
コード署名〜デプロイを Cloudformationで実装 Lambdaでコード署名実施してみました。
コード署名を含めた Package 〜 Deploy までの仕組み ①Packageコマンドにより未署名のコードをS3 バケットに格納。 ②署名ジョブを実行し、署名プロファイルと署名 前の圧縮ファイルを参照し、 署名されたコードをS3バケットに格納。
③DeployコマンドによりLambda関数を デプロイ。 署名後のコードをLambda関数に アップロード
CloudFormationを用いて署名済みのコードをアップロード 以下は私のブログの内容ですが、、、 CloudFormationでソースのアップロード〜コード署名〜デプロイまでを検証したものを記載して います。(良かったら↓見ていただければ、、🙏) https://qiita.com/atw0_0w/items/80e04e36d40abaacff50
コード署名ではAWS SAMを使う 右は実際に使用した Cfnテンプレート。 実践してみた結果、コード署名されたファイルを Lambaに デプロイするには AWS Serverless Application
Model(SAM) を利用した方が良いです。 SAM CLIコマンドでは、コード署名用のオプショ ン--signing-profiles がサポートされているため、コード署 名後のファイルをLambda関数にアップデートできる > cloudformation packageコマンドでは--signing-profilesのようなオプションがない ため、packageコマンド実行で、どうしても「 CodeUri」が未署名のコードを指定してし まう。。
実行コマンド SAM CLIコマンドにオプション --signing-profiles “「Cfn Resource 論理ID」=署名プロファイル” を指定し、packageすることで署名ジョブが実行され、署名済みのコードを生成される。 deployコマンドを実行してLambdaに署名済みのコードをデプロイする。
動作確認 以下のように表示されればコード署名は成功。
動作確認 試しに未署名のコードをアップロードしてみると、以下のように署名されてないと怒られる。
まとめ
・コード署名の目的はコードの正確性を担保するために必要。 ・AWS SignerによってLambdaをコード署名することができた。 ・AWS SAMを利用すればコードのアップロード →署名ジョブの実行→デプロイまでをワンストップで実施でき る。 ・サーバレス化でLambdaやコンテナ(ECR)を提案する際は、是非コード署名も一緒に提案してみてはいかがで しょう。。 まとめ
ご清聴ありがとうございました JAWS-UG朝会 #49 https://jawsug-asa.connpass.com/event/282614/