日本語

Local Image ScanningのGitLab設定

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

イメージのローカルスキャンを設定する方法

1. 認証トークンを取得する

  1. へ移動 Local Scanner Image 設定ページ

  2. 認証トークンを生成してコピーします。このトークンを表示できるのは 1 回だけです。

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

  4. 認証トークンを GitLab の CI/CD 変数に追加して、パイプラインで使用できるようにします。
    これを行うには、グループの Settings ページに移動し、次に CI/CD サブページ。

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

    変数の横にある「展開」をクリックし、「変数を追加」をクリックします。次に、認証トークンを AIKIDO_LOCAL_SCANNER_TOKEN をキーとして、コピーしたトークンの内容を値として追加します。

2. ローカルスキャナーの実行

​
これで、あとはイメージに対してスキャナーを実行するだけです。ガイドとしてこのサンプルファイルを使えます:

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 でこれを実行する場合は、feature ブランチ आधारितのイメージに対してスキャンを実行しないよう注意してください。Aikido で本番環境の結果と feature の結果が混ざらないようにするためです。

レジストリにプッシュする前にリリースゲート付きのスキャンを実行するには、次のようなパイプラインを実行できます:

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 ニーズに合わせてください。

4. スキャン結果を確認する

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