クラウドサービス

Artifact Analysis

コンテナイメージやパッケージの脆弱性を自動スキャンし、署名や検証結果のメタデータを集約。Artifact Registry と連携してサプライチェーンを守る。Amazon Inspector に相当。

中級セキュリティ運用上の優秀性
最終更新: 2026-07-29公式ドキュメント
3つの要点
TL;DR
  1. Artifact Registry への登録時または要求時に、イメージやパッケージの既知脆弱性を検出する。
  2. 結果をノートとオカレンスに分け、同じダイジェストを脆弱性情報の更新後も再評価する。
  3. 証明と Binary Authorization を組み合わせ、検査済みの成果物だけを配布経路へ通す。

解決する課題

ビルドして保管したコンテナイメージやパッケージには、後から発覚する OS パッケージや言語ライブラリの脆弱性が潜みます。これを人手で追跡するのは現実的でなく、古いイメージほど見落とされがちです。Artifact Analysis は、レジストリ内のアーティファクトを自動でスキャンして既知の脆弱性を可視化し、デプロイ前の関門と組み合わせてサプライチェーンを守ります。

  • レジストリへプッシュしたイメージを自動でスキャンし、既知の脆弱性を早期に把握したい
  • 一度スキャンしたイメージも、新しい脆弱性情報が出たら継続的に再評価してほしい
  • OS パッケージだけでなく 言語パッケージ(Go・Java・Python など)の依存も含めて検査したい
  • 脆弱性の有無や署名などの情報をメタデータとして一元管理し、CI/CD や監査から参照したい
  • 危険なイメージが本番へ流れないよう、スキャン結果を根拠にデプロイを止めたい

主要概念と用語

  • スキャン(scanning): イメージやパッケージを解析し、含まれるコンポーネントと既知の脆弱性を突き合わせる処理
  • 自動スキャン(automatic / on-push scanning): レジストリへのプッシュを契機に自動で走るスキャン。新たな脆弱性情報が出ると既存イメージも継続的に再評価される
  • オンデマンドスキャン(on-demand scanning): ローカルのイメージや CI 内のイメージを、レジストリへ保存する前に明示的に実行するスキャン
  • 脆弱性(vulnerability): 検出された既知の問題。CVE 識別子と深刻度(Critical/High など)を持つ
  • ノート(note): 脆弱性の定義など「種類」を表すメタデータの親。脆弱性データソース側が保持する
  • オカレンス(occurrence): 特定のアーティファクトにそのノートが現れた「実例」。あるイメージに対する個々の検出結果がこれにあたる
  • 来歴・証明(provenance / attestation): そのイメージがどう作られ、誰が検証したかを示す署名付きメタデータ。Binary Authorization の判断材料になる
  • Container Scanning API / Container Analysis API: スキャン実行とメタデータ参照を担う API 群。Artifact Analysis はこれらを束ねた呼称

仕様・制限・クォータ

  • 自動スキャンは Artifact Registry に保存されたアーティファクトを対象とする(旧 Container Registry も一部対象)
  • 検出対象は OS パッケージの脆弱性に加え、言語パッケージの依存にも対応する(対応言語は拡張されてきている)
  • コンテナイメージは、直近 30 日以内にプルされている間は新しい脆弱性情報で継続評価される。30 日を超えると古い状態(stale)、90 日を超えるとアーカイブ状態になり、継続評価の対象外となる
  • コンテナ外の言語パッケージを対象にするパッケージスキャンは、Artifact Registry のリポジトリごとに明示的に有効化する。既定では無効で、同じパッケージを複数リポジトリへ置いても重複排除されない
  • 結果は Container Analysis のメタデータ(ノート/オカレンス) として保存され、API・gcloud・コンソールから取得できる
  • オンデマンドスキャンは、レジストリ保存前のイメージにも使え、CI のゲートとして組み込める
  • 自動スキャンには Container Scanning API、オンデマンドスキャンには On-Demand Scanning API をそれぞれ有効化する。深刻度の定義や対応範囲は更新されうる

内部の仕組み

横にスクロール

Artifact Registry への登録から成分抽出、脆弱性照合、オカレンス生成、デプロイ判定までの処理経路
タグではなくダイジェストを軸に、検出結果と証明をデプロイ関門へ渡す

Artifact Analysis は、レジストリ内のアーティファクトを解析して含まれるコンポーネント一覧(パッケージとバージョン)を抽出し、それを脆弱性データソースと突き合わせて検出結果を生成します。検出結果は「種類」を表すノートと、特定イメージへの「実例」を表すオカレンスという2階層のメタデータとして保存され、API から横断的に照会できます。

  • プッシュを契機に自動スキャンが走り、抽出したコンポーネントを既知の脆弱性情報と照合する
  • 脆弱性データベースが更新されると、過去にスキャン済みのイメージも再評価され、新たに該当した脆弱性がオカレンスとして追加される
  • スキャン結果のほか、ビルドの来歴やデプロイ可否の判断に使う証明(attestation) も同じメタデータ基盤に集約できる
  • 蓄積したメタデータは Binary Authorization が参照し、ポリシーに反するイメージのデプロイをブロックできる

AWS でいえば、Amazon Inspector のコンテナイメージスキャン(Amazon ECR と連携した自動・継続スキャン)が役割として近く、結果メタデータを基にデプロイ関門と連携させる発想も共通します。

設計パターン / ベストプラクティス

  • プッシュ時の自動スキャンを有効化し、レジストリに入った時点で脆弱性を可視化する
  • CI ではオンデマンドスキャンをビルド直後に実行し、危険なイメージはレジストリへ保存する前に弾く
  • スキャン結果を Binary Authorization のポリシーと組み合わせ、一定深刻度以上の脆弱性を含むイメージはデプロイさせない
  • イメージはダイジェスト(sha256)で参照し、どのイメージのスキャン結果かを一意に追跡する
  • 古い脆弱なイメージを残さないよう、Artifact Registry のクリーンアップポリシーで世代管理する
  • 継続再評価を活かすため、稼働中イメージは定期的にプル/再デプロイして有効期間内に保つ
CI ゲートとレジストリ常時監視の併用

オンデマンドスキャンを CI の関門に、自動スキャンをレジストリの常時監視に使い分けると、入口で弾きつつ保管後に判明した脆弱性も拾えます。両者は排他ではなく、組み合わせて多層で守るのが定石です。

運用・監視

  • スキャン結果はコンソールの Artifact Registry / Artifact Analysis 画面で深刻度別に確認できる
  • 脆弱性の検出は Pub/Sub への通知として受け取り、Slack 連携や自動チケット起票など後続処理につなげられる
  • 新規/更新されたオカレンスを起点に、該当イメージの棚卸しやパッチ適用済みイメージの再ビルドを運用フローに組み込む
  • 検出メタデータは gcloud / API から取得でき、ダッシュボードや定期レポートに集約できる
  • よくあるつまずきは Container Scanning API の未有効化と、継続再評価の有効期間切れによる古いイメージの未反映

コスト

自動スキャンは一意なダイジェストの初回、オンデマンドスキャンは実行ごとに 1 件 0.26 米ドルです。同じコンテナダイジェストの再評価やタグ変更には再課金されません。コンテナ外パッケージは複数リポジトリへ同じ内容を置いても重複排除されないため、配置ごとに課金されます。

不要なイメージを減らすのが効く

課金単位はタグ数やレイヤー数ではなく、初回に検出した一意なダイジェストです。不要世代の整理は保管費と調査対象を減らしますが、過去に発生した初回スキャン料金を戻すものではありません。

セキュリティ

  • スキャン結果や証明などのメタデータへのアクセスは IAM ロールで制御し、参照と書き込みを分離する
  • Binary Authorization と連携し、検証・署名済みで脆弱性基準を満たすイメージだけをデプロイ可能にする
  • 検出された脆弱性は深刻度に応じて対応の優先度付けを行い、Critical/High を優先してパッチする
  • スキャンはあくまで既知の脆弱性が対象であり、未知の問題や設定不備は別の対策(コードレビューやランタイム保護)で補う
  • イメージはダイジェスト固定で扱い、タグの差し替えによる検証回避を防ぐ
スキャンだけで満足しない

スキャンで「脆弱性ゼロ」と出ても、未知の脆弱性や誤設定までは保証されません。スキャンは入口の一つと位置づけ、Binary Authorization での強制や定期的な再ビルドと併用してください。

関連サービス・比較

Artifact Analysis は Artifact Registry に保存したアーティファクトをスキャン対象とし、検出結果を Binary Authorization がデプロイ可否の判断に使います。レジストリが「保管」、Artifact Analysis が「検査とメタデータ化」、Binary Authorization が「関門」という役割分担です。

観点Artifact Analysis(GCP)AWS の対応
位置づけ脆弱性スキャンとメタデータ集約Amazon Inspector(コンテナ)
スキャン対象Artifact Registry のイメージ/パッケージAmazon ECR のイメージ
検査範囲OS パッケージと言語依存OS と言語パッケージ
継続評価新規脆弱性で既存イメージを再評価継続スキャンに対応
結果の形ノート/オカレンスのメタデータInspector の検出結果
デプロイ関門Binary Authorization と連携ポリシー/外部ツールと連携

ハンズオン / CLI例

# 自動スキャン用とオンデマンドスキャン用の API を有効化
gcloud services enable \
  containerscanning.googleapis.com \
  ondemandscanning.googleapis.com

# Artifact Registry にある既存イメージをオンデマンドスキャン
gcloud artifacts docker images scan \
  asia-northeast1-docker.pkg.dev/PROJECT_ID/my-repo/web:latest \
  --remote \
  --location=asia

# 上の同期実行で返る完全なスキャン名を指定して脆弱性一覧を取得
gcloud artifacts docker images list-vulnerabilities \
  projects/PROJECT_ID/locations/asia/scans/SCAN_ID

# メタデータ(オカレンス)を直接照会
gcloud artifacts docker images describe \
  asia-northeast1-docker.pkg.dev/PROJECT_ID/my-repo/web:latest \
  --show-package-vulnerability

Google Cloud Service

Artifact Analysisを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

開発者ツール

比較で見る軸

クラウド: Google Cloud / カテゴリ: 開発者ツール / 難易度: intermediate

導入後に効く点

結果をノートとオカレンスに分け、同じダイジェストを脆弱性情報の更新後も再評価する。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Google Cloud
カテゴリ
開発者ツール
難易度
intermediate
関連資格
設計柱
security / operational

判断チェックリスト

  • 自社の用途が「開発者ツール / security」に近いか確認する。
  • 強みである「Artifact Registry への登録時または要求時に、イメージやパッケージの既知脆弱性を検出する。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

開発者ツールsecurityoperational