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に進んでください。
2. 認証トークンを取得する
Section titled “2. 認証トークンを取得する ”- Local Scannerセットアップページにアクセスします。
- 認証トークンを生成してコピーします。このトークンは一度しか表示できないのでご注意ください。
- パイプライン設定のAIKIDO_API_KEY変数の値として、このトークンを貼り付けます。
これで、パイプラインを作成して初めて実行できるようになります。
3. スキャン結果を確認する
Section titled “3. スキャン結果を確認する ”最初のスキャンが完了したら、Aikido Feedにアクセスして結果を確認できます。リポジトリが作成され、そこにスキャンの全結果が格納されています。