コンテンツにスキップ

Local Scannerを使ったコードのリリースゲーティング

Aikido Local Scannerは、プルリクエストやリリースなど、CIパイプラインのさまざまな段階でセキュリティゲートを適用できます。

Release gatingは、コードが公開・デプロイされる前にスキャンを行います。プルリクエストで導入された変更のみをスキャンするPR gatingとは異なり、release gatingはビルド全体を評価します。設定した深刻度のしきい値以上の問題がスキャンで見つかった場合、CIパイプラインは失敗し、リリースはブロックされます。

これにより、最終的なコードが本番環境に到達する前に、セキュリティ基準を満たしていることを保証できます。

release gatingを有効にするには、スキャンコマンドに--fail-on <severity>オプションを追加します。

aikido-local-scanner scan ./ --apikey $AIKIDO_LOCAL_SCANNER_TOKEN --repositoryname $CI_PROJECT_NAME --branchname main --fail-on critical

GitLab環境でのLocal Scannerのセットアップに関する一般的な情報は、こちらの記事をご覧ください。

release gating用の.gitlab-ci.ymlの例:

default:
image:
name: aikidosecurity/local-scanner:latest
entrypoint: [""]
run_aikido_selfscanner:
script:
- aikido-local-scanner scan ./ --apikey $AIKIDO_LOCAL_SCANNER_TOKEN --repositoryname $CI_PROJECT_NAME --branchname main --fail-on critical
rules:
- if: $CI_COMMIT_BRANCH == "main"

GitHub環境でのLocal Scannerのセットアップに関する一般的な情報は、こちらの記事をご覧ください。
release gating用の.github/workflows/aikido-scan.ymlの例:

on:
push:
branches:
- main
name: Aikido Scan
jobs:
aikido-local-scan-repo:
runs-on: ubuntu-latest
container:
image: aikidosecurity/local-scanner:latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: my-repo
- name: Run scan
run: aikido-local-scanner scan my-repo --apikey ${{ secrets.AIKIDO_API_KEY }} --repositoryname MyRepo --branchname main --fail-on critical