コンテンツにスキップ

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 critical

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 critical

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'