コンテンツにスキップ

local code scanning用のAzure DevOps Serverセットアップ

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

Local Scanningのセットアップ方法

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

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

1. Local Scannerパイプラインのセットアップ

Section titled “1. Local Scannerパイプラインのセットアップ ”

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

trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
container:
image: aikidosecurity/local-scanner:latest
options: --entrypoint=""
steps:
- script: aikido-local-scanner scan $BUILD_SOURCESDIRECTORY --apikey $(AIKIDO_API_KEY) --repositoryname $BUILD_REPOSITORY_NAME --branchname main

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

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

スキャナーはrelease gatingモードまたはPR gatingモードでも実行できます。release gatingモードは、リリース前にリポジトリをスキャンする際に役立ち、潜在的なリリース前に未解決のissueがないことを保証します。release gatingモードで実行する場合、スキャン終了後に選択した深刻度以上の未解決issueが存在すると、スキャナープロセスは失敗します。PR gatingモードは、PR内で新たに発生した可能性のあるissueをスキャンするために使用できます。

release gatingモードまたはPR gatingモードの詳細はこちらの記事をご覧ください。

次に、APIキーをsecret変数として追加します。右上の隅にあるvariablesをクリックし、新しい変数を追加します。名前としてAIKIDO_API_KEYを入力します。Keep this value secretチェックボックスをオンにします。secretの値を確認するには、ステップ2に進んでください。

  1. Local Scannerセットアップページにアクセスします。
  2. 認証トークンを生成してコピーします。このトークンは一度しか表示できないのでご注意ください。
  3. パイプライン設定のAIKIDO_API_KEY変数の値として、このトークンを貼り付けます。

これで、パイプラインを作成して初めて実行できるようになります。

最初のスキャンが完了したら、Aikido Feedにアクセスして結果を確認できます。リポジトリが作成され、そこにスキャンの全結果が格納されています。