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.2k
AWS Signerでコード署名についてまとめてみた
Atsushi Satou
September 25, 2023
Tweet
Share
More Decks by Atsushi Satou
See All by Atsushi Satou
AWS ECSでサービス間通信についておさらい
atsuw0
1
72
図で理解するAWS Network Firewallのアーキテクチャ
atsuw0
0
110
CLIで構築した方が良いもの一覧.pdf
atsuw0
0
130
HCP Terraformを使ったら AWSやGCPの環境構築が捗った話
atsuw0
0
140
HashicorpCloudについて.pdf
atsuw0
0
18
HCP Terraform について
atsuw0
0
1.7k
HashicorpCloudについて.pdf
atsuw0
0
23
AWS サーバレス設計 Tips集
atsuw0
0
110
AWS re:Invent 2023 ストレージ EFSレプリケーションのフェイルバック機能を試してみた
atsuw0
0
350
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Writing Fast Ruby
sferik
628
62k
RailsConf 2023
tenderlove
30
1.1k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
It's Worth the Effort
3n
185
28k
Agile that works and the tools we love
rasmusluckow
329
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
4 Signs Your Business is Dying
shpigford
184
22k
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/