Local Image Scannerを使ったコンテナイメージのリリースゲーティング
Aikido Local Scannerは、プルリクエストやリリースなど、CIパイプラインのさまざまな段階でセキュリティゲートを適用できます。
リリースゲーティングは、コンテナイメージなどのビルド成果物全体を、公開またはデプロイされる前にスキャンします。プルリクエストで導入された変更のみをスキャンするPRゲーティングとは異なり、リリースゲーティングはビルド全体を評価します。設定した重大度のしきい値以上の問題がスキャンで見つかった場合、CIパイプラインは失敗し、リリースはブロックされます。
これにより、最終的な成果物が本番環境に到達する前に、セキュリティ基準を満たしていることが保証されます。
リリースゲーティングモードは、--fail-on <severity> フラグを使用して有効にできます。この機能は、イメージをイメージライブラリに公開する前にスキャンする際に役立ち、リリース前に未解決の問題がないことを保証します。リリースゲーティングモードで実行すると、スキャン完了後に選択した重大度以上の未解決の問題が存在する場合、スキャナープロセスは失敗します。
リリースゲーティングコマンドの例:
./aikido-local-scanner image-scan your-image-name --apikey AIK_CI_xxx --fail-on critical例
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
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'