コンテナー レジストリに格納されている場合でも、Kubernetes クラスターで実行されている場合でも、コンテナー イメージで脆弱性が特定された場合、セキュリティ専門家は、最初に作成した CI/CD パイプラインに戻すのに苦労する可能性があります。 このコンテキストがないと、問題を解決する開発者を特定することは困難です。 Microsoft Defender Cloud Security Posture Management (CSPM) には、クラウドネイティブ アプリケーションをコードからクラウドにマップできる DevOps セキュリティ機能が含まれています。 その結果、開発者の修復ワークフローを簡単に開始し、コンテナー イメージの脆弱性の修復にかかる時間を短縮できます。
コードからランタイムへ – 技術的な前提条件
コードとランタイムのリレーションシップを確立するには、次の前提条件が必要です。
一般的な前提条件 (すべての方法)
使用されるマッピング方法に関係なく、次の前提条件が適用されます。
- クラウド環境で Defender CSPM (クラウド セキュリティ体制管理) または Defender for Containers を有効にする必要がある
- Defender for Containers には、限られたマッピング機能セットが含まれています。
- コンテナー イメージは CI/CD パイプラインを介して構築する必要があります
- 手動でビルドおよびプッシュされたイメージはサポートされていません (場合によっては、手動でビルドまたはプッシュされたイメージにマッピングが残っている可能性があります)。
- コンテナー イメージは、次のいずれかの方法 で Defender for Cloud によって検出可能である必要があります。
- サポートされているコンテナー レジストリに格納されている場合、または
- サポートされている Kubernetes 環境での実行
オプション 1: コード環境を Defender for Cloud に接続する
コード環境を Defender for Cloud に接続すると、一連の自動化されたツールが自動的にトリガーされます。 これらのツールは、既存の DevOps ワークフローには影響 せず 、コードからランタイムへのマッピングを有効にします。
注意
- 現在、Azure DevOps と GitHub でサポートされています
- 接続 前 にビルドおよびデプロイされたコンテナー イメージのサポートが制限されている可能性があります
参考資料:
オプション 2: Docker ラベルベースのマッピング
Docker ラベルベースのマッピングは、ビルド時にコンテナー イメージに直接埋め込まれたメタデータに依存します。 Defender for Cloud は、OCI/Docker イメージ マニフェストからこのメタデータを抽出し、それを使用してイメージをソース リポジトリに関連付けます。
参考資料:
- OCI Docker イメージの注釈の仕様
- Azure DevOps に OCI/Docker ラベルを追加する
- GitHub でラベルを追加する
-
Dockerfile
LABEL命令を使用してラベルを手動で指定する
注意
- このメソッドでは、DevOps コネクタは必要 ありません 。
- マッピングは、Defender CSPM または Defender for Containers でカバーされる Kubernetes 環境に対して実行されます。
オプション 3: GitHub 証明ベースのマッピング
アテステーションベースのマッピングでは、GitHub Actions ワークフロー中に生成された 暗号的に検証可能な由来メタデータ が使用されます。 これらの構成証明は、コンテナー イメージを正確なソース リポジトリ、コミット、およびビルド ID にリンクします。
参考資料:
Azure ポータルでコードとランタイムのマッピングを確認する
Azure DevOps CI/CD パイプラインでコンテナー イメージを構築し、レジストリにプッシュした後、クラウド セキュリティ エクスプローラーを使用してマッピングを確認します。
Azure portal にサインインします。
[Microsoft Defender for Cloud]>[クラウド セキュリティ エクスプローラー] の順に移動します。 クラウド セキュリティ エクスプローラーにコンテナー イメージ マッピングが表示されるまでに最大 4 時間かかることがあります。
基本的なマッピングを表示するには、[コンテナー イメージ]>+>[コード リポジトリからプッシュ] の順に選択します。
(省略可能) [コンテナー イメージ] の横にある [+] を選択し、クエリにその他のフィルター ([脆弱性あり] など) を追加して、CVE のあるコンテナー イメージのみをフィルター処理します。
クエリを実行すると、コンテナー レジストリとパイプライン間のマッピングが表示されます。 詳細を表示するには、エッジの横にある [... ] を選択します。