Local Image Scannerを使ったコンテナイメージのリリースゲーティング
Aikido Local Scannerは、プルリクエストやリリースなど、CIパイプラインのさまざまな段階でセキュリティゲートを適用できます。
リリースゲーティングは、公開またはデプロイされる前に、コンテナイメージなどのビルド成果物全体をスキャンします。プルリクエストで導入された変更のみをスキャンするPR gatingとは異なり、リリースゲーティングはビルド全体を評価します。スキャンによって設定されたseverityのしきい値以上のissueが見つかった場合、CIパイプラインは失敗し、リリースはブロックされます。
これにより、最終的な成果物がproductionに到達する前に、セキュリティ基準を満たしていることが保証されます。
--fail-on <severity>フラグを使用することで、リリースゲーティングモードを有効にできます。この機能は、イメージライブラリに公開する前にイメージをスキャンする際に役立ち、リリース前に未解決のissueがないことを保証します。リリースゲーティングモードで実行すると、スキャン完了後に選択したseverity以上の未解決issueがある場合、スキャナーのプロセスは失敗します。
リリースゲーティングコマンドの例:
./aikido-local-scanner image-scan your-image-name --apikey AIK_CI_xxx --fail-on criticalGitHub
Section titled “GitHub ”GitHub環境でのLocal Scannerのセットアップに関する一般情報については、こちらの記事をご覧ください。リリースゲーティング用の.github/workflows/aikido-scan.ymlの例:
name: Aikido Docker build and scan
on: push: branches: - main
jobs: build-and-scan: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4
- name: Set up Docker Buildx uses: docker/setup-buildx-action@v3
- name: Build Docker image run: docker build -t your-local-image-name .
- name: Run Aikido image scan run: | docker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ aikidosecurity/local-scanner \ image-scan your-local-image-name \ --apikey ${{ secrets.AIKIDO_API_KEY }} \ --fail-on criticalAzure DevOps Server
Section titled “Azure DevOps Server ”Azure DevOps環境でのLocal Scannerのセットアップに関する一般情報については、こちらの記事をご覧ください。リリースゲーティングの例:
trigger:- main
pool: vmImage: ubuntu-latest
steps:- script: docker build -t my-image . displayName: 'Build docker image'- script: | docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan my-image \ --apikey $(AIKIDO_API_KEY) \ --fail-on critical displayName: 'Run Aikido scan'