> For the complete documentation index, see [llms.txt](https://help.aikido.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.aikido.dev/docs/docs-ja/kdosukyan/local-code-scanning/jenkins-setup-for-local-code-scanning.md).

# ローカルコードスキャン用の Jenkins セットアップ

**目次：**

* [必要条件](#requirements)
  * [一時フォルダ](#temporary-folder)
* [ローカルスキャンの設定方法](#how-to-set-up-local-scanning)
* [1. 認証トークンを取得する](#1-get-your-authentication-token)
  * [2. ローカルスキャナーをプロジェクトに追加する](#2-adding-the-local-scanner-to-your-project)
  * [3. ローカルスキャナーを実行する](#3-running-the-local-scanner)
  * [4. スキャン結果を確認する](#4-check-your-scanning-results)

## ローカルコードスキャンのための Jenkins セットアップ

Aikido Security Local Scanner は、Aikido Security のスキャンをお使いの環境内で実行できるツールで、コードが外部に出ることはありません。スキャンはローカルで行われ、その結果は Aikido Security プラットフォームにアップロードされます。この設定により、レポート目的で Local Scanner を Jenkins プロジェクトに簡単に統合できます。

### 必要条件 <a href="#requirements" id="requirements"></a>

Local Scanner を実行するには、Jenkins Node が特定の要件を満たしている必要があります。現在サポートしているのは Linu&#x78;**,** macOS ARM64 と Windows の OS アーキテクチャです。バイナリのインストールの代わりに、Docker イメージを直接実行することもできます。\
\
Node に十分なリソースがあることを確認してください。4GB RAM、2 コア CPU、14GB のストレージを備えたマシンでテスト済みです。

Linux Node を使用している場合は、glibc のバージョンもバイナリの実行に重要です。2018 年にリリースされたバージョン 2.27 以上が必要です。そのため、最近の Linux OS の多くはこのバージョン以上を搭載しています。これに対応している OS は次のとおりです：

* CentOS 8 以降
* Ubuntu 18.04 以降
* Debian 10 以降
* Fedora 28 以降

お使いの OS で glibc のバージョンを確認するには、次を実行できます。

```shellscript
$ ldd --version ldd 
(Ubuntu GLIBC 2.30-0ubuntu2.1) 2.30
```

**Docker を使用する場合**、Jenkins Node には Docker がインストールされているだけで十分です。スキャナーはコンテナ内で実行されるため、glibc や OS アーキテクチャの要件はありません。

#### 一時フォルダ <a href="#temporary-folder" id="temporary-folder"></a>

スキャナーは、一時的なローカルフォルダ（既定では .aikidotmp）を作成して、次の処理を行います：

* 効率的なスキャンのために、特定のロックファイルをコピーする。
* スキャナーの結果を書き込む。

このフォルダは、スキャン完了後にクリーンアップされます。

さらに、一部のファイルが一時的な作業ディレクトリにコピーされます。十分な空き容量があることを確認してください。最低 2GB を推奨します。​

### ローカルスキャンの設定方法 <a href="#how-to-set-up-local-scanning" id="how-to-set-up-local-scanning"></a>

**前提条件**：ローカルスキャンを許可するアカウントを作成していることを確認してください。[ローカルスキャン用アカウントの作成に関する詳細](https://help.aikido.dev/en/articles/9070345-how-to-create-an-account-for-local-scanning-on-aikido).

### 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/integrations/localscan)
2. 認証トークンを生成してコピーしてください。このトークンは一度しか表示できないことに注意してください。
3. このトークンを引数として追加する `--apikey` プロジェクトで Local Scanner を実行するときに。
4. このトークンを Jenkins に保存します。これを行うには、Jenkins の設定にある「Credentials」ページに移動します。

   ![説明付きの新しいグローバル秘密テキスト認証情報を作成する Jenkins 画面。](/files/63a31f57b21f38e0405b7999fb9928b91bcb4861)

#### 2. ローカルスキャナーをプロジェクトに追加する <a href="#id-2-adding-the-local-scanner-to-your-project" id="id-2-adding-the-local-scanner-to-your-project"></a>

**オプション A（バイナリ）：** Aikido UI から Local Scanner のバイナリをダウンロードします。Jenkins では、ビルドノードに追加し、/usr/local/bin に配置して名前でアクセスできるようにします。バイナリが実行可能であることを確認してください（例： `chmod +x -R aikido-local-scanner`).

**オプション B（Docker）：** Jenkins Node に Docker がインストールされていることを確認してください。バイナリのダウンロードは不要で、スキャナーイメージは Docker Hub から自動的に取得されます。イメージは次の場所で利用できます：

* Docker Hub： `aikidosecurity/local-scanner`
* AWS ECR： `public.ecr.aws/z1o3v2w5/aikidosecurity/local-scanner`

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

これで、リポジトリでスキャナーを実行するだけです。\
​\
ローカルスキャナーがデフォルトブランチでのみ起動されるようにしてください。既定では、Aikido はリポジトリ内の 1 つのブランチ（通常は main または master ブランチ）に対して、依存関係とコードの問題をスキャンできます。したがって、Aikido プラットフォーム上でスキャン結果が混ざらないよう、ローカルスキャナーはそのブランチでのみ実行することを推奨します。git を使用している場合は、これを *ビルドするブランチ* セクションで指定できます。

![CI/CD パイプライン設定でビルドする「main」ブランチを選択する。](/files/ea945e1a3eeeb8d8e39298f9d61a5bc91d34263f)

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

![特定の認証情報を使用してビルド環境用の秘密 API キーを設定する。](/files/67ae2971d337ac797bf8e03fe7fdd66755853448)

次の **シェルを実行** ステップを、以下のいずれかのコマンドでプロジェクトに追加します：

**オプション A：バイナリ**

以下を使用して、任意のブランチを指定します。 `--branchname` オプション：

```shellscript
aikido-local-scanner scan ./ --apikey $AIKIDO_API_KEY --repositoryname DemoApp --branchname main
```

以下を使用して、任意のブランチを指定します。 `--branchname` コマンド実行時にこのオプションを使用します。<br>

**オプション B：Docker**

リポジトリのディレクトリに移動し、Docker イメージを使用してスキャナーを実行します。 `-v` フラグはソースコードをコンテナにマウントします：

```bash
docker run --rm \
  -v "$(pwd):/scan-target" \
  aikidosecurity/local-scanner \
  scan /scan-target \
  --apikey $AIKIDO_API_KEY \
  --repositoryname DemoApp \
  --branchname main
```

> **注：** Jenkins のワークスペースパスにスペースが含まれる場合は、引用符で囲んでください。  `--rm` フラグにより、スキャン完了後にコンテナが自動的に削除されます。

このリポジトリでの最初のスキャンであれば、Aikido は指定した名前のリポジトリを作成し、すべてのスキャン結果をそこに含めます。以降のスキャン結果は Aikido 内でこのリポジトリ名の下に集約されます。

CLI オプションの詳細は [こちら](https://help.aikido.dev/en/articles/9027526-local-scanner-cli-options).

以下を使用して、リリースゲーティングモードでスキャナーを実行することもできます。 `--fail-on <severity>` フラグを使用します。この機能は、リリース前にリポジトリをスキャンする際に便利で、リリース候補の前に未解決の問題がないことを保証します。リリースゲーティングモードで実行すると、スキャン完了後に選択した重大度以上の未解決の問題がある場合、スキャナー処理は失敗します。

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

```shellscript
aikido-local-scanner scan ./ --apikey $AIKIDO_API_KEY --repositoryname DemoApp --branchname main --fail-on critical
```

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

最初のスキャンが完了したら、Aikido Feed で結果を確認できます。指定した名前のリポジトリが作成され、スキャンのすべての結果が含まれています。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.aikido.dev/docs/docs-ja/kdosukyan/local-code-scanning/jenkins-setup-for-local-code-scanning.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
