第1章 Red Hat Trusted Application Pipeline の Enterprise Contract


ソフトウェアサプライチェーンが複雑になるほど、ソフトウェアアーティファクトの整合性とソースコードの信頼性を保証するために、信頼性の高いチェックとベストプラクティスを採用することが重要になります。アーティファクトとは、たとえばイメージコンテナーです。このような背景から、Red Hat Trusted Application Pipeline のビルドおよびデプロイエクスペリエンスに、Red Hat Enterprise Contract が組み込まれました。

Enterprise Contract は、コンテナーイメージのビルドとテストに関するポリシーを定義および適用し、ソフトウェアサプライチェーンのセキュリティーを維持するためのポリシー駆動型ワークフローツールです。Supply-chain Levels for Software Artifacts (SLSA) の来歴アテステーションを作成するビルドシステム (Tekton Chains を使用した Tekton や SLSA GitHub Generator を使用した GitHub Actions など) では、署名をチェックし、アテステーションの内容が実際に期待どおりに一致することを確認することは、ソフトウェアサプライチェーンのインテグリティーを検証および維持する上で非常に重要です。セキュアな CI/CD ワークフローを実現するには、問題を早期に検出するためのアーティファクト検証を組み込む必要があります。Enterprise Contract の役割は、コンテナーイメージが既知の信頼できるビルドシステムによって署名およびアテストされていることを検証することです。

署名およびアテストされたコンテナーイメージを検証するための一般的な手順は次のとおりです。

  1. Red Hat Trusted Application Pipeline を使用してコンテナーイメージを作成またはコピーします。
  2. Cosign を使用して署名鍵を生成します。
  3. Cosign を使用してコンテナーイメージに署名します。
  4. Cosign を使用してイメージをアテストします。
  5. Enterprise Contract CLI を使用して、署名およびアテストしたコンテナーイメージを検証します。

しかし、コンテナーイメージのようなソフトウェアアーティファクトに 署名 して その来歴をアテスト するとは、どういうことでしょうか。ここでは、その理由と方法を説明します。

コンテナーイメージなどの署名済みのソフトウェアアーティファクトは、未署名のアーティファクトよりも、いくつかの攻撃ベクトルのリスクが大幅に低くなります。コンテナーイメージが署名されると、さまざまな暗号化技術によってイメージが特定のエンティティーまたは組織にバインドされます。その結果、イメージの信頼性を検証するデジタル署名が作成されるため、イメージの作成者 (エンティティーまたは組織) まで追跡できるようになります。また、署名後にイメージが変更または改ざんされていないことも検証できます。ソフトウェアサプライチェーンの脅威の詳細は、Supply chain threats を参照してください。

Enterprise Contract は、コンテナーイメージを検証するためのリソースライブラリーとして、業界標準の Sigstore Cosign を使用します。Red Hat Trusted Artifact Signer (Red Hat によってサポートされるバージョンの Sigstore フレームワーク) を使用すると、Sigstore サービスの独自のオンプレミスインスタンスを使用して、Cosign CLI でコンテナーイメージに署名およびアテストできます。RHTAS の詳細は、Red Hat Trusted Artifact Signer を参照してください。

ソフトウェアアーティファクトの アテステーション は、来歴がなければ実現できません。来歴 とは、コンテナーイメージなどのソフトウェアアーティファクトに関する検証可能な情報であり、そのアーティファクトがどこで、いつ、どのように作成されたかを説明したものです。アテステーション自体は、メタデータ形式の認証済みステートメントであり、アーティファクトが元のままであり信頼できることを証明するものです。Enterprise Contract は、そのようなアテステーションを使用して、ビルドが改ざんされていないことを暗号的に検証し、SLSA 要件などのポリシーセットに照らしてビルドをチェックします。SLSA の詳細は、About SLSA を参照してください。

ユーザーが RHTAP の開発名前空間からステージ名前空間に、またはステージ名前空間から実稼働名前空間にコードをプッシュすると、Enterprise Contract は検証チェックを自動的に実行し、コンテナーイメージが既知の信頼できるビルドシステムによって署名およびアテストされていることを確認します。イメージが Enterprise Contract チェックに合格すると、コードの変更をマージして、ある環境から次の環境へのプロモートを完了できます。アプリケーションを別の名前空間にデプロイする方法の詳細は、Trusted Application Pipeline Software Template を参照してください。RHTAP がデプロイメントマニフェストを保存する場所の詳細は、RHTAP GitOps リポジトリー とその YAML ファイルを参照してください。

関連情報

コンテナーイメージの署名とアテステーションの詳細は、コンテナーイメージの署名 を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.