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
950
AWS Signerでコード署名についてまとめてみた
Atsushi Satou
September 25, 2023
Tweet
Share
More Decks by Atsushi Satou
See All by Atsushi Satou
図で理解するAWS Network Firewallのアーキテクチャ
atsuw0
0
74
CLIで構築した方が良いもの一覧.pdf
atsuw0
0
84
HCP Terraformを使ったら AWSやGCPの環境構築が捗った話
atsuw0
0
88
HashicorpCloudについて.pdf
atsuw0
0
10
HCP Terraform について
atsuw0
0
1.6k
HashicorpCloudについて.pdf
atsuw0
0
16
AWS サーバレス設計 Tips集
atsuw0
0
91
AWS re:Invent 2023 ストレージ EFSレプリケーションのフェイルバック機能を試してみた
atsuw0
0
290
AWS re:Invent 2023 個人的に興味深いもの集
atsuw0
0
79
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
182
22k
Building Adaptive Systems
keathley
40
2.4k
Six Lessons from altMBA
skipperchong
27
3.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
29
4.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
How to Ace a Technical Interview
jacobian
276
23k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
What's in a price? How to price your products and services
michaelherold
244
12k
Gamification - CAS2011
davidbonilla
80
5.1k
Being A Developer After 40
akosma
89
590k
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/