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
1.4k
AWS Signerでコード署名についてまとめてみた
Atsushi Satou
September 25, 2023
Tweet
Share
More Decks by Atsushi Satou
See All by Atsushi Satou
AWS ECSでサービス間通信についておさらい
atsuw0
1
110
図で理解するAWS Network Firewallのアーキテクチャ
atsuw0
0
330
CLIで構築した方が良いもの一覧.pdf
atsuw0
0
160
HCP Terraformを使ったら AWSやGCPの環境構築が捗った話
atsuw0
0
210
HashicorpCloudについて.pdf
atsuw0
0
24
HCP Terraform について
atsuw0
0
1.8k
HashicorpCloudについて.pdf
atsuw0
0
31
AWS サーバレス設計 Tips集
atsuw0
0
110
AWS re:Invent 2023 ストレージ EFSレプリケーションのフェイルバック機能を試してみた
atsuw0
0
400
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Speed Design
sergeychernyshev
33
1.5k
Tell your own story through comics
letsgokoyo
1
810
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
The SEO identity crisis: Don't let AI make you average
varn
0
330
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
67
How to build a perfect <img>
jonoalderson
1
4.9k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
400
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
My Coaching Mixtape
mlcsv
0
50
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/