# Local Image ScanningのGitLab設定

Aikido Security Local Scanner は、独自の環境内で Aikido Security のスキャンを実行できるツールであり、データが外部に出ることはありません。スキャンはローカルで行われ、その結果は Aikido Security プラットフォームにアップロードされます。この構成により、イメージがレジストリに送信される前に、自分のマシン上または CI/CD パイプライン内で任意のイメージをローカルにスキャンできます。

## イメージのローカルスキャンを設定する方法 <a href="#how-to-set-up-local-scanning-for-images" id="how-to-set-up-local-scanning-for-images"></a>

### 1. 認証トークンを取得する <a href="#id-1-get-your-authentication-token" id="id-1-get-your-authentication-token"></a>

1. へ移動 [Local Scanner Image 設定ページ](https://app.aikido.dev/settings/container-image-registry/add/localscan)
2. 認証トークンを生成してコピーします。このトークンを表示できるのは 1 回だけです。
3. このトークンを引数として追加します `--apikey` プロジェクトで Local Scanner を実行する際に。
4. 認証トークンを GitLab の CI/CD 変数に追加して、パイプラインで使用できるようにします。\
   これを行うには、グループの Settings ページに移動し、次に **CI/CD** サブページ。

   ![変数、ランナー、Auto DevOps の自動化を管理するための GitLab CI/CD 設定ページ。](https://help.aikidogov.us/_assets/d08e329861d7/ucarecdn-0dbf926b-b7ee-4a4c-b154-8f43de26fd68.png)

   変数の横にある「展開」をクリックし、「変数を追加」をクリックします。次に、認証トークンを `AIKIDO_LOCAL_SCANNER_TOKEN` をキーとして、コピーしたトークンの内容を値として追加します。

### 2. ローカルスキャナーの実行 <a href="#id-2-running-the-local-scanner" id="id-2-running-the-local-scanner"></a>

​\
これで、あとはイメージに対してスキャナーを実行するだけです。ガイドとしてこのサンプルファイルを使えます:

```yaml
default:
  image: docker:cli
  services:
    - docker:dind

run_aikido_selfscanner:
  script:
  - docker build ...
  - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey $AIKIDO_LOCAL_SCANNER_TOKEN
    - if: $CI_COMMIT_BRANCH == "main"
```

CI でこれを実行する場合は、feature ブランチ आधारितのイメージに対してスキャンを実行しないよう注意してください。Aikido で本番環境の結果と feature の結果が混ざらないようにするためです。

レジストリにプッシュする前にリリースゲート付きのスキャンを実行するには、次のようなパイプラインを実行できます：

```yaml
default:
  image: docker:cli
  services:
    - docker:dind

run_aikido_selfscanner:
  script:
  - docker build ...
  - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey $AIKIDO_LOCAL_SCANNER_TOKEN --fail-on critical
  - docker push ...
    - if: $CI_COMMIT_BRANCH == "main"
```

で指定する重大度を調整し `--fail-on` ニーズに合わせてください。

### 4. スキャン結果を確認する <a href="#id-4-check-your-scanning-results" id="id-4-check-your-scanning-results"></a>

最初のスキャンが完了したら、Aikido Feed に移動して結果を確認できます。指定した名前のイメージが Aikido UI に作成され、スキャンのすべての結果が含まれています。
