日本語

Local Image ScanningのGitHub Actions設定

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

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

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

  1. Local Scanner Imageセットアップページにアクセスします
  2. 認証トークンを生成してコピーします。このトークンは一度しか表示されないことに注意してください。
  3. プロジェクトでLocal Scannerを実行する際に、このトークンを引数 --apikey として追加します。
  4. Settings > Secrets and variables > Actions に移動し、このトークンをGitHub Secretsに保存します。

APIキーのエントリと追加オプションが表示されたGitHubリポジトリのシークレット画面。

2. Local Scannerを実行する

あとは、.github/workflows フォルダに新しいYAMLファイルを追加し、イメージに対してスキャナーを実行するだけです。以下にいくつかの例を示します。

イメージのビルドとスキャン:

name: Aikido Docker build and scan

on:
  push:
    branches:
      - main

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build Docker image
        run: docker build -t your-local-image-name .

      - name: Run Aikido image scan
        run: |
          docker run --rm \
            -v /var/run/docker.sock:/var/run/docker.sock \
            aikidosecurity/local-scanner \
            image-scan your-local-image-name \
            --apikey ${{ secrets.AIKIDO_API_KEY }}

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

name: Aikido Docker build and scan

on:
  push:
    branches:
      - main

jobs:
  build-and-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Build Docker image
        run: docker build -t your-local-image-name .

      - name: Run Aikido image scan
        run: |
          docker run --rm \
            -v /var/run/docker.sock:/var/run/docker.sock \
            aikidosecurity/local-scanner \
            image-scan your-local-image-name \
            --apikey ${{ secrets.AIKIDO_API_KEY }} --fail-on critical

--fail-on で指定する重大度は、ニーズに合わせて調整してください。

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

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