ローカルスキャナーを使ったBitbucketのPRゲーティング
Aikido Local Scannerを使用して、CIパイプラインでセキュリティゲートを適用できます。
クラウド接続されたワークスペース(GitHub、BitBucketなど)でもPRゲーティングを使用できます。CIのIntegrationセクションをご覧ください。
PRゲーティングにより、新しいコードがデフォルトブランチにマージされる前に、セキュリティ基準を満たしていることが保証されます。スキャン対象は、プルリクエストで導入された変更のみです。設定した重大度のしきい値以上の新しい問題が検出された場合、CIパイプラインは失敗します。
これにより、既存の検出結果を別途対処しながら、新しい脆弱性の混入を防ぐことができます。
リリース時にチェックを適用したいチーム向けに、リリースゲーティングもサポートしています。
PRゲーティングを有効にするには、--fail-on <severity> オプションを追加して希望する重大度レベルを選択します。次に、--gating-mode pr オプションを追加して、PRゲーティングを実行することを指定します。また、ベースコミット(--base-commit-id <commit-id>)とヘッドコミット(--head-commit-id <commit-id>)も指定する必要があります。ベースコミットIDに対して以前にスキャンが実行されている場合、スキャン結果はその結果と比較されます。そうでない場合は、デフォルトブランチでの最新のスキャン結果と比較されます。
Bitbucket環境でのLocal Scannerのセットアップに関する一般的な情報については、こちらの記事をご覧ください。
PRゲーティング用の 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