Jenkinsでのローカルイメージスキャン設定
Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、データが環境外に出ることはありません。スキャンはローカルで実行され、その結果がAikido Securityプラットフォームにアップロードされます。この設定により、自分のマシン上またはCI/CDパイプライン内で、レジストリに送信される前にイメージをローカルでスキャンできます。
イメージのローカルスキャンを設定する方法
Section titled “イメージのローカルスキャンを設定する方法 ”1. 認証トークンを取得する
Section titled “1. 認証トークンを取得する ”- Local Scanner Image設定ページに移動します
- 認証トークンを生成してコピーします。このトークンは一度しか表示されないのでご注意ください。
- プロジェクトでLocal Scannerを実行する際、このトークンを引数
--apikeyとして追加します。 - このトークンをJenkinsに保存します。そのためには、Jenkinsの設定にある「Credentials」ページに移動します。

2. プロジェクトへのLocal Scannerの追加
Section titled “2. プロジェクトへのLocal Scannerの追加 ”Aikido UIからLocal Scannerのバイナリをダウンロードします。Jenkinsでは、ビルドノード上にこれを追加し、/usr/local/binに配置することで名前で呼び出せるようにします。バイナリに実行権限があることを確認してください(例: chmod +x -R aikido-local-scanner)。Dockerがインストールされているランナーを使用している場合は、この手順をスキップして、代わりにLocal ScannerのDockerイメージを使ってスキャンを実行することもできます(下記参照)。
3. Local Scannerの実行
Section titled “3. Local Scannerの実行 ”あとはリポジトリに対してスキャナーを実行するだけです。
Local Scannerはデフォルトブランチに対してのみトリガーされるようにしてください。Aikidoはデフォルトでは、リポジトリ内の1つのブランチ(通常はmainまたはmasterブランチ)について依存関係・コードのissueをスキャンします。そのため、Aikidoプラットフォーム上でスキャン結果が混在しないよう、Local Scannerはそのブランチでのみ実行することを推奨します。gitを使用している場合は、Branches to buildセクションでこれを指定できます。

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

プロジェクトに以下の内容で「Execute shell」ステップを追加します。イメージ名を使用することも、イメージのtarアーティファクトのパスを使用することもできます。
aikido-local-scanner image-scan your-image --apikey $AIKIDO_API_KEYまたは、Aikidoが提供するDockerイメージを使用する場合
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. スキャン結果を確認する
Section titled “4. スキャン結果を確認する ”最初のスキャンが完了したら、Aikido Feedで結果を確認できます。指定した名前のイメージがAikido UI上に作成され、スキャンのすべての結果が格納されます。