コンテンツにスキップ

Local Image ScanningのGitLabセットアップ

Aikido Security Local Scannerは、お使いの環境内でAikido Securityのスキャンを実行できるツールで、データが環境の外に出ることはありません。スキャンはローカルで行われ、結果はその後Aikido Securityプラットフォームにアップロードされます。この仕組みにより、レジストリに送信する前に、自分のマシン上またはCI/CDパイプライン内でイメージをローカルにスキャンできます。

イメージのLocal Scanningをセットアップする方法

Section titled “イメージのLocal Scanningをセットアップする方法 ”
  1. Local Scanner Imageのセットアップページにアクセスします

  2. 認証トークンを生成してコピーします。このトークンは一度しか表示されない点にご注意ください。

  3. プロジェクトでLocal Scannerを実行する際に、このトークンを引数--apikeyとして追加します。

  4. パイプラインで使用できるように、認証トークンをGitlabのCI/CD変数に追加します。
    そのためには、グループの設定ページに移動し、CI/CDサブページに進む必要があります。

    変数、Runner、Auto DevOpsの自動化を管理するGitLab CI/CD設定ページ。

    variablesの横にある「Expand」をクリックし、「Add variable」をクリックします。その後、キーにAIKIDO_LOCAL_SCANNER_TOKEN、値にコピーしたトークンの内容を指定して認証トークンを追加できます。


あとはイメージに対してスキャナーを実行するだけです。以下のサンプルファイルを参考にしてください。

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は、必要に応じて調整してください。

最初のスキャンが完了したら、Aikido Feedにアクセスして結果を確認できます。指定した名前のイメージがAikido UI内に作成され、スキャンのすべての結果が含まれています。