> 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. Local Scanner をプロジェクトに追加する](#2-adding-the-local-scanner-to-your-project)
  * [3. Local Scanner を実行する](#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 のオペレーティングシステムアーキテクチャです。バイナリをインストールする代わりに、docker イメージを直接実行することもできます。\
\
Node に十分なリソースがあることを確認してください。4GB RAM、2 コア CPU、14GB のストレージを備えたマシンでテスト済みです。

Linux Node を使用している場合、glibc のバージョンもバイナリの実行に重要です。2018 年にリリースされた 2.27 以上のバージョンが必要です。そのため、最近の多くの Linux オペレーティングシステムにはこのバージョン以上が含まれています。これに対応している 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）を作成します：

* 効率的なスキャンを実行するために、一部の lockfile をコピーする。
* スキャナーの結果を書き込む。

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

さらに、一部のファイルは一時 OS ディレクトリにコピーされます。十分な空き容量があることを確認してください。最小 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」ページに移動します。

   ![説明付きの新しいグローバル secret text 資格情報を作成するための Jenkins インターフェース。](/files/63a31f57b21f38e0405b7999fb9928b91bcb4861)

#### 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>

**オプション A — バイナリ**：Aikido UI からローカルスキャナーのバイナリをダウンロードします。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. 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 を使用している場合は、次の *ビルド対象ブランチ* セクションで指定できます。

![CI/CD パイプライン構成でビルド対象として「main」ブランチを選択する。](/files/ea945e1a3eeeb8d8e39298f9d61a5bc91d34263f)

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

![特定の資格情報を使用してビルド環境用の secret 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.
