コンテンツにスキップ

Local Code Scanning向けTeamCityパイプラインセットアップ

デフォルトでは、Aikidoはクラウド上でリポジトリをスキャンできます。コードへのアクセスを共有したくない場合は、Local Scanningオプションを使用できます。Aikido Security Local Scannerは、環境内(この場合はTeamCity Pipelines内)でAikido Securityスキャンを実行できるツールです。スキャンはパイプライン内で行われ、その結果がAikido Securityプラットフォームにアップロードされます。

Local Scanningのセットアップ方法

Section titled “Local Scanningのセットアップ方法 ”

前提条件: Local Scanning用のアカウントを作成済みであることを確認してください。Local Scanning用アカウントの作成に関する詳細情報

  1. Local Scannerセットアップページに移動します。

  2. 認証トークンを生成してコピーします。このトークンは一度しか表示されない点に注意してください。

  3. プロジェクトでLocal Scannerを実行する際、このトークンを引数--apikeyとして追加します。

  4. このトークンをパイプラインのシークレットとして保存します。

    APIキーをシークレットとして安全に追加するアプリ設定画面。

あとは、リポジトリでスキャナーを実行するだけです。

local scannerがデフォルトブランチでのみトリガーされるようにしてください。Aikidoはデフォルトで、リポジトリ内の1つのブランチ(通常はmainまたはmasterブランチ)に対して依存関係とコードの問題をスキャンします。そのため、Aikidoプラットフォーム上でスキャン結果が混在しないよう、そのブランチでのみlocal scannerを実行することを推奨します。これはパイプラインのセットアップ時に指定できます。

TeamCityパイプラインでlocal scannerを使う最も簡単な方法は、Dockerイメージを使うことです。

YAMLの例:

jobs:
Job1:
name: Aikido Scan
steps:
- type: script
name: Run aikido scan
docker-image: aikidosecurity/local-scanner
script-content: >-
aikido-local-scanner scan ./ --apikey %AIKIDO_API_KEY%
--repositoryname MyRepo --branchname main
runs-on: Linux-Medium

コマンドを実行する際は、--branchnameオプションで希望のブランチを指定してください。

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

デフォルトではすべてのスキャンタイプが実行されます。一部のスキャン(例: SASTスキャンのみ)だけを実行したい場合は、--scan-typesオプションでスキャンタイプを指定してください。CLIオプションの詳細についてはこちらを参照してください。

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

リリースまたはPRゲーティングモードの詳細については、この記事を参照してください。

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