Local Image ScanningのGitLabセットアップ
Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、データが環境の外に出ることはありません。スキャンはローカルで行われ、結果はその後Aikido Securityプラットフォームにアップロードされます。この仕組みにより、レジストリに送信する前に、自分のマシン上またはCI/CDパイプライン内でイメージをローカルにスキャンできます。
イメージのLocal Scanningをセットアップする方法
Section titled “イメージのLocal Scanningをセットアップする方法 ”1. 認証トークンを取得する
Section titled “1. 認証トークンを取得する ”-
Local Scanner Imageのセットアップページにアクセスします
-
認証トークンを生成してコピーします。このトークンは一度しか表示されない点にご注意ください。
-
プロジェクトでLocal Scannerを実行する際に、このトークンを引数
--apikeyとして追加します。 -
パイプラインで使用できるように、認証トークンをGitlabのCI/CD変数に追加します。
そのためには、グループの設定ページに移動し、CI/CDサブページに進む必要があります。
variablesの横にある「Expand」をクリックし、「Add variable」をクリックします。その後、キーに
AIKIDO_LOCAL_SCANNER_TOKEN、値にコピーしたトークンの内容を指定して認証トークンを追加できます。
2. Local Scannerを実行する
Section titled “2. Local Scannerを実行する ”
あとはイメージに対してスキャナーを実行するだけです。以下のサンプルファイルを参考にしてください。
default: image: docker:cli services: - docker:dind
run_aikido_selfscanner: script: - docker build ... - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey $AIKIDO_LOCAL_SCANNER_TOKEN - if: $CI_COMMIT_BRANCH == "main"CIでこれを実行する場合は、フィーチャーブランチをベースにしたイメージに対してスキャンを実行しないよう注意してください。これにより、Aikido内でproductionとフィーチャーの結果が混在するのを防げます。
レジストリへのプッシュ前にリリースゲーティングされたスキャンを実行するには、以下のようなパイプラインを実行できます。
default: image: docker:cli services: - docker:dind
run_aikido_selfscanner: script: - docker build ... - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock aikidosecurity/local-scanner image-scan your-local-image-name --apikey $AIKIDO_LOCAL_SCANNER_TOKEN --fail-on critical - docker push ... - if: $CI_COMMIT_BRANCH == "main"--fail-onで指定するseverityは、必要に応じて調整してください。
4. スキャン結果を確認する
Section titled “4. スキャン結果を確認する ”最初のスキャンが完了したら、Aikido Feedにアクセスして結果を確認できます。指定した名前のイメージがAikido UI内に作成され、スキャンのすべての結果が含まれています。