Artifact Analysis には、コンテナのスキャンにオンデマンド スキャンと自動スキャンの 2 つの機能があります。このドキュメントでは、それぞれのメリットについて説明します。Artifact Analysis はメタデータ管理も提供します。スキャンとメタデータ ストレージを併用して CI/CD パイプラインをエンドツーエンドで保護する方法について詳しくは、Artifact Analysis の概要をご覧ください。
オンデマンド スキャンと自動スキャンでは、オペレーティング システムと言語パッケージ(Java、Go)の脆弱性を特定できます。ただし、言語パッケージの自動スキャンは Artifact Registry でのみ使用できます。
各レジストリ プロダクトでサポートされているスキャンタイプの一覧については、比較表をご覧ください。Container Registry を使用している場合は、Artifact Registry に移行する方法をご確認ください。
コンテナ イメージのスキャンに関連する費用の詳細については、料金をご覧ください。
オンデマンド スキャン
オンデマンド スキャンを使用すると、gcloud CLI を使用して、コンピュータまたはレジストリでローカルにコンテナ イメージをスキャンできます。これにより、脆弱性の結果にアクセスする必要があるタイミングに応じて、CI/CD パイプラインを柔軟にカスタマイズできます。
自動スキャン
Artifact Analysis は、Artifact Registry または Container Registry 内のアーティファクトに対して脆弱性スキャンを実行します。また、Artifact Analysis は脆弱性情報を監視して最新の状態に保ちます。このプロセスは、プッシュ時スキャンと継続分析の 2 つの主要なタスクで構成されます。
プッシュ時スキャン
Artifact Analysis は、Artifact Registry または Container Registry にアップロードされた新しいイメージをスキャンします。このスキャンにより、コンテナ内のシステム パッケージに関する情報が抽出されます。画像は、画像のダイジェストに基づいて 1 回だけスキャンされます。つまり、タグの追加や変更では新しいスキャンはトリガーされず、画像の内容が変更された場合にのみスキャンがトリガーされます。
Artifact Analysis は、セキュリティ脆弱性に関して公開で監視されているパッケージのみを検出します。
イメージのスキャンが完了すると、イメージの脆弱性オカレンスのコレクションが脆弱性の結果として生成されます。
Artifact Analysis では、既存のイメージは自動的にスキャンされません。既存のイメージをスキャンするには、もう一度 push する必要があります。
継続的な分析
Artifact Analysis は、イメージのアップロード時に検出された脆弱性のオカレンスを作成します。最初のスキャンの後、Artifact Registry と Container Registry 内でスキャンされたイメージのメタデータに新たな脆弱性がないか継続的にモニタリングを行います。
Artifact Analysis は、1 日に複数回、脆弱性ソースから新しい脆弱性情報と更新された脆弱性情報を受け取ります。新しい脆弱性データが届くと、Artifact Analysis はスキャンしたイメージのメタデータを更新して最新の状態に保ちます。Artifact Analysis は、既存の脆弱性オカレンスを更新し、新しいメモ用の新しい脆弱性オカレンスを作成し、有効でなくなった脆弱性オカレンスを削除します。
Artifact Analysis は、過去 30 日間に push または pull されたイメージのメタデータのみを更新します。Artifact Analysis は、30 日以上経過したメタデータをアーカイブします。アーカイブされたメタデータを含むイメージを再スキャンするには、そのイメージを pull します。メタデータの更新には最長で 24 時間ほどかかることがあります。
マニフェスト リスト
マニフェスト リストで脆弱性スキャンを使用することもできます。マニフェスト リストは、複数のプラットフォームのマニフェストへのポインタのリストです。これにより、1 つのイメージで複数のアーキテクチャまたはオペレーティング システムのバリエーションを使用できます。
Artifact Analysis の脆弱性スキャンは、Linux amd64 イメージのみをサポートしています。マニフェスト リストが複数の Linux amd64 イメージを参照している場合、最初のイメージのみがスキャンされます。Linux amd64 イメージへのポインタがない場合、スキャン結果は得られません。