コンテンツにスキップ

Local ScannerによるBitbucketのPR gating

Aikido Local Scannerを使うと、CIパイプラインにセキュリティゲートを設定できます。

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

これにより、既存の検出結果は別途対応しつつ、新しい脆弱性の混入を防ぐことができます。

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

Bitbucket環境でのLocal Scannerの設定に関する一般的な情報は、こちらの記事をご参照ください。

PR gating用のbitbucket-pipelines.ymlの例:

image: aikidosecurity/local-scanner:latest
pipelines:
pull-requests:
"**": # this applies the pipeline to all pull requests
- step:
name: Aikido PR Gating Scan
script:
- >-
aikido-local-scanner scan ./
--apikey $AIKIDO_API_KEY
--repositoryname $BITBUCKET_REPO_SLUG
--branchname $BITBUCKET_BRANCH
--gating-mode pr
--fail-on critical
--base-commit-id $BITBUCKET_PR_DESTINATION_COMMIT
--head-commit-id $BITBUCKET_COMMIT