# Local Image ScanningのJenkins設定

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. このトークンを Jenkins に保存します。そのためには、Jenkins 設定の「Credentials」ページに移動します。

![グローバルで使用する新しいシークレットテキスト認証情報を追加するための Jenkins インターフェース。](https://help.aikidogov.us/_assets/0c9922f6c162/ucarecdn-5ee149ff-1adb-483d-8e26-62b92a78544d.png)

### 2. Local Scanner をプロジェクトに追加する <a href="#id-2-adding-the-local-scanner-to-your-project" id="id-2-adding-the-local-scanner-to-your-project"></a>

Aikido UI からローカルスキャナーのバイナリをダウンロードします。Jenkins では、ビルドノードに追加し、/usr/local/bin に配置して名前でアクセスできるようにします。バイナリが実行可能であることを確認してください（例: `chmod +x -R aikido-local-scanner`）。Docker がインストールされているランナーを使用している場合は、この手順を省略し、Local Scanner の Docker イメージを使ってスキャンを実行できます（下記参照）。

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

これで、リポジトリ上でスキャナーを実行する準備は完了です。\
​\
Local Scanner はデフォルトブランチでのみ起動するようにしてください。デフォルトでは、Aikido はリポジトリ内の 1 つのブランチに対して依存関係およびコードの問題をスキャンすることをサポートしており、通常は main または master ブランチです。そのため、Aikido プラットフォーム上でスキャン結果が混在しないよう、Local Scanner はそのブランチのみに対して実行することを推奨します。git を使用している場合は、次の項目でこれを指定できます。 *ビルド対象のブランチ* セクション。

![Jenkins を 'main' ブランチのみビルドするように設定する。](https://help.aikidogov.us/_assets/1a9f161bf00b/ucarecdn-065da2fc-d249-4a71-b0ce-01219ecfa118.png)

次に、API キーをビルド環境に追加して、プロジェクトで使用できるようにします。

![ビルド環境で Aikido 用のシークレット API キーバインドを設定する。](https://help.aikidogov.us/_assets/c3716be1aa10/ucarecdn-2e86c5ed-ea49-4d84-9911-226c55aa5547.png)

以下の内容でプロジェクトに「Execute shell」ステップを追加してください。イメージ名を使用することも、イメージの tar アーティファクトへのパスを使用することもできます。

```shellscript
aikido-local-scanner image-scan your-image --apikey $AIKIDO_API_KEY
```

あるいは、当社の Docker イメージを使用している場合は

```shellscript
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-image --apikey $AIKIDO_API_KEY
```

レジストリにプッシュする前にリリースゲート付きスキャンを実行するには、次を追加できます `--fail-on critical` 上記のコマンドに。しきい値を、特定のゲーティング要件に合わせて調整してください。

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

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