Skip to content
blog.kenichikat.me
Go back

SnykでSAST/SCAを実行する

Snyk導入(SCA + SAST)についてまとめたメモです。

目的

PR 作成時に以下を自動チェックする。

Snyk アカウント作成

  1. https://app.snyk.io/ にアクセスする。
  2. Sign up からアカウントを作成する(GitHubアカウントで作成するとrepo連携が楽です)。
  3. ログイン後、Organizationを作成または選択する。

GitHub 連携(repo アクセス設定)

  1. Snyk 側で GitHub Integration を有効化する。
  2. アクセス対象リポジトリを選択する。
  3. Snyk の対象 Organization でリポジトリを Import する。
  4. Snyk Code(SAST)を Organization 設定で有効化する。

補足:

現在の Workflow 挙動

トリガー:

実行条件:

ジョブ内ステップ:

  1. actions/checkout@v5
  2. pnpm/action-setup@v4
  3. actions/setup-node@v5(Node 24.14.1
  4. pnpm install --frozen-lockfile
  5. snyk/actions/node@master + command: test(SCA)
  6. snyk/actions/node@master + command: code test(SAST)

.github/workflows/snyk-pr.yml

name: Snyk PR Check

on:
  pull_request:
    types:
      - opened
      - synchronize
      - reopened
      - ready_for_review

permissions:
  contents: read

jobs:
  snyk:
    name: Snyk Dependency Scan
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Setup Node.js
        uses: actions/setup-node@v5
        with:
          node-version: 24.14.1
          cache: pnpm

      - name: Install dependencies
        run: pnpm install --frozen-lockfile

      - name: Run Snyk test
        uses: snyk/actions/node@master
        with:
          command: test
          args: --org=${{ secrets.SNYK_ORG_ID }}
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

      - name: Run Snyk Code test
        uses: snyk/actions/node@master
        with:
          command: code test
          args: --org=${{ secrets.SNYK_ORG_ID }}
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

必要な GitHub Secrets

現在のWorkflow設定では以下が必要です。

補足:

参考: 現在のWorkflow

運用メモ

確認手順

  1. GitHubの対象リポジトリにSNYK_TOKENSNYK_ORG_IDを登録
  2. 任意のブランチでPRを作成
  3. ActionsでSnyk PR Checkを確認
  4. Run Snyk test(SCA)と Run Snyk Code test(SAST)が実行されることを確認

Share this post on:

Previous Post
過去日付でコミットしてgithubの草を生やした話
Next Post
SASTとDASTの違いを簡単に整理