コンテンツにスキップ

Local Code ScanningのBitbucket Pipelineセットアップ

Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、コードが社内から一切出ないことを保証します。スキャンはローカルで行われ、その結果のみがAikido Securityプラットフォームにアップロードされます。このセットアップにより、レポート作成のためにLocal ScannerをBitbucketプロジェクトへ簡単に組み込むことができます。

Local Scanningのセットアップ方法

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

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

  1. Local Scannerセットアップページに移動します。
  2. 認証トークンを生成してコピーします。このトークンは一度しか表示できない点にご注意ください。
  3. パイプラインで使用できるように、BitbucketのRepository variablesに認証トークンを追加します。これを行うには、Repository Settingsに移動し、Pipelines > Repository variablesに進みます。そこで、キーにAIKIDO_API_KEY、値にコピーしたトークンの内容を指定して認証トークンを追加できます。

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

Bitbucket PipelinesでLocal Scannerを使う最も簡単な方法は、Aikidoが提供するDockerイメージを利用することです。

bitbucket-pipelines.ymlの例:

image: aikidosecurity/local-scanner:latest
pipelines:
branches:
main:
- step:
name: Run Aikido scan
script:
- aikido-local-scanner scan . --repositoryname my-bitbucket-app --branchname main --apikey $AIKIDO_API_KEY

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

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

デフォルトではすべてのスキャン種別が実行されます。特定のスキャンのみ(例えばSASTスキャンのみ)を実行したい場合は、--scan-typesオプションでスキャン種別を指定することで実現できます。CLIオプションの詳細はこちらをご覧ください。

また、リリースゲーティングモードまたはPRゲーティングモードでスキャナーを実行することもできます。リリースゲーティングモードは、リリース前にリポジトリをスキャンする際に有用で、リリース候補にオープンな問題がないことを保証します。リリースゲーティングモードで実行すると、スキャン終了後に選択した深刻度以上のオープンな問題が存在する場合、スキャナーのプロセスは失敗します。PRゲーティングモードは、PR内で新たに混入した可能性のある問題を検出するために使用できます。

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

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