コンテンツにスキップ

Local Scannerを使った夜間スキャンの実行

CIでAikido Local Scannerを実装する際は、デフォルトブランチの変更に対してスキャンを実行することを推奨します。また、特に更新が定期的には行われないリポジトリについては、一定の間隔でスケジュールスキャンを実行することも検討してください。この記事では、これらの定期スキャンの設定方法に焦点を当てます。特定のCI/CDツールでLocal Scannerを設定する詳細が必要な場合は、それぞれのツールのガイドをご参照ください。

GitHub Actionsで夜間スキャンを設定する

Section titled “GitHub Actionsで夜間スキャンを設定する ”

以下の例は、mainブランチへのpush時、および毎晩深夜にスキャンを実行するGitHub Actionを作成します。

on:
push:
branches:
- main
schedule:
- cron: '0 0 * * *'
name: Aikido Scan
jobs:
aikido-local-scan-repo:
runs-on: ubuntu-latest
container:
image: aikidosecurity/local-scanner:latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: my-repo
- name: Run scan
run: aikido-local-scanner scan my-repo --apikey ${{ secrets.AIKIDO_API_KEY }} --repositoryname MyRepo --branchname main

GitHub Actionsを使ったスキャンの設定方法の詳細はこちらをご覧ください。
GitHub Actionでschedule オプションを使う方法の詳細はこちらをご覧ください。

GitLabで夜間スキャンを設定する

Section titled “GitLabで夜間スキャンを設定する ”

あらかじめGitLabプロジェクトにパイプラインを設定しておく必要があります。詳細はこちらの記事をご参照ください。
夜間スキャン用のパイプラインを設定したら、次にスケジュールを設定する必要があります。
左サイドバーで「Build」>「Pipeline schedules」を選択してください。
希望する間隔・タイムゾーン・デフォルトブランチをフォームに入力します。「Create pipeline schedule」をクリックすると、概要にスケジュールされたパイプラインが表示されます。

「main」ブランチでの夜間Aikidoスキャンのスケジュール。次回の実行まで21時間。

スケジュールパイプラインの詳細はこちらをご参照ください。

Jenkinsで夜間スキャンを設定する

Section titled “Jenkinsで夜間スキャンを設定する ”

Jenkinsでスケジュールスキャンを設定するには、Build Triggerとして「Build Periodically」を選択します。
以下の例では、毎晩深夜にスキャンをスケジュールします。

cron構文を使って毎日深夜に実行するよう設定されたJenkinsのビルドトリガー。

JenkinsでのLocal Scannerの設定方法の詳細はこちらをご参照ください。

Azure Devopsで夜間スキャンを設定する

Section titled “Azure Devopsで夜間スキャンを設定する”

以下の例は、mainブランチに対して毎晩深夜にスキャンを実行するAzure DevOpsパイプラインを作成します。

trigger: none
schedules:
- cron: "0 0 * * *"
displayName: Nightly Aikido scan
branches:
include:
- main
always: true
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
displayName: 'Run Aikido security scan'

Azure DevOpsでのスケジュールパイプラインの設定方法の詳細はこちらをご参照ください。