# ローカルイメージスキャンのためのCircleCIセットアップ

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イメージのセットアップページ](https://app.aikido.dev/settings/container-image-registry/add/localscan)に移動します
2. 認証トークンを生成してコピーします。このトークンは一度しか表示できないことに注意してください。
3. プロジェクトでLocal Scannerを実行する際に、このトークンを引数 `--apikey` として追加します。
4.  CircleCIで **Project Settings** > **Environment Variables** > **Add Environment Variable** に移動し、このトークンを環境変数として保存します。

    ![値と作成タイムスタンプのオプションとともに追加されたAPIキーの環境変数。](https://help.aikido.dev/_assets/4af088a48214/ucarecdn-70f72704-1cc5-4c32-86dc-dc893fc3076a.png)

### 2. Local Scannerを実行する <a href="#id-2-running-the-local-scanner" id="id-2-running-the-local-scanner"></a>

​\
あとは、イメージに対してスキャナーを実行するだけです。

```yaml
version: 2.1

jobs:
  run-aikido-scan:
    machine:
      image: ubuntu-2204:current

    steps:
      - run:
          name: "Your build step here"
          command: docker build .
      - run:
          name: "Run Aikido scan"
          command: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey "$AIKIDO_API_KEY"
  my-workflow:
    jobs:
      - run-aikido-scan:
          filters:
            branches:
              only:
                - master
```

CIでこれを実行する場合は、本番環境とフィーチャーブランチの結果がAikido内で混在しないよう、フィーチャーブランチに基づくイメージに対してスキャンを実行しないように注意してください。

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

```yaml
version: 2.1

jobs:
  run-aikido-scan:
    machine:
      image: ubuntu-2204:current

    steps:
      - run:
          name: "Your build step here"
          command: docker build .
      - run:
          name: "Run Aikido scan"
          command: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey "$AIKIDO_API_KEY" --fail-on critical
      - run:
          name: "Your push step here"
          command: docker image push ...
  my-workflow:
    jobs:
      - run-aikido-scan:
          filters:
            branches:
              only:
                - master
```

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

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

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