エビデンス・サマリー
エビデンス要約とは、一連の成果物に関連するエビデンス部分の集合を指します。 現在、このパイプラインは 2 つのアプローチ ( v1
と v2
) を使用してエビデンスを収集し、要約します。 この目的は、 v1
が v2
に置き換えられることです。
v2 エビデンス収集
エビデンス・ロッカーは、3 種類のエンティティー ( 「資産」、 「エビデンス」、および 「添付ファイル」) を保管します。 詳しくは、 v2 エビデンス・フォーマット を参照してください。
資産
アセットとは、リポジトリー内の Git コミットや Docker イメージなど、テストおよびスキャンが可能な対象を表します。
エビデンス
証拠の一部は、スキャンまたはテストの結果を表します。 エビデンスは常に、少なくとも 1 つの資産に接続されます。 複数の資産が許可されます。 例えば、単一のエンドツーエンド・テスト・スイートで複数の資産を一緒にテストすることが考えられます。
アタッチメント
添付ファイルは、エビデンスに添付できる任意のデータです。 これは通常、スキャンまたはテストを実行したツールの未加工出力です。
証拠の収集
collect-evidence
スクリプトを使用して、証拠を収集します。
エビデンス・サマリー
v1
とは対照的に、 v2
のエビデンスはフラット階層に保管され、各エビデンスは独自のハッシュによって識別されます。 このハッシュは、保全性保護の層を提供します。 つまり、エビデンス・コンテンツの変更を検出できます。 各エビデンスは 1 つ以上の資産に関連しているため、エビデンス要約アルゴリズムは、( v1
のパイプライン実行 ID ではなく) 資産に基づいて関連するエビデンスをディスカバーします。
証拠は、以下に基づいて要約されています。
- パイプライン実行 ID: パイプライン実行 ID に基づいて、有効範囲が決定されます。 スコープは、エビデンスのコンテキストを設定します。
- 資産: 資産は、厳密なテストおよびスキャンの対象となる基本的なエンティティーです。 これらのアセットには、 Docker イメージへのリポジトリー内の既存の Git コミットなど、さまざまな形式が含まれます。
CI パイプラインでは、以下に基づいてエビデンスが要約されます。
- スコープは、エビデンス要約の 現在の CI 実行 の
pipeline_run_id
です。 - アセット・リストは、その実行で保存されたすべての成果物をリストする list_artifact コマンドを使用して計算されます。
CD パイプラインでは、以下に基づいて証拠が要約されています。
-
各在庫アイテムの
provenance
フィールドは、要約のasset
として機能します。 以下の 3 つのタイプの資産リストがあります。- 差分資産リスト: デプロイメント環境内の最後のデプロイメントから 変更された 資産。
- 非差分資産リスト: デプロイメント環境内の最後のデプロイメントから 変更されていない 資産。
- フル・アセット・リスト: すべてのインベントリー・エントリーからデプロイメント環境に対応するアセット。
-
各在庫アイテムの
pipeline_run_id
フィールドは、要約のscope
として機能します。- インベントリー・エントリーの
pipeline_run_id
から読み取られた CI スコープ。 - 現行の
pipeline_run_id
を CD パイプラインの有効範囲として指定します。
- インベントリー・エントリーの
CC パイプラインでは、以下に基づいて証拠が要約されています。
-
要約の
asset
としての各在庫部品の「provenance
」フィールド。 すべてのインベントリー・エントリーから、デプロイされた環境の最新のものに対応する資産。 -
各在庫部品の
pipeline_run_id
フィールドは、要約のscope
として機能します。- インベントリー・エントリーの
pipeline_run_id
から読み取られた CI スコープ。 - インベントリーの終了 で作成された
CD-pipeline_run_id
タグから読み取られた CD スコープ。 - CC パイプライン・スコープとしての現在の
pipeline_run_id
。
- インベントリー・エントリーの
詳しくは、 インベントリー を参照してください。 実動前の証拠に基づく prod
要約について詳しくは、 証拠要約の収集 を参照してください。
v2
エビデンス要約は、デフォルトで計算されます。
v1 エビデンス・コレクション
証拠は、パイプライン実行ごとにロッカーで編成されます。つまり、パイプライン実行で収集されたすべての証拠は、互いに隣接して保管されます。 この組織により、パイプライン実行 ID がある場合に証拠収集が容易になります。 ただし、Docker イメージに関連するエビデンスなど、資産に関連するエビデンスを特定することは困難です。 この問題は、証拠が複数のパイプライン実行 (CI パイプライン、ステージング CD パイプライン、実動 CD パイプラインなど) にまたがる可能性があるためです。 詳しくは、 v1 エビデンス・フォーマット を参照してください。
これらの問題のため、 v1
の証拠は v2
に置き換えられます。
v1 のエビデンス・コレクションは、レガシー・エビデンス・コレクションです。 v1 のエビデンス収集をオプトアウトするには、 レガシーをオフにする v1 エビデンス収集 を参照してください。