Azure DevOps Serverでのローカルイメージスキャン設定
Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、データが環境外に出ることはありません。スキャンはローカルで実行され、その結果がAikido Securityプラットフォームにアップロードされます。この設定により、自分のマシン上またはCI/CDパイプライン内で、レジストリに送信される前にイメージをローカルでスキャンできます。
イメージのローカルスキャンを設定する方法
Section titled “イメージのローカルスキャンを設定する方法 ”1. 認証トークンを取得する
Section titled “1. 認証トークンを取得する ”- Local Scanner Image設定ページに移動します
- 認証トークンを生成してコピーします。このトークンは一度しか表示されないのでご注意ください。
- このトークンはPipelineの設定で必要になります。
2. Local Scannerの実行
Section titled “2. Local Scannerの実行 ”左側のナビゲーションからPipelinesに移動し、PipelinesをクリックしてNew PipelineまたはCreate Pipelineを選択します。ConfigureステップでStarter Pipelineを選択します。
trigger:- master
pool: vmImage: ubuntu-latest
steps:- script: docker build -t my-image . displayName: 'Build docker image'- script: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan my-image --apikey $(AIKIDO_API_KEY) displayName: 'Run Aikido scan'ビルドとスキャンを別々のstageやjobに分けることもできます。ご自身のユースケースに最も適した例を使用し、必要に応じて調整してください。
trigger: - master
pool: vmImage: ubuntu-latest
stages:- stage: Build displayName: Build Docker Image jobs: - job: BuildAndSave displayName: Build and Save Docker Image steps: - script: | docker build -t my-image . docker save my-image -o $(Pipeline.Workspace)/my-image.tar displayName: 'Build and save Docker image to TAR' - task: PublishPipelineArtifact@1 inputs: targetPath: '$(Pipeline.Workspace)/my-image.tar' artifactName: 'my-image-tar' displayName: 'Publish Docker image TAR as artifact'
- stage: Scan displayName: Scan Docker Image dependsOn: Build jobs: - job: RunScanner displayName: Scan with Aikido Local Scanner steps: - task: DownloadPipelineArtifact@2 inputs: artifact: 'my-image-tar' path: '$(Pipeline.Workspace)' displayName: 'Download the saved image TAR' - script: | docker run --rm -v $(Pipeline.Workspace):$(Pipeline.Workspace) aikidosecurity/local-scanner image-scan $(Pipeline.Workspace)/my-image.tar --image-name my-image --apikey $(AIKIDO_API_KEY) displayName: 'Scan Docker image with Aikido'
次に、APIキーをシークレット変数として追加します。右上隅のvariablesをクリックし、新しい変数を追加します。名前にはAIKIDO_API_KEYと入力します。Keep this value secretのチェックボックスをオンにします。保存してパイプラインを実行します。
3. スキャン結果を確認する
Section titled “3. スキャン結果を確認する ”最初のスキャンが完了したら、Aikido Feedで結果を確認できます。指定した名前のイメージがAikido UI上に作成され、スキャンのすべての結果が格納されます。