DevSecOpsにおけるコンプライアンス・パイプラインのパフォーマンス向上
DevSecOps ツールチェーンにおいて、パイプラインタスクが同時に実行されるように並行処理を有効にします。
開始前に
前提条件ステップとして、 IBM管理ワーカーまたは TAAS 管理ワーカーを直接使用します。
プライベート・ワーカーを使用するには、ワーカー・ノードのパイプラインが Tekton バージョン v0.45 以降でなければなりません。 詳しくは、 インストール手順 を参照してください。
DevsecOps での並行性の使用可能化
DevsecOps,で並行性を有効にするには、以下のステップを踏む:
- PR パイプライン、CI パイプライン、CD パイプライン、または CC パイプラインの 「トリガー」 ページに移動します。
- リポジトリー・エントリーの 「操作」 アイコン
をクリックし、 「編集」 をクリックします。
open-v10へのブランチを更新し、 「更新」 をクリックします。
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 をマージしたりビルドをデプロイしたりする前に、コンプライアンスの問題が確実に修正されるようにするための「フェイルセーフ」動作です。 |
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 のマージ、ビルドのデプロイ、またはその両方を行う前に、コンプライアンスの問題が確実に修正されるようにするための「フェイルセーフ」動作です。 |
CD パイプライン構造
CD パイプラインは、証拠のすべての内容と変更要求の要約をコンパイルします。 これは、すべてのエビデンスをエビデンス・ロッカーにアップロードしながら、ステージングや実稼働などの環境にビルドをデプロイします。
詳しくは、 CD パイプラインの資料 を参照してください。
| CD パイプライン・ステージ | ステージの説明 |
|---|---|
prod-start |
デプロイメント・デルタの計算 |
prod-setup |
ビルドおよびテスト環境をセットアップします。 |
prod-verify-artifact |
CI パイプラインで作成されたイメージの署名を検証します。 |
prod-change-request |
変更要求および実装状態の作成および承認。 |
prod-deployment |
ビルドを環境にデプロイします。 |
prod-acceptance-tests |
受け入れテストを実行します。 |
prod-finish |
受け入れテストの公開、レコードのデプロイ、 CycloneDX SBOM の収集、および変更要求のクローズを行います。 |
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 をマージしたりビルドをデプロイしたりする前に、コンプライアンスの問題を確実に修正するための「フェイルセーフ」動作があります。 |
開発モードのパイプライン構造
開発モードのパイプラインは、パイプラインのテストにのみ使用されます。
これらには、以下の機能がありません。
- エビデンスの収集
- 証拠に基づくゲート。
開発モードのパイプライン構造が実動に対応していません。
DevsecOps での並行性の無効化
DevsecOps,で同時実行を無効にするには、以下のステップを踏む:
- PR パイプライン、CI パイプライン、または CC パイプラインの 「トリガー」 ページに移動します。
- リポジトリー・エントリーの 「アクション」 アイコン
をクリックし、 「編集」 を選択します。
- ブランチを
open-v9に更新し、 「更新」 を選択します。