> 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 ノードが特定の要件を満たしている必要があります。現在サポートしているのは Linu&#x78;**,** macOS ARM64 および Windows の OS アーキテクチャです。バイナリをインストールする代替手段として、docker イメージを直接実行することも可能です。\
\
ノードに十分なリソースがあることを確認してください。4GB の RAM、2 コア CPU、14GB のストレージを搭載したマシンでテストしています。

Linux ノードを使用している場合、glibc のバージョンもバイナリの実行にとって重要です。必要なのは 2018 年にリリースされたバージョン 2.27 以上です。そのため、最近の Linux オペレーティングシステムの多くはこのバージョン以上を備えています。これに対応しているオペレーティングシステムは次のとおりです:

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

オペレーティングシステム上の glibc のバージョンを確認するには、次を実行できます

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

**Docker を使用する場合**、Jenkins ノードには 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. 次の [ローカルスキャナーのセットアップページ](https://app.aikido.dev/settings/integrations/localscan)
2. 認証トークンを生成してコピーします。このトークンは一度しか表示できないことに注意してください。
3. このトークンを引数として追加する `--apikey` プロジェクトで Local Scanner を実行する際に。
4. このトークンを Jenkins に保存します。これを行うには、Jenkins の設定で「Credentials」ページに移動します。

   ![説明付きの新しいグローバル secret text クレデンシャルを作成する Jenkins 画面。](https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-7c6ce50c44c5ae9fd463849483c7ff3568a2e58f%2Fucarecdn-79b10ff7-e7e5-4919-aaac-655ffa726b60.png?alt=media)

#### 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 からローカルスキャナーのバイナリをダウンロードします。Jenkins では、ビルドノードに追加し、/usr/local/bin に配置して名前でアクセスできるようにします。バイナリが実行可能であることを確認してください（例: `chmod +x -R aikido-local-scanner`).

**オプション B（Docker）:** Jenkins ノードに 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」ブランチを選択する。](https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-77cb707a91a2ff975b8cbbaa9b6d1cf1ee063a54%2Fucarecdn-065da2fc-d249-4a71-b0ce-01219ecfa118.png?alt=media)

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

![特定のクレデンシャルを使用してビルド環境向けの secret API キーを設定する。](https://715870456-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyKbzcQGrx7UtrG0nPZZ7%2Fuploads%2Fgit-blob-7764ad6afec86eeaefdcf3ac8f66010bfbd29141%2Fucarecdn-2e86c5ed-ea49-4d84-9911-226c55aa5547.png?alt=media)

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

**オプション 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.
