# ローカルイメージスキャナーを使用したコンテナイメージのリリースゲーティング

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

リリースゲーティングは、コンテナイメージなどのビルド成果物全体を、公開またはデプロイされる前にスキャンします。プルリクエストで導入された変更のみをスキャンする[PRゲーティング](https://help.aikidogov.us/docs/docs-ja/container-image-scanning/local-image-scanning/pr-gating-for-container-images-using-local-image-scanner)とは異なり、リリースゲーティングはビルド全体を評価します。設定した重大度のしきい値以上の問題がスキャンで見つかった場合、CIパイプラインは失敗し、リリースはブロックされます。

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

リリースゲーティングモードは、`--fail-on <severity>` フラグを使用して有効にできます。この機能は、イメージをイメージライブラリに公開する前にスキャンする際に役立ち、リリース前に未解決の問題がないことを保証します。リリースゲーティングモードで実行すると、スキャン完了後に選択した重大度以上の未解決の問題が存在する場合、スキャナープロセスは失敗します。

リリースゲーティングコマンドの例:

```
./aikido-local-scanner image-scan your-image-name --apikey AIK_CI_xxx --fail-on critical
```

### 例 <a href="#examples" id="examples"></a>

#### GitHub <a href="#github" id="github"></a>

GitHub環境でLocal Scannerをセットアップする方法の一般的な情報については、[こちらの記事](https://help.aikido.dev/code-scanning/local-code-scanning/github-action-setup-for-local-code-scanning)をご覧ください。リリースゲーティング用の `.github/workflows/aikido-scan.yml` の例:

```yaml
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 Server <a href="#azure-devops-server" id="azure-devops-server"></a>

Azure DevOps環境でLocal Scannerをセットアップする方法の一般的な情報については、[こちらの記事](https://help.aikido.dev/container-image-scanning/local-image-scanning/azure-devops-server-setup-for-local-image-scanning)をご覧ください。リリースゲーティングの例:

```yaml
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'
```
