Trivy は、コンテナイメージ・フォルダ・リポジトリ・設定ファイルを1つのコマンドで調べる、無料のセキュリティスキャナーです。 依存ライブラリの脆弱性(vuln)、秘密情報(secret)、設定ミス(misconfig)、ライセンス(license)を検出し、SBOM(ソフトウェアの部品表)も出せます。

trivy image python:3.12-slim                                # コンテナイメージ
trivy fs .                                                  # フォルダ(package-lock.json・requirements.txt など)
trivy config .                                              # Dockerfile・Kubernetes・Terraform の設定ミス
trivy fs --severity HIGH,CRITICAL --exit-code 1 .           # 重大なものがあれば CI を失敗させる
trivy fs --format cyclonedx --output sbom.cdx.json .        # SBOM を出す
手元で動かしたこと 結果
trivy config(Dockerfile と Deployment の YAML) Dockerfile 2件、YAML 18件の設定ミスを検出
--severity HIGH,CRITICAL --exit-code 1 HIGH の4件だけを表示し、終了コード 1
.trivyignore で2件を除外(1件は期限付き) 表示が2件に減った。期限切れの除外は効かなかった
秘密情報のスキャン ダミーの GitHub トークンを CRITICAL で検出
SBOM(CycloneDX・SPDX) CycloneDX 1.7・SPDX-2.3 の JSON を出力
requirements.txt の読み取り 既定では == で固定した行だけを部品として認識

確認環境:Trivy 0.75.0(GitHub のリリースから入れ、公開されたチェックサムと照合)、Ubuntu 24.04 で動かしました。設定ミスのスキャンは Trivy に組み込まれたチェックで行い、脆弱性 DB を使うスキャン(trivy image・trivy fs の vuln)の出力の形、trivy-action の入力は公式ドキュメントと README で確かめています(確認日 2026年10月13日)。

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Trivyの使い方|脆弱性スキャン・SBOM出力とGitHub Actions設定」

インストール

方法 コマンド
Linux(リリースのバイナリ) curl -LO https://github.com/aquasecurity/trivy/releases/download/v0.75.0/trivy_0.75.0_Linux-64bit.tar.gz
Mac(Homebrew) brew install trivy
Docker docker run --rm aquasec/trivy:0.75.0 image python:3.12-slim
版の確認 trivy --version

バイナリを入れるときは、同じリリースの trivy_0.75.0_checksums.txt と照合します。

curl -LO https://github.com/aquasecurity/trivy/releases/download/v0.75.0/trivy_0.75.0_checksums.txt
sha256sum --ignore-missing -c trivy_0.75.0_checksums.txt
tar xzf trivy_0.75.0_Linux-64bit.tar.gz trivy && sudo mv trivy /usr/local/bin/

2026年3月、Trivy の配布物を狙った攻撃がありました。 Aqua Security の公表では、3月19日に悪意のある Trivy v0.69.4、trivy-action・setup-trivy のタグの書き換えが行われ、Docker Hub の 0.69.5・0.69.6 のイメージも悪意のあるものでした。公表されたものを使っていないかの確認、版を固定した入れ方、GitHub Actions をコミット SHA で固定すること(後述)が勧められています。

コマンド早見表

スキャンする対象

サブコマンド 対象 例
image コンテナイメージ trivy image python:3.12-slim
image --input docker save した tar trivy image --input app.tar
fs(filesystem) ローカルのフォルダ trivy fs .
repo(repository) Git リポジトリ trivy repo https://github.com/org/app
config 設定ファイル(IaC) trivy config ./k8s
rootfs 展開したルートファイルシステム trivy rootfs /mnt/rootfs
sbom SBOM のファイルを脆弱性スキャン trivy sbom sbom.cdx.json
k8s(kubernetes) 動いているクラスター(試験的) trivy k8s --report summary

trivy image は、Docker が無くても動きます。 --image-src の既定は docker,containerd,podman,remote の順で、ローカルに無ければレジストリから直接取得します。

よく使うオプション

オプション 意味(trivy fs --help より) 例
--scanners 何を検出するか。既定は vuln,secret --scanners vuln,secret,misconfig
-s, --severity 表示する重大度 --severity HIGH,CRITICAL
--exit-code 見つかったときの終了コード(既定 0) --exit-code 1
--ignore-unfixed 修正版のある脆弱性だけを表示 ―
--ignorefile 除外ファイル(既定 .trivyignore) --ignorefile .trivyignore.yaml
-f, --format 出力形式 table・json・sarif・cyclonedx・spdx-json
-o, --output ファイルに書き出す -o result.json
--skip-dirs 調べないフォルダ --skip-dirs node_modules,tests
--pkg-types OS のパッケージか、ライブラリか --pkg-types library
-q, --quiet 進み具合とログを出さない ―
--skip-db-update 脆弱性 DB を更新しない キャッシュ済みの DB で動かす
--cache-dir キャッシュの場所(既定 ~/.cache/trivy) --cache-dir .trivycache

trivy fs の既定は vuln,secret で、設定ミス(misconfig)は入っていません。 Dockerfile や Kubernetes の YAML も一緒に見るときは、--scanners vuln,secret,misconfig を付けるか、trivy config を別に流します。

依存ライブラリの脆弱性をスキャンする

trivy fs --scanners vuln .
trivy image --severity HIGH,CRITICAL --ignore-unfixed python:3.12-slim

結果の表は、公式ドキュメントでは次の列です。

列 読み方
Library 脆弱性のあるライブラリ(OS のパッケージなら Package)
Vulnerability CVE などの ID
Severity 重大度(CRITICAL・HIGH・MEDIUM・LOW・UNKNOWN)
Status fixed(修正版がある)・affected(修正版がまだ無い)など
Installed Version / Fixed Version 今の版 / 直った版。Fixed Version に上げるのが基本の対応

--ignore-unfixed を付けると、修正版がまだ無いものを表示しません。 ドキュメントでは、--ignore-status affected,will_not_fix,fix_deferred,end_of_life と同じ意味です。直す手段が無いものでビルドを止めないために、CI でよく使われます。どのライブラリから入ってきたかを知りたいときは、--dependency-tree(表の形式のときだけ)で依存の木を出せます。

Trivy が部品として認識するもの

フォルダの中のどのファイルから部品(パッケージ)を見つけるかで、スキャンの漏れが変わります。

言語 読むファイルの例 気をつけること
Node.js package-lock.json・yarn.lock・pnpm-lock.yaml・bun.lock package-lock.json の開発用の依存は、--include-dev-deps を付けないと対象外
Python requirements.txt・poetry.lock・uv.lock・Pipfile.lock requirements.txt は == で固定した行だけ
Java pom.xml・JAR など pom.xml は Maven Central に問い合わせる(--offline-scan で止める)

requirements.txt は、版を == で固定した行しか部品として認識されませんでした。 次の3行を置いて SBOM を出すと、部品は Django だけでした。

Django==3.2.0
flask>=2.0
requests~=2.19
[('requirements.txt', None), ('Django', '3.2.0')]

ドキュメントでも、既定では == の行だけを読むと書かれています。--detection-priority comprehensive を付けると、>=・~= の行も「下限の版」として読みました。

$ trivy fs --detection-priority comprehensive --format cyclonedx .
[('requirements.txt', None), ('Django', '3.2.0'), ('flask', '2.0'), ('requests', '2.19')]

ただし、これは「下限の版」で、実際に入る版とは違います。漏れと誤検知を減らすには、pip freeze や uv pip compile で全部の版を固定したファイルか、uv.lock・poetry.lock を作ってからスキャンします。

脆弱性 DB を取れないとき

脆弱性のスキャンには、初回に脆弱性 DB のダウンロードが要ります。 取得先は OCI レジストリで、既定では mirror.gcr.io/aquasec/trivy-db:2、取得できなければ ghcr.io/aquasecurity/trivy-db:2 の順に試します(--db-repository の既定値)。社内のプロキシなどで両方に出られないと、次のエラーで止まります。

INFO  [vulndb] Downloading artifact...  repo="ghcr.io/aquasecurity/trivy-db:2"
FATAL Fatal error  run error: init error: DB error: failed to download vulnerability DB: OCI artifact error:
      failed to download vulnerability DB: failed to download artifact from ghcr.io/aquasecurity/trivy-db:2:
      OCI repository error: 1 error occurred:
    * Get "https://ghcr.io/v2/": Forbidden
対処 やり方
通信を許可する ドキュメントの一覧:mirror.gcr.io・googlecode.l.googleusercontent.com・ghcr.io・pkg-containers.githubusercontent.com
社内のレジストリに置く DB を社内のレジストリに複製し、--db-repository 社内レジストリ/trivy-db:2
取得と実行を分ける 出られるマシンで trivy fs --download-db-only、キャッシュを持ち込んで --skip-db-update
更新の確認・利用データの送信を止める --skip-version-check --disable-telemetry

設定ミスのスキャンは、DB が無くても動きました。 チェックの集まり(checks bundle)の取得に失敗すると、Falling back to embedded checks と出て、バイナリに組み込まれたチェックで続けます(ドキュメントの説明どおり)。

設定ミスをスキャンする(trivy config)

よくある書き方の Dockerfile と、Kubernetes の Deployment をスキャンしました。

FROM python:3.12
COPY . /app
RUN pip install -r /app/requirements.txt
CMD ["python", "/app/main.py"]
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo
spec:
  replicas: 1
  selector:
    matchLabels: { app: demo }
  template:
    metadata:
      labels: { app: demo }
    spec:
      containers:
        - name: app
          image: demo:latest
          securityContext:
            privileged: true
$ trivy config .
Report Summary

┌─────────────────┬────────────┬───────────────────┐
│     Target      │    Type    │ Misconfigurations │
├─────────────────┼────────────┼───────────────────┤
│ Dockerfile      │ dockerfile │         2         │
├─────────────────┼────────────┼───────────────────┤
│ k8s/deploy.yaml │ kubernetes │        18         │
└─────────────────┴────────────┴───────────────────┘

Dockerfile (dockerfile)
=======================
Tests: 27 (SUCCESSES: 25, FAILURES: 2)
Failures: 2 (UNKNOWN: 0, LOW: 1, MEDIUM: 0, HIGH: 1, CRITICAL: 0)

DS-0002 (HIGH): Specify at least 1 USER command in Dockerfile with non-root user as argument
...
KSV-0001 (MEDIUM): Container 'app' of Deployment 'demo' should set 'securityContext.allowPrivilegeEscalation' to false
────────────────────────────────────────
 k8s/deploy.yaml:14-17
────────────────────────────────────────
  14 ┌         - name: app
  15 │           image: demo:latest
  16 │           securityContext:
  17 └             privileged: true

該当する行まで表示されます。 検出された20件のうち、主なものです。

ID 重大度 中身 直し方
DS-0002 HIGH Dockerfile に root 以外の USER が無い USER app を足す
DS-0026 LOW HEALTHCHECK が無い HEALTHCHECK を足す
KSV-0017 HIGH 特権コンテナ(privileged: true) privileged: false
KSV-0014 HIGH ルートファイルシステムが書き込める readOnlyRootFilesystem: true
KSV-0118 HIGH 既定のセキュリティコンテキストのまま securityContext を設定する
KSV-0001 MEDIUM 権限の昇格ができる allowPrivilegeEscalation: false
KSV-0012 MEDIUM root で動く runAsNonRoot: true
KSV-0013 MEDIUM :latest タグ 版のタグか digest で指定
KSV-0011・0018 LOW CPU・メモリの上限が無い resources.limits

Dockerfile を次のように直すと、Dockerfile の検出は 0件になりました。

FROM python:3.12-slim
RUN useradd --create-home --uid 10001 app
WORKDIR /app
COPY --chown=app:app requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY --chown=app:app . .
USER app
HEALTHCHECK --interval=30s --timeout=3s CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/health')"
CMD ["python", "main.py"]

Dockerfile を軽く安全に書く方法は、関連記事「Dockerfileの書き方|軽く・速く・安全なイメージを作るベストプラクティス」で扱っています。

秘密情報をスキャンする

ソースに書いたトークンやパスワードも検出します。 ダミーの GitHub の個人アクセストークン(ghp_ で始まる文字列)を書いたファイルをスキャンしました。

$ trivy fs --scanners secret .
settings.py (secrets)
=====================
Total: 1 (UNKNOWN: 0, LOW: 0, MEDIUM: 0, HIGH: 0, CRITICAL: 1)

CRITICAL: GitHub (github-pat)
════════════════════════════════════════
GitHub Personal Access Token
────────────────────────────────────────
 settings.py:1 (offset: 16 bytes)
────────────────────────────────────────
   1 [ GITHUB_TOKEN = "****************************************"
   2   DEBUG = True

結果の中では、トークンは * で伏せて表示されました。 見つかったトークンは、ファイルから消すだけでなく、発行元で無効にして作り直します。手順は、関連記事「APIキーをGitHubにpushしてしまった時の対処手順」で扱っています。

重大度での絞り込みと終了コード

CI でビルドを止めるかどうかは、--severity と --exit-code の組み合わせで決めます。

$ trivy config -q --severity HIGH,CRITICAL --exit-code 1 .
Dockerfile (dockerfile)
Failures: 1 (HIGH: 1, CRITICAL: 0)
DS-0002 (HIGH): Specify at least 1 USER command in Dockerfile with non-root user as argument
k8s/deploy.yaml (kubernetes)
Failures: 3 (HIGH: 3, CRITICAL: 0)
KSV-0014 (HIGH): ...
KSV-0017 (HIGH): ...
KSV-0118 (HIGH): ...
$ echo $?
1
設定 見つかったとき 使い方
指定なし 表示するだけ、終了コード 0 手元で全体を見る
--exit-code 1 すべての重大度で 1 小さく始めると止まりすぎる
--severity HIGH,CRITICAL --exit-code 1 HIGH 以上だけ表示し、あれば 1 CI の基本の形
+ --ignore-unfixed 修正版のある HIGH 以上だけで 1 直せないもので止めない

--severity は「表示する重大度」と「終了コードを決める対象」の両方に効きます。 手元では、HIGH・CRITICAL に絞ると LOW・MEDIUM の16件は表示されませんでした。LOW の検出(DS-0026)だけがある Dockerfile では、--severity HIGH,CRITICAL --exit-code 1 の終了コードは 0 でした。

.trivyignore で除外する

誤検知や、理由があって直さないものは .trivyignore に ID を書いて除外します。 1行に1つの ID を書き、# から後はコメントです。exp:日付 を付けると、その日を過ぎたら除外が切れます。

# 理由:ベースイメージ側で USER を設定済み(チケット SEC-12)
DS-0002
# 期限付きで除外(この日を過ぎると再び検出される)
KSV-0118 exp:2026-12-31
CVE-2024-12345
書いたもの 結果(手元で確かめた)
DS-0002・KSV-0118 exp:2026-12-31 HIGH の4件が 2件(KSV-0014・KSV-0017)に減った
KSV-0118 exp:2025-01-01(期限切れ) 除外されず、KSV-0118 が表示された

ID は、Trivy 0.75.0 の出力では DS-0002 の形でした。 少し前の版のドキュメントでは AVD-DS-0002 の形で書かれています。出力に出た ID をそのまま書きます。

.trivyignore.yaml(ファイル・理由ごとに除外)

YAML の形にすると、「このファイルだけ」「理由」「期限」を書けます。 ドキュメントでは試験的な機能で、--ignorefile で指定したときだけ読まれます。

misconfigurations:
  - id: KSV-0014
    paths:
      - "k8s/deploy.yaml"
    statement: 書き込みが要るため。対応はチケット SEC-15
    expired_at: 2026-12-31
vulnerabilities:
  - id: CVE-2024-12345
    purls:
      - "pkg:npm/lodash@4.17.15"
    statement: 該当の関数を使っていない
trivy config --ignorefile .trivyignore.yaml .

手元では、KSV-0014 だけが表示されなくなりました。除外には必ず理由と期限を書き、レビューで見てもらいます。 期限が無い除外は、直す機会を失いがちです。

SBOM を出す(CycloneDX・SPDX)

SBOM(Software Bill of Materials)は、ソフトウェアに入っている部品(ライブラリと版)の一覧です。 後から新しい脆弱性が公表されたときに、「どのシステムが影響を受けるか」をすぐに調べられます。

trivy fs --format cyclonedx --output sbom.cdx.json .       # CycloneDX
trivy fs --format spdx-json --output sbom.spdx.json .      # SPDX(JSON)
trivy image --format cyclonedx --output sbom.cdx.json python:3.12-slim
trivy sbom sbom.cdx.json                                   # SBOM から脆弱性を調べる

package-lock.json(lodash・minimist)と requirements.txt(Django・requests・PyYAML)を置いたフォルダから出した結果です。

形式 版 中身
CycloneDX 1.7(bomFormat: CycloneDX) 部品 7(ファイル2+ライブラリ5)、purl 付き
SPDX SPDX-2.3 パッケージ 8
application requirements.txt
application package-lock.json
library lodash 4.17.15 pkg:npm/lodash@4.17.15
library minimist 1.2.5 pkg:npm/minimist@1.2.5
library Django 3.2.0 pkg:pypi/django@3.2.0
library PyYAML 5.3 pkg:pypi/pyyaml@5.3
library requests 2.19.0 pkg:pypi/requests@2.19.0

purl(Package URL)は、部品を言語をまたいで一意に表す書き方です。 脆弱性 DB や .trivyignore.yaml の purls で、部品を指すときに使います。

形式 主な使われ方
CycloneDX OWASP の形式。脆弱性の情報も同じファイルに持てる
SPDX Linux Foundation の形式(ISO/IEC 5962)。ライセンスの管理でよく使われる

SBOM を作るだけなら、脆弱性 DB は要りませんでした。 部品の一覧は、手元のファイルから作られるためです。

GitHub Actions の雛形

trivy-action は、GitHub Actions から Trivy を動かすための公式のアクションです。 2026年10月13日時点の最新のタグは v0.36.0 です。2026年3月にタグが書き換えられた件があったので、タグではなく、コミット SHA で固定します。 v0.36.0 のコミット SHA は git ls-remote で確かめました。

git ls-remote https://github.com/aquasecurity/trivy-action 'refs/tags/v0.36.0*'
# ed142fd0673e97e23eac54620cfb913e5ce36c25  refs/tags/v0.36.0^{}   ← この値を使う

プルリクエストで依存と設定をスキャンする

name: trivy
on:
  pull_request:
  push:
    branches: [main]
  schedule:
    - cron: "0 0 * * 1"          # 毎週月曜(新しく公表された脆弱性に気づくため)

permissions:
  contents: read

jobs:
  scan:
    runs-on: ubuntu-24.04
    permissions:
      contents: read
      security-events: write      # SARIF のアップロードに要る
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

      - name: 依存・秘密情報・設定ミス(HIGH 以上で失敗)
        uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0
        with:
          scan-type: fs
          scan-ref: .
          scanners: vuln,secret,misconfig
          severity: HIGH,CRITICAL
          ignore-unfixed: true
          exit-code: "1"
          trivyignores: .trivyignore

      - name: 結果を SARIF で出す(失敗しても続ける)
        if: always()
        uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0
        with:
          scan-type: fs
          scan-ref: .
          scanners: vuln,secret,misconfig
          format: sarif
          output: trivy-results.sarif
          skip-setup-trivy: true

      - name: GitHub の Security タブに送る
        if: always()
        uses: github/codeql-action/upload-sarif@24c54180a607b1449ed407dd24f251e4e9147c8d # v4.38.3
        with:
          sarif_file: trivy-results.sarif

イメージをビルドしてスキャンし、SBOM を残す

  image:
    runs-on: ubuntu-24.04
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - run: docker build -t app:${{ github.sha }} .

      - name: イメージの脆弱性(HIGH 以上で失敗)
        uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0
        with:
          image-ref: app:${{ github.sha }}
          severity: HIGH,CRITICAL
          ignore-unfixed: true
          exit-code: "1"

      - name: SBOM(CycloneDX)
        if: always()
        uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0
        with:
          image-ref: app:${{ github.sha }}
          format: cyclonedx
          output: sbom.cdx.json
          skip-setup-trivy: true

      - uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
        if: always()
        with:
          name: sbom
          path: sbom.cdx.json
入力 既定値(README) 意味
scan-type image image・fs・repo・config など
scan-ref /github/workspace/ fs・repo などで調べる場所
image-ref なし image のときのイメージ名
severity すべて 表示・判定する重大度
exit-code 0 見つかったときの終了コード
ignore-unfixed false 修正版の無いものを除く
format / output table / なし sarif・json・cyclonedx など/書き出すファイル
trivyignores なし .trivyignore をカンマ区切りで(YAML なら1つ)
version v0.74.0 使う Trivy の版
skip-setup-trivy false 2回目以降の呼び出しで、入れ直しを省く
limit-severities-for-sarif false true で SARIF にも severity を効かせる

SARIF の出力には、既定では severity が効きません。 README のとおり、SARIF にもすべての重大度が入ります(手元の trivy config -f sarif でも、20件すべてが入りました)。Security タブには全件を出し、ビルドの失敗は HIGH 以上で決める、という分け方ができます。

version の既定は README では v0.74.0 で、Trivy 本体の最新(v0.75.0)とは一致しません。 本体の版をそろえたいときは、version: v0.75.0 のように指定します。GitHub Actions の基本は関連記事「CI/CDとは|GitHub Actionsで最初のパイプラインを作るまで」で、キャッシュは「GitHub Actionsのキャッシュとmatrix|コピペ用YAMLとキー設計」で扱っています。

よくある質問

Q. 検出が多すぎて、どれから直せばよいか分かりません。 A. --severity HIGH,CRITICAL --ignore-unfixed で、「重大で、直す手段があるもの」に絞ってから始めます。脆弱性はライブラリの版上げでまとめて消えることが多いので、Library 列でまとめて見ます。

Q. ベースイメージの OS のパッケージの脆弱性が大量に出ます。 A. -slim・distroless などの小さいベースイメージにすると、入っているパッケージが減り、検出も減ります。アプリのライブラリだけを見たいときは --pkg-types library を使います。

Q. 毎回 DB をダウンロードして遅いです。 A. trivy-action は README ではキャッシュが既定で有効です。自分で動かすときは --cache-dir をキャッシュの対象にします。

Q. 社内のネットワークから DB を取得できません。 A. 「脆弱性 DB を取れないとき」の表のとおり、通信の許可、社内のレジストリへの複製、--download-db-only と --skip-db-update の組み合わせがあります。

まとめ

  • trivy image・trivy fs・trivy config で、イメージ・フォルダ・設定ファイルを調べる。fs の既定は vuln,secret
  • CI は --severity HIGH,CRITICAL --ignore-unfixed --exit-code 1 が基本の形。--severity は表示と終了コードの両方に効く
  • requirements.txt は == で固定した行だけが部品になる。ロックファイルを作ってからスキャンする
  • 除外は .trivyignore(exp: で期限)か .trivyignore.yaml(ファイル・理由ごと)。期限切れは効かなくなる
  • SBOM は --format cyclonedx / spdx-json。作るだけなら DB は要らない
  • GitHub Actions は trivy-action v0.36.0 をコミット SHA で固定し、SARIF は if: always() で送る

参考・出典

確認日はいずれも 2026年10月13日です。

  • Trivy リリース(v0.75.0):https://github.com/aquasecurity/trivy/releases
  • Trivy ドキュメント「Filtering」(.trivyignore・.trivyignore.yaml・--ignore-unfixed):https://trivy.dev/docs/latest/configuration/filtering/
  • Trivy ドキュメント「Python」(requirements.txt の読み方):https://trivy.dev/docs/latest/coverage/language/python/
  • Trivy ドキュメント「Node.js」:https://trivy.dev/docs/latest/coverage/language/nodejs/
  • Trivy ドキュメント「Reporting」:https://trivy.dev/docs/latest/configuration/reporting/
  • Trivy ドキュメント「Air-Gapped Environment」:https://trivy.dev/docs/latest/guide/advanced/air-gap/
  • Trivy ドキュメント「Troubleshooting」:https://trivy.dev/docs/latest/guide/references/troubleshooting/
  • aquasecurity/trivy-action(README):https://github.com/aquasecurity/trivy-action
  • Aqua Security「Trivy Supply Chain Attack: What You Need to Know」:https://www.aquasec.com/blog/trivy-supply-chain-attack-what-you-need-to-know

本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。

(記載例)出典:株式会社RJC「Trivyの使い方|脆弱性スキャン・SBOM出力とGitHub Actions設定」

株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。

WE ARE HIRING

RJCで一緒に開発しながら、
成長を楽しみませんか?

RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!

  • 127日年間休日
  • 12時間平均残業時間
  • 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!

ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。

ABOUT RJC RJCがどんな会社か知る 考え方、研修、働き方、福利厚生、社員の前職まで。RJCのことが丸わかり! RJC丸わかりページへ JOB DESCRIPTION 仕事内容・待遇を見てみる 仕事内容、給与・待遇、選考の流れ。経験者も未経験も!応募前に知りたいこと、まとめました! 募集要項を見る ENTRY エントリーする エントリーは1〜2分・履歴書不要です。まずは話を聞いてみたい、という方でも歓迎です! エントリーフォームへ

RJCで一緒に開発しながら、 成長を楽しみませんか?