Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ECS × AWS Signer を使ったイメージ署名ワークフローを試してみた

ECS × AWS Signer を使ったイメージ署名ワークフローを試してみた

k-ozawa

May 28, 2024
Tweet

More Decks by k-ozawa

Other Decks in Technology

Transcript

  1. 1 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy デジタル署名/コンテナイメージ署名とは

    01 AWS Signerとは 02 イメージ署名・検証プロセスを組み込んだ ワークフローの⽅式例 03 運⽤上の考慮点 04 まとめ 05
  2. 3 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy nクラウドアーキテクト

    nAWS、コンテナを中⼼とした、 Webシステム設計/開発/運⽤/保守 nex.: ECS, EKS, Codeシリーズ 尾澤 公亮(KOSUKE OZAWA)
  3. 5 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy そもそも。。。

    n デジタル署名とは? デジタル署名とは どうぞ You Me
  4. 6 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 送信者が意図するファイルが送られているかどうか

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me
  5. 7 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ファイルへの署名

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 秘密鍵 ハッシュ
  6. 8 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 秘密鍵を使って署名(ハッシュの作成)

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 署名
  7. 9 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 本当にYouのファイルかどうか検証する

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ
  8. 10 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 公開鍵を使ってファイルからハッシュを作成し、署名と突合

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ 検証
  9. 11 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 公開鍵を使ってファイルからハッシュを作成し、署名と突合

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドポテト)と⼀緒や 検証
  10. 12 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 署名は「誰が作ったか」を証明するもの

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドポテト)と⼀緒や 署名 検証
  11. 13 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 署名は「誰が作ったか」を証明するもの

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドポテト)と⼀緒や 署名 検証 署名と検証によって完全性を担保
  12. 14 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ちなみに。。。

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ
  13. 15 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 改ざんされると。。。

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ 改ざん
  14. 16 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ハッシュが異なる

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドビーフ)とちゃうやんけ 改ざん
  15. 17 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ハッシュが異なる

    n デジタル署名とは? デジタル署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドビーフ)とちゃうやんけ 改ざん ハッシュが違う =想定するファイルではない (※改ざんされている)
  16. 18 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージ署名とは

    n コンテナイメージ署名とは? コンテナイメージ署名とは どうぞ これほんまにYouが書いたん? You Me 署名⾒てや 秘密鍵 ハッシュ 公開鍵 ハッシュ Meのハッシュ(ドポテト)と⼀緒や 署名 検証
  17. 19 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージに置き換わっただけ

    コンテナイメージ署名とは You Me 秘密鍵 ハッシュ 公開鍵 ハッシュ 署名 検証 コンテナ イメージ コンテナ イメージ コンテナ イメージ
  18. 20 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージ署名を実現するツール

    nCosign l Sigstoreプロジェクトのツール l AWSだとKMSと連携して署名・検証が可能 l Finchに統合されている署名検証ツール nNotary l CNCFホストのプロジェクト l AWS Signer プラグインを⽤いてECR統合が可能 コンテナイメージ署名とは
  19. 21 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージ署名を実現するツール

    nCosign l Sigstoreプロジェクトのツール l AWSだとKMSと連携して署名・検証が可能 l Finchに統合されている署名検証ツール nNotary l CNCFホストのプロジェクト l AWS Signer プラグインを⽤いてECR統合が可能 コンテナイメージ署名とは タグベース OCI準拠
  20. 22 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy AWS

    SignerではNotaryを使う nCosign l Sigstoreプロジェクトのツール l AWSだとKMSと連携して署名・検証が可能 l Finchに統合されている署名検証ツール nNotary l CNCFホストのプロジェクト l AWS Signer プラグインを⽤いてECR統合が可能 コンテナイメージ署名とは タグベース OCI準拠
  21. 23 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージにおける署名の実体

    コンテナイメージ署名とは ORAS「Understanding OCI artifacts」 https://oras.land/docs/concepts/artifact/
  22. 24 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージ署名のユースケース

    コンテナイメージ署名とは Image Amazon ECR Amazon ECS 開発 テスト
  23. 26 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy テストを通過したイメージだけを環境にデプロイしたい

    コンテナイメージ署名とは Image Amazon ECR Amazon ECS 開発 テスト Image テストを通過したイメージに対して署名 ↓ 検証できたイメージのみデプロイ (例:CodeBuild, Lambda等によるフック処理)
  24. 28 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy フルマネージドなコード署名サービス

    n署名プロファイルを作成することで、 これによる署名・検証が可能 nNotary統合による コンテナイメージ署名が可能 AWS Signerとは AWS Signer
  25. 32 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy notationコマンドを使う

    AWS Signerとは AWS Signer Client notation sign/verify (notation = Notary CLI) Image
  26. 33 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy Signerプラグイン経由で署名プロファイルを呼び出す

    AWS Signerとは AWS Signer Client notation sign/verify (notation = Notary CLI) 署名プロファイルの呼び出し Image
  27. 35 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ⽅式図

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit AWS CodeBuild Amazon ECR AWS CodeBuild Amazon ECS Source Pull Image Push Image Pull AWS CodeCommit Source Pull AWS Signer Im age Signing Image Verify
  28. 36 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ⽅式図

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit AWS CodeBuild Amazon ECR AWS CodeBuild Amazon ECS Source Pull Image Push Image Pull AWS CodeCommit Source Pull 署名 検証 AWS Signer Im age Signing Image Verify
  29. 37 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 署名プロセス

    nAWS CodeCommit l Dockerfile l 各種ソースファイル nAWS CodeBuild l Notaryクライアントのセットアップ l コンテナイメージへの署名(notation sign) l Amazon ECRにイメージをPush イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit AWS CodeBuild Source Pull Image Push Amazon ECR AWS Signer Im age Signing
  30. 38 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 署名プロセス

    nAWS CodeCommit l Dockerfile l 各種ソースファイル nAWS CodeBuild l Notaryクライアントのセットアップ l コンテナイメージへの署名(notation sign) l Amazon ECRにイメージをPush イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit AWS CodeBuild Source Pull Image Push Amazon ECR AWS Signer Im age Signing
  31. 39 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy buildspecの中⾝

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例
  32. 40 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy Notaryクライアントのセットアップ

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 installフェーズで、AWSが公開するインストーラパッケージを取得 https://docs.aws.amazon.com/signer/latest/developerguide/image- signing-prerequisites.html
  33. 41 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナイメージへの署名(notation

    sign) イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 buildフェーズでコンテナイメージに署名 イメージダイジェストの取得→notation signの実⾏
  34. 42 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 検証プロセス

    nAWS CodeCommit l trust_policy.json ※後述 nAWS CodeBuild l Notaryクライアントのセットアップ l Amazon ECRからイメージをPull l イメージ署名の検証(notation verify) l ECSデプロイ 実際は下記で制御する想定 ・AWS CodePipeline ・AWS CodeDeploy イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeBuild Amazon ECS Image Pull AWS CodeCommit Amazon ECR AWS Signer Image Verify
  35. 43 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 検証プロセス

    nAWS CodeCommit l trust_policy.json ※後述 nAWS CodeBuild l Notaryクライアントのセットアップ l Amazon ECRからイメージをPull l イメージ署名の検証(notation verify) l ECSデプロイ 実際は下記で制御する想定 ・AWS CodePipeline ・AWS CodeDeploy イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeBuild Amazon ECS Image Pull AWS CodeCommit Amazon ECR AWS Signer Image Verify
  36. 44 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy buildspecの中⾝

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例
  37. 45 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy Notaryクライアントのセットアップ

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 上の⽅はさっきと⼀緒
  38. 46 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy Notaryクライアントのセットアップ

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例
  39. 47 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy trust

    policyのimport イメージ署名・検証プロセスを組み込んだワークフローの⽅式例
  40. 48 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy trust

    policyのimport イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 署名検証する際にNotaryクライアント側で truststore の設定が必要 フォーマットは下記参照 https://docs.aws.amazon.com/ja_jp/AmazonE CR/latest/userguide/image-signing.html
  41. 49 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy イメージ署名の検証(notation

    verify) イメージ署名・検証プロセスを組み込んだワークフローの⽅式例
  42. 50 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy イメージ署名の検証(notation

    verify) イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 イメージダイジェストをもとに署名検証する
  43. 51 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 作ってみて思ったこと

    イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit AWS CodeBuild Amazon ECR AWS CodeBuild Amazon ECS Source Pull Image Push Image Pull AWS CodeCommit Source Pull AWS Signer Im age Signing Image Verify
  44. 52 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 作ってみて思ったこと

    その① Lambdaでいけたのでは? イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 AWS CodeCommit Amazon ECR Amazon ECS Image Push Image Pull AWS CodeCommit Source Pull AWS Lambda AWS Lambda Source Pull コンテナイメージ化すればいけそう AWS Signer Im age Signing Image Verify
  45. 53 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 作ってみて思ったこと

    その① Lambdaでいけたのでは?→できてそうだった イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 n AWSの中の⼈のブログ l https://containersonaws.com/pattern/ecs-fargate-container-image-signing- and-verification
  46. 54 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 作ってみて思ったこと

    その② Notary環境構築の⼿間 イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 n notationを実⾏できる環境を作らないといけない l truststoreの設定とか
  47. 55 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 作ってみて思ったこと

    その② Notary環境構築の⼿間 イメージ署名・検証プロセスを組み込んだワークフローの⽅式例 n notationを実⾏できる環境を作らないといけない l truststoreの設定とか ECR/ECSの機能に統合されれば、導⼊コストは下がりそう
  48. 57 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy AWS

    Signerへの監査は必要 nつよつよIAM権限で証明書プロファイルも作成してワークフローも更新できると意味ない 運⽤上の考慮点 AWS Signer AWS CodeBuild AWS Lambda
  49. 58 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy BYOLな署名鍵には対応していない

    nAWS Signerによるフルマネージド管理 nサクッと署名・検証プロセスを導⼊するには良い選択肢 運⽤上の考慮点
  50. 59 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy あくまで「誰が作ったか」を確認する処理

    n検証プロセスも含めて実装しないと効⼒を持たない n現状は整備するのにコストがかかる 運⽤上の考慮点 AWS CodeCommit AWS CodeBuild Amazon ECR AWS CodeBuild Amazon ECS Source Pull Image Push Image Pull AWS CodeCommit Source Pull AWS Signer Im age Signing Image Verify
  51. 60 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy あくまで「誰が作ったか」を確認する処理

    n検証プロセスも含めて実装しないと効⼒を持たない n現状は整備するのにコストがかかる 運⽤上の考慮点 AWS CodeCommit AWS CodeBuild Amazon ECR AWS CodeBuild Amazon ECS Source Pull Image Push Image Pull AWS CodeCommit Source Pull これでワンセット AWS Signer Im age Signing Image Verify
  52. 62 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy そもそもなぜイメージ署名なのか

    n2021 年 5 ⽉、⽶国⼤統領府は国家のサイバーセキュリティ向上に関する⼤統領令を発表し ました。この命令の重点分野の 1 つにソフトウェアサプライチェーンのセキュリティ強化があり、サ プライチェーンのリスクへの対処に関する要件として、以下が挙げられています。 l 強⼒なアクセス制御による開発環境の保護 l ⾃動コードスキャンによるソフトウェアの脆弱性の発⾒および修正 l コードの完全性の担保による信頼できるサプライチェーンの維持 l ソフトウェアコンポーネントの来歴 (例 : 作成元) に関する正確かつ最新のデータの保持 まとめ 下記より抜粋 ・Amazon Web Services ブログ 「コンテナにおけるデジタル署名」 https://aws.amazon.com/jp/blogs/news/cryptographic-signing-for-containers/
  53. 63 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy そもそもなぜイメージ署名なのか

    n2021 年 5 ⽉、⽶国⼤統領府は国家のサイバーセキュリティ向上に関する⼤統領令を発表し ました。この命令の重点分野の 1 つにソフトウェアサプライチェーンのセキュリティ強化があり、サ プライチェーンのリスクへの対処に関する要件として、以下が挙げられています。 l 強⼒なアクセス制御による開発環境の保護 l ⾃動コードスキャンによるソフトウェアの脆弱性の発⾒および修正 l コードの完全性の担保による信頼できるサプライチェーンの維持 l ソフトウェアコンポーネントの来歴 (例 : 作成元) に関する正確かつ最新のデータの保持 まとめ 下記より抜粋 ・Amazon Web Services ブログ 「コンテナにおけるデジタル署名」 https://aws.amazon.com/jp/blogs/news/cryptographic-signing-for-containers/
  54. 64 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy よくあるコンテナワークロードのセキュリティ

    まとめ Amazon ECR Amazon ECS Client 脆弱性確認 静的解析 etc… APM トレース ホストセキュリティ etc…
  55. 65 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy デリバリーの部分をどうするか

    まとめ Amazon ECR Amazon ECS Client 脆弱性確認 静的解析 etc… APM トレース ホストセキュリティ etc… ?
  56. 66 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy デリバリーの部分をどうするか

    まとめ Amazon ECR Amazon ECS Client 脆弱性確認 静的解析 etc… APM トレース ホストセキュリティ etc… ? サプライチェーンのセキュリティ強化 ≒コンテナイメージの完全性担保
  57. 67 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy AWS

    Signerを使うと署名・検証プロセスを簡素化できる n署名プロファイルを作れば、API操作で署名・検証ができる nNotary統合を使えばコンテナイメージへの署名も可能 まとめ AWS Signer
  58. 68 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 署名・検証プロセスの組み込みは現状コストがかかる

    nユーザ側で組み込みが必要 l notation実⾏環境の構築が必要 まとめ AWS CodeBuild AWS Lambda OR
  59. 69 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ECR、ECSとの統合が実現されるとより導⼊障壁は下がる

    nサービス側で完結する処理になると、より簡単に導⼊することができそう l 今後のアップデートに期待 まとめ
  60. 70 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy n

    Sigstore l https://www.sigstore.dev/ n Signing container images: Comparing Sigstore, Notary, and Docker Content Trust l https://snyk.io/jp/blog/signing-container-images/ n Content trust in Docker l https://docs.docker.com/engine/security/trust/ n opencontainers/image-spec l https://github.com/opencontainers/image-spec n Container image signing and verification using AWS Signer for Amazon ECS and AWS Fargate l https://containersonaws.com/pattern/ecs-fargate-container-image-signing-and-verification n Amazon Web Services ブログ 「コンテナにおけるデジタル署名」 l https://aws.amazon.com/jp/blogs/news/cryptographic-signing-for-containers/ n Understanding OCI artifacts l https://oras.land/docs/concepts/artifact/ 参考⽂献