DevSecOpsにおけるコンプライアンス・パイプラインのパフォーマンス向上

DevSecOps ツールチェーンにおいて、パイプラインタスクが同時に実行されるように並行処理を有効にします。

開始前に

前提条件ステップとして、 IBM管理ワーカーまたは TAAS 管理ワーカーを直接使用します。

プライベート・ワーカーを使用するには、ワーカー・ノードのパイプラインが Tekton バージョン v0.45 以降でなければなりません。 詳しくは、 インストール手順 を参照してください。

DevsecOps での並行性の使用可能化

DevsecOps,で並行性を有効にするには、以下のステップを踏む:

  1. PR パイプライン、CI パイプライン、CD パイプライン、または CC パイプラインの 「トリガー」 ページに移動します。
  2. リポジトリー・エントリーの 「操作」 アイコン 「操作」アイコン をクリックし、 「編集」 をクリックします。
  3. open-v10 へのブランチを更新し、 「更新」 をクリックします。

パイプライン定義
パイプライン定義

PR パイプライン構造

PR パイプラインは、特定のアプリケーション・リポジトリーのプル要求に対して準拠性検査を実行し、メイン・ブランチにマージするための安全防護策として機能します。 PR パイプラインは、メイン・ブランチに対するプル要求をオープンまたは更新することによってトリガーされます。

詳しくは、 PR パイプラインの資料 を参照してください。

PRパイプラインのステージ構成と各ステージの説明
PR Pipeline ステージ ステージの説明
code-pr-start プル要求に関連して GitHub リポジトリーを複製します。
code-setup 残りのパイプライン・ステージを準備するために、ビルドおよびテスト環境をセットアップします。
code-detect-secrets アプリケーション・コードのシークレット・スキャンを検出するために実行します。
code-unit-tests PR に関連付けられているコードの単体テストを実行します。
code-compliance-checks Code Risk Analyzer (CRA) および Mend Unified Agent は、オープン・ソースの依存関係に対する脆弱性検出や、アプリケーション・リポジトリーに対するその他のコンプライアンス検査をスキャンします。
code-pr-finish パイプラインの状況を統合します。 前の実行の準拠性検査が失敗すると、ステージは失敗します。 このステージは、PR をマージしたりビルドをデプロイしたりする前に、コンプライアンスの問題が確実に修正されるようにするための「フェイルセーフ」動作です。

PRパイプライン構造
PRパイプライン構造

CI パイプライン構造

CI パイプラインは、アプリケーション・リポジトリーからデプロイ可能な成果物をビルドします。 ビルドされた成果物をスキャン、テスト、および署名すると同時に、インベントリー内にリリースされ、デプロイメントおよび変更管理によって追跡される各ステージに関する証拠を収集します。

詳しくは、 CI パイプラインの資料 を参照してください。

CIパイプラインのステージ構成と各ステージの説明
CI パイプライン・ステージ ステージの説明
code-ci-start パイプライン環境のセットアップ (パイプライン・ローカル・ファイル・システムへの構成リポジトリーおよびアプリケーション・リポジトリーの複製を含む)
code-setup 残りのパイプライン・ステージを準備するために、ビルドおよびテスト環境をセットアップします。
code-detect-secrets アプリケーション・コードに対するシークレット・スキャンの検出を実行します。
code-unit-tests アプリケーション・コードに対して単体テストとアプリケーション・テストを実行します。
code-peer-review コード変更のピア・レビュー。
code-static-scan アプリケーションコードの静的スキャンを実行する。
code-compliance-checks Code Risk Analyzer (CRA) および Mend Unified Agent は、オープン・ソースの依存関係に対する脆弱性検出や、アプリケーション・リポジトリーに対するその他のコンプライアンス検査をスキャンします。
build-artifact 成果物とイメージをビルドします。
build-sign-artifact ビルドされた成果物とイメージに署名します。
build-scan-artifact Vulnerability Advisorでコンテナー・イメージをスキャンします。
deploy-dev ビルド成果物を開発環境にデプロイします。
code-dynamic-scan クラスターにデプロイされたアプリケーションで OWASP-Zap 動的スキャンを実行します。
deploy-acceptance-tests 開発環境で、デプロイされたビルド成果物に対して受け入れテストと統合テストを実行します。
deploy-release ビルドされた成果物を、 Continuous Delivery ・パイプラインで使用されるインベントリーに追加します。
code-ci-finish ログ・ファイル、成果物、エビデンスを収集、作成し、エビデンス・ロッカーにアップロードします。 いずれかの準拠性検査の場合。 以前にパイプラインで実行された場合、このステージは失敗します。 このステージは、PR のマージ、ビルドのデプロイ、またはその両方を行う前に、コンプライアンスの問題が確実に修正されるようにするための「フェイルセーフ」動作です。

CIパイプライン構造
CIパイプライン構造

CD パイプライン構造

CD パイプラインは、証拠のすべての内容と変更要求の要約をコンパイルします。 これは、すべてのエビデンスをエビデンス・ロッカーにアップロードしながら、ステージングや実稼働などの環境にビルドをデプロイします。

詳しくは、 CD パイプラインの資料 を参照してください。

CDパイプラインのステージ構成と各ステージの説明
CD パイプライン・ステージ ステージの説明
prod-start デプロイメント・デルタの計算
prod-setup ビルドおよびテスト環境をセットアップします。
prod-verify-artifact CI パイプラインで作成されたイメージの署名を検証します。
prod-change-request 変更要求および実装状態の作成および承認。
prod-deployment ビルドを環境にデプロイします。
prod-acceptance-tests 受け入れテストを実行します。
prod-finish 受け入れテストの公開、レコードのデプロイ、 CycloneDX SBOM の収集、および変更要求のクローズを行います。

CDパイプライン構造
CDパイプライン構造

CC パイプライン構造

CC パイプラインは、デプロイされた成果物とそのソース・リポジトリーに対して定期的なスキャンを実行します。 インベントリー内の最新のデプロイ済み状態をスキャンし、インシデント・リポジトリー内でインシデントの問題を作成または更新します。

詳しくは、 CC パイプラインの資料 を参照してください。

CCパイプラインの構造と各ステージの説明
CC パイプライン・ステージ ステージの説明
cc-start リポジトリーを複製し、タグに基づいてインベントリーを処理し、リポジトリーと成果物を登録します
cc-setup 後の段階で、スキャン用のパイプライン環境をセットアップします。 これには、ビルド依存関係のインストールや Maven ビルドの実行が含まれる場合があります。
cc-detect-secrets アプリケーション・コード内のシークレットをスキャンして検出するために実行します
cc-static-scan アプリケーションコードに対して静的スキャンコードを実行する
cc-dynamic-scan クラスターにデプロイされているアプリケーションで OWASP-Zap 動的スキャンを実行します。
cc-compliance-checks Code Risk Analyzer (CRA) および Mend Unified Agent は、オープン・ソースの依存関係に対する脆弱性検出や、アプリケーション・リポジトリーに対するその他のコンプライアンス検査をスキャンします。
cc-scan-artifact Vulnerability Advisorでコンテナー・イメージをスキャンします。
cc-finish ログ・ファイル、成果物、エビデンスを収集、作成し、エビデンス・ロッカーにアップロードします。 以前にパイプラインで実行された準拠性検査のいずれかが失敗した場合、このステージは失敗します。 このステージには、PR をマージしたりビルドをデプロイしたりする前に、コンプライアンスの問題を確実に修正するための「フェイルセーフ」動作があります。

CCパイプライン構造
CCパイプライン構造

開発モードのパイプライン構造

開発モードのパイプラインは、パイプラインのテストにのみ使用されます。

これらには、以下の機能がありません。

  • エビデンスの収集
  • 証拠に基づくゲート。

開発モードのパイプライン構造が実動に対応していません。

開発モード PR パイプライン構造
開発モード PR パイプライン構造

開発モード CI パイプライン構造
開発モード CI パイプライン構造

DevsecOps での並行性の無効化

DevsecOps,で同時実行を無効にするには、以下のステップを踏む:

  1. PR パイプライン、CI パイプライン、または CC パイプラインの 「トリガー」 ページに移動します。
  2. リポジトリー・エントリーの 「アクション」 アイコン 「アクション」アイコン をクリックし、 「編集」 を選択します。
  3. ブランチを open-v9 に更新し、 「更新」 を選択します。