Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
trivy-action — TrivyをGitHub Actionとして実行し、Dockerコンテナイメージを脆弱性スキャンします。 | Kitploit
ツール/GitHubGitHub/aquasecurity/trivy-action
脆弱性スキャナーコンテナセキュリティコード分析クラウドセキュリティDevSecOpsシークレット検出サプライチェーンセキュリティ設定ミス
GitHubaquasecurity/trivy-action

trivy-action

TrivyをGitHub Actionとして実行し、Dockerコンテナイメージを脆弱性スキャンします。

リポジトリを見る
1.4k357271ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Trivy Action

GitHub Action のための Trivy

[![GitHub Release][release-img]][release] [![GitHub Marketplace][marketplace-img]][marketplace] [![License][license-img]][license]

目次

  • 使用法
    • CI パイプラインのスキャン
    • CI パイプラインのスキャン(Trivy 設定あり)
    • キャッシュ
    • Trivy のセットアップ
    • Tarball のスキャン
    • テンプレートを使用した Trivy の利用
    • GitHub Code Scanning を使用した Trivy の利用
    • Trivy を使用した Git リポジトリのスキャン
    • Trivy を使用した rootfs ディレクトリのスキャン
    • Trivy を使用した Infrastructure as Code のスキャン
    • Trivy を使用した SBOM の生成
    • Trivy を使用したプライベートレジストリのスキャン
    • コードスキャンが有効でない場合の Trivy の利用
  • カスタマイズ
    • 入力
    • 環境変数
    • Trivy 設定ファイル

使用法

CI パイプラインのスキャン```yaml

name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4 - name: Build an image from Dockerfile run: docker build -t docker.io/my-organization/my-app:${{ github.sha }} . - name: Run Trivy vulnerability scanner uses: aquasecurity/[email protected] with: image-ref: 'docker.io/my-organization/my-app:${{ github.sha }}' format: 'table' exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH'

### CIパイプラインのスキャン(Trivy Config付き)```yaml
name: build
on:
  push:
    branches:
    - main
  pull_request:
jobs:
  build:
    name: Build
    runs-on: ubuntu-24.04
    steps:
    - name: Checkout code
      uses: actions/checkout@v4

    - name: Run Trivy vulnerability scanner in fs mode
      uses: aquasecurity/[email protected]
      with:
        scan-type: 'fs'
        scan-ref: '.'
        trivy-config: trivy.yaml

この場合、trivy.yaml はリポジトリの一部としてチェックインされているYAML設定です。詳細はTrivyのウェブサイトで入手できますが、例は以下の通りです:```yaml format: json exit-code: 1 severity: CRITICAL secret: config: config/trivy/secret.yaml

すべてのオプションは `trivy.yaml` ファイルで定義することが可能です。アクションを介して個々のオプションを指定することは、後方互換性を保つために残されています。次に示すものは、設定ファイルでは定義できないため、指定が必要です:
- `scan-ref`: `fs, repo` スキャンを使用する場合。
- `image-ref`: `image` スキャンを使用する場合。
- `scan-type`: スキャンタイプを定義するため(例:`image`, `fs`, `repo` など)。

#### オプションの優先順位
Trivy は [Viper](https://github.com/spf13/viper) を使用しており、オプションの優先順位が定義されています。順序は次の通りです:
- GitHub Action フラグ
- 環境変数
- 設定ファイル
- デフォルト

### キャッシュ
このアクションには、スキャン中にダウンロードされた [脆弱性 DB](https://github.com/aquasecurity/trivy-db)、[Java DB](https://github.com/aquasecurity/trivy-java-db)、[チェックバンドル](https://github.com/aquasecurity/trivy-checks) をキャッシュして復元する機能が組み込まれています。
キャッシュはデフォルトで `$GITHUB_WORKSPACE/.cache/trivy` ディレクトリに保存されます。
キャッシュはスキャン開始前に復元され、スキャン終了後に保存されます。

内部では [actions/cache](https://github.com/actions/cache) を使用していますが、必要な設定は少なくなっています。
キャッシュ入力はオプションであり、デフォルトでキャッシュは有効になっています。

#### キャッシュの無効化
キャッシュを無効にする場合は、`cache` 入力を `false` に設定します。ただし、レート制限の問題を避けるため、有効にしておくことを推奨します。```yaml
    - name: Run Trivy scanner without cache
      uses: aquasecurity/[email protected]
      with:
        scan-type: 'fs'
        scan-ref: '.'
        cache: 'false'

デフォルトブランチのキャッシュを更新する

GitHub Actions では、ブランチ間のキャッシュアクセスに関する制限があることに注意してください。 デフォルトでは、ワークフローは現在のブランチまたはデフォルトブランチ(通常は main または master)のいずれかで作成されたキャッシュにアクセスして復元できます。 ブランチ間でキャッシュを共有する必要がある場合は、デフォルトブランチにキャッシュを作成し、現在のブランチで復元する必要があるかもしれません。

ワークフローを最適化するために、cronジョブを設定してデフォルトブランチのキャッシュを定期的に更新することができます。 これにより、後続のスキャンでキャッシュされたDBを再度ダウンロードせずに使用できるようになります。```yaml

Note: This workflow only updates the cache. You should create a separate workflow for your actual Trivy scans.

In your scan workflow, set TRIVY_SKIP_DB_UPDATE=true and TRIVY_SKIP_JAVA_DB_UPDATE=true.

name: Update Trivy Cache

on: schedule: - cron: '0 0 * * *' # Run daily at midnight UTC workflow_dispatch: # Allow manual triggering

jobs: update-trivy-db: runs-on: ubuntu-latest steps: - name: Setup oras uses: oras-project/setup-oras@v1

  - name: Get current date
    id: date
    run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT

  - name: Download and extract the vulnerability DB
    run: |
      mkdir -p $GITHUB_WORKSPACE/.cache/trivy/db
      oras pull ghcr.io/aquasecurity/trivy-db:2
      tar -xzf db.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/db
      rm db.tar.gz

  - name: Download and extract the Java DB
    run: |
      mkdir -p $GITHUB_WORKSPACE/.cache/trivy/java-db
      oras pull ghcr.io/aquasecurity/trivy-java-db:1
      tar -xzf javadb.tar.gz -C $GITHUB_WORKSPACE/.cache/trivy/java-db
      rm javadb.tar.gz

  - name: Cache DBs
    uses: actions/cache/save@v4
    with:
      path: ${{ github.workspace }}/.cache/trivy
      key: cache-trivy-${{ steps.date.outputs.date }}
スキャンを実行する際に、ダウンロードプロセスをスキップするために、環境変数 `TRIVY_SKIP_DB_UPDATE` と `TRIVY_SKIP_JAVA_DB_UPDATE` を設定してください。```yaml
    - name: Run Trivy scanner without downloading DBs
      uses: aquasecurity/[email protected]
      with:
        scan-type: 'image'
        scan-ref: 'myimage'
      env:
        TRIVY_SKIP_DB_UPDATE: true
        TRIVY_SKIP_JAVA_DB_UPDATE: true

Trivy のセットアップ

デフォルトでは、アクションは最初のステップとしてaquasecurity/setup-trivyを呼び出し、version入力で指定されたtrivyバージョンをインストールします。既に別の方法でtrivyをインストールしている場合(例えば、直接aquasecurity/setup-trivyを呼び出した場合)、またはこのアクションを複数回呼び出す場合は、skip-setup-trivy入力を使用してこのステップを無効にできます。

Trivy を手動でセットアップする```yaml

name: build on: push: branches: - main pull_request: jobs: build: name: Build runs-on: ubuntu-24.04 steps: - name: Checkout code uses: actions/checkout@v4

- name: Manual Trivy Setup
  uses: aquasecurity/[email protected]
  with:
    cache: true
    version: v0.72.0

- name: Run Trivy vulnerability scanner in repo mode
  uses: aquasecurity/[email protected]
  with:
    scan-type: 'fs'
    ignore-unfixed: true
    format: 'sarif'
    output: 'trivy-results.sarif'
    severity: 'CRITICAL'
    skip-setup-trivy: true
#### 複数回Trivy Actionを呼び出す際のセットアップをスキップする
もう一つの一般的なユースケースは、ビルドがこのアクションを複数回呼び出す場合です。その場合、以降の呼び出しでは `skip-setup-trivy` を `true` に設定できます。例:```yaml
name: build

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: Check out Git repository
        uses: actions/checkout@v4

      # The first call to the action will invoke setup-trivy and install trivy
      - name: Generate Trivy Vulnerability Report
        uses: aquasecurity/[email protected]
        with:
          scan-type: "fs"
          output: trivy-report.json
          format: json
          scan-ref: .
          exit-code: 0

      - name: Upload Vulnerability Scan Results
        uses: actions/upload-artifact@v4
        with:
          name: trivy-report
          path: trivy-report.json
          retention-days: 30
ツールをダウンロード