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

Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、コードが社外に出ることはありません。スキャンはローカルで実行され、その結果がAikido Securityプラットフォームにアップロードされます。このセットアップにより、レポート作成のためにLocal ScannerをAzure DevOps Serverプロジェクトへ簡単に統合できます。

## Local Scanningのセットアップ方法 <a href="#how-to-set-up-local-scanning" id="how-to-set-up-local-scanning"></a>

**前提条件**：Local Scanningが利用可能なアカウントを作成済みであることを確認してください。[Local Scanningアカウントの作成に関する詳細情報](https://help.aikido.dev/en/articles/9070345-how-to-create-an-account-for-local-scanning-on-aikido)。

## 1. Local Scannerパイプラインのセットアップ <a href="#id-1-setting-up-a-local-scanner-pipeline" id="id-1-setting-up-a-local-scanner-pipeline"></a>

左側のナビゲーションでPipelinesに移動し、_Pipelines_ をクリックして _New Pipeline_ または _Create Pipeline_ を選択します。Configureステップで _Starter Pipeline_ を選択します。以下のパイプライン例では、mainブランチでの変更時にスキャンがトリガーされます。最初のスキャンはデフォルトブランチで実行することが重要です。これにより、Aikido内でリポジトリが正しくセットアップされます。

```yaml
trigger:
  branches:
    include:
    - main

pool:
  vmImage: 'ubuntu-latest'

container:
  image: aikidosecurity/local-scanner:latest
  options: --entrypoint=""

steps:
- bash: |
    aikido-local-scanner scan . \
      --apikey "$(AIKIDO_API_KEY)" \
      --repositoryname "$(Build.Repository.Name)" \
      --branchname main
  workingDirectory: $(Build.SourcesDirectory)
  displayName: 'Run Aikido Scan'
```

このリポジトリに対する初回スキャンの場合、Aikidoは指定した名前でリポジトリを作成し、すべてのスキャン結果をそこに格納します。以降のスキャン結果は、Aikido内のこのリポジトリ名の下に集約されます。

デフォルトではすべてのスキャンタイプが実行されます。一部のスキャンのみ（例：SASTスキャンのみ）を実行したい場合は、`--scan-types` オプションでスキャンタイプを指定できます。CLIオプションの詳細は[こちら](https://help.aikido.dev/en/articles/9027526-local-scanner-cli-options)をご覧ください。

スキャナーはリリースゲーティングモードまたはPRゲーティングモードで実行することもできます。リリースゲーティングモードは、リリース前にリポジトリをスキャンする際に役立ち、リリース候補に未解決の問題がないことを確認できます。リリースゲーティングモードで実行すると、スキャン完了後に選択した重大度以上の未解決の問題が存在する場合、スキャナープロセスは失敗します。PRゲーティングモードは、PRで新たに混入した可能性のある問題をスキャンするために使用できます。

リリースゲーティングモードまたはPRゲーティングモードの詳細については、[こちらの記事](https://help.aikidogov.us/docs/docs-ja/code-scanning/local-code-scanning/pr-gating-for-code-using-local-scanner)をご覧ください。

次に、APIキーをシークレット変数として追加します。右上の変数をクリックし、新しい変数を追加します。名前に AIKIDO\_API\_KEY を入力します。_Keep this value secret_ チェックボックスにチェックを入れます。シークレットの値を確認するには、ステップ2に進んでください。

## 2. 認証トークンの取得 <a href="#id-2-get-your-authentication-token" id="id-2-get-your-authentication-token"></a>

1. [Local Scannerセットアップページ](https://app.aikido.dev/settings/integrations/localscan)に移動します
2. 認証トークンを生成してコピーします。このトークンは一度しか表示されないことに注意してください。
3. このトークンを、パイプライン設定の AIKIDO\_API\_KEY 変数の値として貼り付けます。

これで、パイプラインを作成して初めて実行できます。

## 3. スキャン結果の確認 <a href="#id-3-check-your-scanning-results" id="id-3-check-your-scanning-results"></a>

初回スキャンが完了したら、Aikido Feedに移動して結果を確認できます。スキャンのすべての結果を含むリポジトリが作成されています。
