local code scanning用のBambooセットアップ
Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、コードが自社環境の外に出ることはありません。スキャンはローカルで行われ、その結果がAikido Securityプラットフォームにアップロードされます。このセットアップにより、レポート作成のためにLocal ScannerをBambooへ簡単に組み込むことができます。
Local Scanningのセットアップ方法
Section titled “Local Scanningのセットアップ方法 ”前提条件: Local Scanningに対応したアカウントを作成済みであることを確認してください。Local Scanning用アカウントの作成に関する詳細情報。
1. 認証トークンを取得する
Section titled “1. 認証トークンを取得する ”- Local Scannerセットアップページにアクセスします。
- 認証トークンを生成してコピーします。このトークンは一度しか表示できないのでご注意ください。
- プラン内で使用できるよう、認証トークンをBitbucketのPlan変数に追加します。これを行うには、plan configuration > Variablesに移動します。そこで、キーを
AIKIDO_API_KEY、値をコピーしたトークンの内容として認証トークンを追加できます。また、ProjectレベルまたはGlobalレベルで変数を定義することも選択できます(こちらを参照)。
2. Local Scannerを実行する
Section titled “2. Local Scannerを実行する ”local scannerがデフォルトブランチでのみトリガーされるようにしてください。デフォルトでは、Aikidoはリポジトリ内の1つのブランチ(通常はmainまたはmasterブランチ)について、依存関係とコードの問題をスキャンすることをサポートしています。そのため、Aikidoプラットフォーム上でスキャン結果が混在しないよう、local scannerはそのブランチでのみ実行することをお勧めします。
Dockerを使う場合
Section titled “Dockerを使う場合 ”エージェントがDockerを実行できる場合、Aikido Local ScannerのDockerイメージを使ってスキャンを実行できます。まず、コードがスキャン可能な状態であることを確認するために「Source Code Checkout」タスクがあることを確認してください。その後、以下のように「Docker」タスクを追加します。

コマンドとして「Run a Docker container」を選択します。イメージはDocker HubまたはAWS Elastic Container Registryから取得できます。
Container Commandフィールドには次のように入力します: scan . --apikey ${bamboo.AIKIDO_API_KEY} --repositoryname ${bamboo.planRepository.1.name} --branchname ${bamboo.planRepository.1.branch}
バイナリを使う場合
Section titled “バイナリを使う場合 ”エージェントがDockerを実行できない場合は、Aikido Local Scannerのバイナリを直接使用できます。これを行うには、Local Scannerセットアップページから正しいバイナリをダウンロードしてください。
次に、これをエージェントのcapabilityとして追加する必要があります。
- 対象のAgentへ移動する:
- Bambooで、Build Resources > Agentsに移動します。
- capabilityを追加したいagentを選択します。
- Executable Capabilityを追加する:
- Agent-specific capabilitiesセクションで、Add capabilityをクリックします。
- Capability type > Executableを選択します。
- Executable labelに、Aikido Local Scannerなど、実行ファイルの名前を入力します。
- Pathフィールドに、agentマシン上のaikido-local-scannerバイナリへのパスを指定します。
これで、Aikido Local ScannerをPlan内のTaskとして使用できます。まず、コードがスキャン可能な状態であることを確認するために「Source Code Checkout」タスクがあることを確認してください。その後、以下のように「Command」タスクを追加します。

実行ファイルとして「Aikido Local Scanner」を選択し、Argumentフィールドにコマンドパラメーターを追加します。
scan . --apikey ${bamboo.AIKIDO_API_KEY} --repositoryname ${bamboo.planRepository.1.name} --branchname ${bamboo.planRepository.1.branch}これがこのリポジトリの初回スキャンである場合、Aikidoは指定した名前でリポジトリを作成し、そこに全てのスキャン結果が格納されます。以降のスキャン結果も、このリポジトリ名の下にAikido内で集約されます。
デフォルトでは全てのスキャンタイプが実行されます。一部のスキャンのみ実行したい場合(例: SASTスキャンのみ)は、--scan-typesオプションでスキャンタイプを指定することで実行できます。CLIオプションの詳細はこちらをご覧ください。
スキャナーはrelease gatingモードまたはPR gatingモードでも実行できます。release gatingモードは、リリース前にリポジトリをスキャンする際に役立ち、潜在的なリリース前に未解決のissueがないことを保証します。release gatingモードで実行する場合、スキャン終了後に選択した深刻度以上の未解決issueが存在すると、スキャナープロセスは失敗します。PR gatingモードは、PR内で新たに発生した可能性のあるissueをスキャンするために使用できます。
release gatingモードまたはPR gatingモードの詳細はこちらの記事をご覧ください。
3. スキャン結果を確認する
Section titled “3. スキャン結果を確認する ”最初のスキャンが完了したら、Aikido Feedにアクセスして結果を確認できます。指定した名前のリポジトリが作成され、そこにスキャンの全結果が格納されています。