次の方法で共有


デプロイ ステージの概要

デプロイ ステージは、コンテナー セキュア サプライ チェーン (CSSC) フレームワークの第 4 段階です。 企業は、コンテナー イメージのセキュリティとコンプライアンスを検証することなく、コンテナー化されたワークロードを実行するためにコンテナー イメージをホスティング環境にデプロイする場合があります。 これにより、潜在的なセキュリティ リスクが高まるか、ホスティング環境で脆弱または悪意のあるコードが実行される可能性があります。 前のステージで生成されたコンテナー イメージのメタデータと構成証明は、デプロイ時に検証する必要があります。 これにより、展開が企業全体のセキュリティおよびコンプライアンス ポリシーに準拠していることが保証されます。

Microsoft の Containers Secure Supply Chain (CSSC) フレームワークは、準拠した方法でイメージをデプロイする必要性を特定します。 CSSC フレームワークでは、イメージ メタデータを検証し、コンプライアンス ポリシーを実装することで、イメージを安全にデプロイするのに役立つ一連の標準的なプラクティスとツールが推奨されています。 この記事では、CSSC フレームワークのデプロイ ステージで使用できる目的、標準のプラクティス、およびツールについて説明します。

背景

企業は、コンテナー イメージが脆弱性から解放され、使用が承認されていることを確認することなく、外部レジストリまたは内部レジストリからコンテナー イメージを直接デプロイできます。 信頼されていない非準拠のコンテナー イメージをホスティング環境にデプロイすると、潜在的なセキュリティ リスクが増加したり、ホスティング環境でマルウェアや脆弱なコードが実行されたりします。

CSSC フレームワークのプラクティスは、デプロイに対応したコンテナー イメージが信頼されたレジストリから取得され、脆弱性やマルウェアがないことを確認し、信頼性と整合性を確保するのに役立ちます。 多くの企業では、Kubernetes にデプロイする前にコンテナー イメージの SBOM と署名を検証するポリシーを実装し、コンテナー イメージを継続的にスキャンしてレポートのスキャンを検証しています。

デプロイ ステージでは、コンテナー イメージとデプロイ環境のセキュリティ保護に重点を置きます。 デプロイでは、コンテナー イメージの署名、ライフサイクル メタデータ、脆弱性とマルウェアレポート、SBOM、および検証目的でビルド ステージから生成された実証データを使用して、コンテナー イメージがホスティング環境にデプロイされる前に信頼され、準拠していることを確認します。

コンテナー イメージをデプロイするためのワークフロー

デプロイ ステージには、世界中の数百または数千のクラスターにコンテナー イメージをデプロイするためのワークフローが用意されています。 デプロイは、動的かつオンデマンドで実行できます。 コンテナー イメージがビルド、検証、署名されると、CSSC フレームワークによってコンテナー イメージが昇格され、関連する成果物がデプロイ ステージのレジストリ間で配布できるようになります。

  1. イメージ整合性ポリシーを実装して、デプロイ前にイメージ署名を検証し、信頼された発行元から改ざんされていないことを確認します。
  2. 脆弱性スキャン ポリシーを実装して、コンテナー イメージの脆弱性をスキャンし、重大度レベル (CRITICAL、HIGH、MEDIUM、LOW) に基づいてしきい値を設定し、準拠しているイメージのみをデプロイします。
  3. ライセンス コンプライアンス ポリシーを実装して、望ましくないライセンスを含むコンテナー イメージのデプロイに制限を適用します。
  4. デプロイ前にコンテナー イメージが信頼できるソースとリポジトリから取得されていることを確認する、Provenance ポリシーを実装します。
  5. イメージ ライフサイクル ポリシーを実装して、デプロイされたイメージがサポートと有効な範囲内にあることを確認し、サポート終了イメージとサポート終了イメージのデプロイを制限します。
  6. 改ざんを防ぎ、その整合性をセキュリティで保護するために、各イメージの脆弱性レポートとマルウェア レポートを生成して署名します。
  7. デプロイ時の可視性とコンプライアンス検証のために、署名されたレポートをコンテナー イメージにアタッチします。
  8. SBOM、イメージ署名、脆弱性レポート、ライフサイクル メタデータ、実証データなどのコンテナー イメージ メタデータを確認します。
  9. アドミッション制御メカニズムを実装して、展開ポリシーを適用し、準拠していないコンテナー イメージのデプロイを制限します。
  10. CI/CD パイプラインを使用してデプロイ プロセスを自動化し、イメージ検証と検証チェックを統合します。
  11. デプロイされたイメージを継続的に監視し、新しい脆弱性、コンプライアンスの逸脱を検出するためのコンプライアンスを適用し、必要に応じて修復アクションを実行します。
  12. デプロイ アクティビティをログに記録し、定期的な監査を実施して、セキュリティとコンプライアンスの標準への準拠を確保します。
  13. セキュリティ インシデントやコンプライアンスの逸脱に対処するために、自動または手動の修復手順を実装します。
  14. 将来の参照と監査の目的で、実行された手順、使用されるツール、実装されているセキュリティ対策など、デプロイ プロセスを文書化します。

Microsoft では、デプロイ時にイメージ メタデータを検証し、信頼されたレジストリからのコンテナー イメージのみをデプロイすることをお勧めします。 クラウド ネイティブ ワークロードをセキュリティで保護するには、次のプラクティスをお勧めします。

  • メタデータを検証し、準拠していないコンテナー イメージを制限する展開ポリシーを適用します。 これにより、未承認のイメージがデプロイされなくなります。
  • イメージをデプロイする前に、イメージ署名を検証する展開ポリシーを適用します。 これにより、デプロイに使用されるイメージが信頼できる発行元からのものであり、改ざんされていないことが保証されます。
  • 脆弱性スコアに基づいて展開ポリシーを適用します。 これにより、特定のしきい値 (CRITICAL、HIGH、MEDIUM、LOW) を超える脆弱性を持つイメージをデプロイできなくなります。
  • サポート終了イメージがデプロイで使用されないように、ライフサイクル情報を検証する展開ポリシーを適用します。
  • デプロイ環境とプラットフォームにセキュリティで保護されたネットワーク接続があることを確認します。
  • デプロイ プラットフォームへの承認されていないアクセスを拒否するには、厳密な認証、アクセス制御、およびファイルのアクセス許可が必要です。 これにより、潜在的な資格情報の漏洩や未承認の変更が回避されます。
  • CI/CD パイプラインで検証プロセスを自動化します。

デプロイ ステージのセキュリティ目標

イメージのデプロイに明確に定義されたワークフローを使用すると、企業はセキュリティを強化し、コンテナーのサプライ チェーンの攻撃対象領域を減らすことができます。 CSSC フレームワークのデプロイ ステージは、次のセキュリティ目標を満たすことを目的としています。

信頼されたソースと準拠しているソースからイメージをデプロイする

コンテナー イメージが信頼できるソースからのものであり、改ざんされていないことを確認するには、デプロイ ステージ中にセキュリティ ポリシーを実装する必要があります。 整合性と信頼性は、デプロイ前にコンテナー イメージの署名を確認することで検証できます。

アドミッション コントロール のセキュリティ ポリシーを実装する

コンテナー イメージが準拠していることを確認するには、デプロイ ステージ中にセキュリティ ポリシーを実装する必要があります。 これは、脆弱性とマルウェアのレポート、イメージ署名、SBOM、イメージ ライフサイクル メタデータ、および実績メタデータというセキュリティ メタデータに対してコンテナー イメージを検証することで実現されます。

イメージ メタデータを検証し、検証ポリシーを適用するためのツールとサービス

Ratify は、Kubernetes クラスターがデプロイ前にセキュリティ メタデータを検証し、アドミッション ポリシーに準拠したイメージのみを許可できるようにするオープンソース プロジェクトです。 信頼された準拠しているコンテナー イメージのみを Kubernetes クラスターで実行できるように Ratify と Gatekeeper を構成することをお勧めします。

Gatekeeper は、Kubernetes クラスターのポリシーを標準化された方法で定義、適用、監査するための動的アドミッション コントローラーとポリシー エンジンを提供するオープンソースおよび CNCF プロジェクトです。

Azure Policy は Gatekeeper を拡張して、組み込みのポリシーを Azure Kubernetes Service クラスター全体に適用して、外部レジストリまたは信頼されていないソースからコンテナー イメージを参照するデプロイを監査またはブロックできるようにします。

画像メタデータを添付するためのツール

ORAS は、OCI に準拠したレジストリに成果物を格納および管理する方法を提供する CNCF プロジェクトです。 ORAS を使用すると、コンテナー イメージ、イメージ メタデータなど、あらゆる種類の成果物を OCI 準拠のレジストリに格納および管理できます。 また、OCI に準拠したレジストリとの対話を容易にする一連のコマンド ライン ツールも提供します。 ORAS を使用して、生成された脆弱性レポートとマルウェア レポート、SBOM、イメージ ライフサイクル メタデータ、および実績メタデータを、関連付けられているイメージと共にレジストリにプッシュすることをお勧めします。

コンテナー イメージとメタデータの署名と検証のためのツール

Notary Project は、署名と検証、署名の移植性、キー/証明書管理を通じてソフトウェアサプライ チェーンをセキュリティで保護するための業界間の標準を提供することを目的とした一連の仕様とツールを含むオープンソース プロジェクトです。 Notation は、署名の移植性と相互運用性を実現する Open Container Initiative (OCI) 準拠レジストリでの成果物の署名と検証をサポートする、Notary Project コミュニティによって開発されたサプライ チェーン ツールです。 また、プラグイン モデルを介してサードパーティのキー管理ソリューションと統合して、拡張性を実現します。 信頼性と改ざんを防ぐには、Notary Project ツールを使用してコンテナー イメージとメタデータに署名することをお勧めします。

次のステップ

コンテナー イメージを安全にデプロイするための実行ステージの概要を参照してください