For the complete documentation index, see llms.txt. This page is also available as Markdown.

ローカルスキャナーを使用したJenkinsのPRゲーティング

Aikido Local Scanner は、CI パイプラインでセキュリティゲートを強制するために使用できます。

クラウド接続されたワークスペース(GitHub、BitBucket など)でも PR ゲーティングを使用できます。CI をご覧ください 統合セクション.

PR ゲーティングにより、新しいコードがデフォルトブランチにマージされる前に、セキュリティ基準を満たしていることを確認できます。これは、プルリクエストで導入された変更のみをスキャンします。スキャンで、設定した重大度しきい値に達する、またはそれを上回る新しい問題が検出された場合、CI パイプラインは失敗します。

これにより、新たな脆弱性の混入を防ぎつつ、既存の指摘には別途対応できます。

また、次もサポートしています リリースゲーティング リリース時にチェックを強制したいチーム向けです。

PR ゲーティングを有効にするには、次を追加してください --fail-on <severity> オプションで希望する重大度レベルを選択します。次に、次を追加してください --gating-mode pr オプションを追加して、PR ゲーティングを実行することを示します。また、ベース(--base-commit-id <commit-id>)とヘッドコミット(--head-commit-id <commit-id>)を指定する必要があります。ベースの commit id に対して以前にスキャンが実行されている場合、スキャン結果はそれと比較されます。そうでない場合、結果はデフォルトブランチでの最新のスキャンと比較されます。

Jenkins 環境で Local Scanner をセットアップする一般的な情報については、次を参照してください この記事.

仕組み

3 つの要素があります:

  1. SCM と Jenkins の連携。

  2. Multibranch Pipeline ジョブプルリクエストを検出 動作。これにより Jenkins は開いている各プルリクエストをビルドします。PR ビルドでは、Jenkins はソースブランチをチェックアウトし、標準の変更要求環境変数(CHANGE_ID, CHANGE_TARGET, CHANGE_BRANCH).

  3. Aikido Local Scanner、あなたの Jenkinsfile 内で --gating-mode pr.

PR が作成/更新 ──► SCM が webhook を送信 ──► Jenkins Multibranch PR ビルド


                                        aikido-local-scanner --gating-mode pr

                                  新しい問題 ≥ --fail-on ?  ── はい ──► ビルド失敗
                                                      │                    │
                                                      いいえ                   ▼
                                                      ▼            ビルド状態 = FAILED
                                                ビルド成功               │
                                                      │                    ▼
                                                      ▼          SCM がマージをブロック
                                              SCM チェック合格

Multibranch Pipeline のセットアップ

プルリクエストのビルドには マルチブランチ パイプライン ジョブが必要です。

  1. Jenkins で次を選択します 新規アイテム → Multibranch Pipelineと入力して名前を付け、次を選択します OK.

  2. 次の下で ブランチソースソースを追加 → SCM を選択.

  3. 次を選択してください リポジトリ.

  4. 次の下で 動作追加 → プルリクエストを検出 を追加し、次を無効にします ブランチを検出。

  5. 次の下で Multibranch Pipeline のスキャン トリガーで次を有効にします webhook トリガー → プルリクエストの作成またはソースブランチの更新 オプション。

  6. 次のままにします ビルド設定Jenkinsfile によるで、 Script Path = Jenkinsfile.

  7. 選択 保存。Jenkins はリポジトリをスキャンし、開いている各プルリクエストのビルドを開始します。

Jenkinsfile に Aikido PR ゲーティングのステージを追加する

次のものを追加(または拡張)します Jenkinsfile をリポジトリのルートに配置します。以下のステージは プルリクエストのビルドでのみ実行されます、Git からベースコミットとヘッドコミットを取得し、PR ゲーティングモードでスキャナーを実行します。ゲート失敗時にスキャナーが非 0 で終了するため、ビルドが失敗します。

スキャナーバイナリがエージェントにインストールされている場合は Docker の代わりに、次の docker run … ブロックを次のように置き換えます:

  • --fail-on critical で重大度しきい値を設定します。これを high, medium、または low に変更すると、より厳格にゲートできます。

必要に応じて、SCM でのゲート強制を設定してください。

最終更新

役に立ちましたか?