Container Analysis

Container Analysis は、Container Registry に格納されているコンテナ イメージをスキャンして、脆弱性を検出します。コンテナの自動分析が継続的に行われ、既知の脆弱性に関する情報を取得できるため、デプロイメント前に問題を確認して対処できます。

サードパーティ メタデータ プロバイダは、Container Analysis を使用することで、顧客のイメージに関する追加のメタデータ(イメージにインストールされているパッケージなど)の格納と取得を行うことができます。

このページでは、Container Analysis でサポートされるメタデータの種類、いくつかの主要なコンセプト、用語について説明します。

メタデータとイメージの関連付け

メタデータ(脆弱性情報やビルド情報)に関する大まかな説明をメモといいます。Container Analysis は、イメージの分析中にメモが検出されるたびにオカレンスを作成します。

メモ

メモは、メタデータの大まかな説明です。たとえば、Linux パッケージの分析後は、特定の脆弱性に関するメモを作成できます。また、ビルドプロセスのビルダーに関する情報を格納するためにメモを使用することもできます。メモの多くは、分析を実行するプロバイダによって作成され、所有されます。一般的に、メモは、コンテナ イメージを分析することによって検出され、プロジェクトを越えて何回も使用されます。

メモとオカレンスは別々のプロジェクトに格納することをおすすめします。これにより、よりきめ細かなアクセス制御が可能になります。

メモは、その所有者だけが編集可能で、メモを参照しているオカレンスにアクセス可能な顧客に対しては読み取り専用にする必要があります。

オカレンス

オカレンスは、イメージでメモが検出された時点を表します。メモのインスタンス化と考えることができます。たとえば、脆弱性に関するメモのオカレンスでは、脆弱性が発見されたパッケージや特定の修復手順などが示されます。または、ビルドの詳細に関するメモのオカレンスでは、ビルドの結果であるコンテナ イメージが示されます。

通常、オカレンスは、メモが作成されたプロジェクトとは別のプロジェクトに格納されます。オカレンスへの書き込みアクセス権は、メモをオカレンスにリンクするためのアクセス権を持っているユーザーにのみ付与する必要があります。一方、オカレンスへの読み取りアクセス権は、すべてのユーザーに付与できます。

検出オカレンスには、コンテナ イメージの初期スキャンで収集した情報が含まれます。Container Analysis は、コンテナのスキャン時に検出オカレンスを更新します。その際には、スキャン ステータスが記録されます。検出オカレンスは、Container Analysis API が初めて有効になった時点で既存のすべてのイメージに対して作成され、Container Registry に push された時点で新しいイメージに対して作成されます。

サポートされるメタデータの種類

次の表に、Container Analysis がサポートし、Container Registry 内のイメージにメモとして提供するメタデータの種類を示します。サードパーティ メタデータ プロバイダは、顧客のイメージ用として、次の種類のメタデータを格納または検索できます。

メタデータの種類 Container Registry イメージ用として Container Analysis から提供されるかどうか
脆弱性: コンテナ イメージの脆弱性情報を提供します。 ○。Container Analysis は、外部ソースから脆弱性情報を取得します。
ビルド: ビルドの場所に関する情報を提供します。 ○。Container Analysis は、Cloud Build を使用してイメージをビルドする場合にのみ、この情報を提供します。
デプロイメント: イメージ デプロイメント イベントに関する情報を提供します。 ×
イメージ: コンテナ イメージに関するメタデータ。たとえば、イメージのさまざまなレイヤに関する情報。 ×
パッケージ: イメージにインストールされたパッケージに関する情報が含まれています。 ×
証明書: イメージを証明できる論理的な役割。 ×
検出: イメージの初期スキャンに関する情報が含まれています。 ○。Container Analysis は、脆弱性に関する情報だけを提供します。

プロバイダと顧客

プロバイダとは、顧客のイメージ用のメタデータを提供する企業のことです。プロバイダは顧客のイメージ用のメタデータを格納したり検索したりするために Container Analysis を使用できます。たとえば、顧客の Docker コンテナ用のセキュリティ管理を提供する企業は、Container Analysis を使用して、イメージのセキュリティ関連メタデータを格納したり検索したりできます。詳細については、プロジェクト用のメタデータの提供をご覧ください。

顧客は、Container Registry 内のイメージ用に、Google またはサードパーティ プロバイダのいずれかが提供しているメタデータを使用します。

脆弱性スキャン

Container Analysis は、Container Registry 内のイメージに対して、次の種類の脆弱性スキャンを実行します。

  • 初期スキャン: Container Analysis API を初めて起動すると、Container Registry 内の既存のすべてのイメージのスキャンが実行され、パッケージ マネージャー、イメージベース、イメージの脆弱性のオカレンスが抽出されます。初期スキャンが完了した後、Container Analysis ではこうしたメタデータを使用して検出オカレンスを作成します。

  • 増分スキャン: Container Analysis は、Container Registry にアップロードされた時点で新しいイメージをスキャンします。

  • 継続分析: Container Analysis は、新しい脆弱性情報や更新された脆弱性情報を
    脆弱性ソースから取得すると、コンテナの分析を再実行し、スキャン済みイメージの脆弱性オカレンスのリストを最新の状態にします。また、新しいメモ用の新しいオカレンスを作成し、関連性がなくなったオカレンスを削除します。この種類の分析は、パッケージの脆弱性を対象とし、他の種類のメタデータについては処理を行いません。

イメージのスキャンが完了すると、イメージの脆弱性オカレンスのコレクションが脆弱性の結果として生成されます。

脆弱性ソース

Container Analysis API は、Linux ディストリビューションのパッケージ脆弱性スキャンをサポートし、次のソースから CVE データを取得します。

脆弱性の重大度

Container Analysis は、脆弱性に次のいずれかの重大度を割り当てます。

  • 重大
  • 最小

割り当てられる重大度は、CVSS スコアに基づいています。

デフォルトの Container Analysis サービス アカウント

Container Analysis は、サービス アカウントを使用してコンテナ イメージを分析します。このアカウントは、ユーザーの代わりにイメージに関する情報を収集する特別な Google アカウントです。Container Analysis サービス アカウント用のメールは、[PROJECT_NUMBER]@container-analysis.iam.gserviceaccount.com です。

プロジェクトのサービス アカウントは GCP Console の [IAM] メニューから表示できます。

Container Analysis API を有効にすると、サービス アカウントが自動的に作成され、プロジェクトに対する Container Vulnerability Scanner サービス エージェント編集者の役割が付与されます。

Container Analysis API を有効にすると、projects/[PROJECT_ID]/topics/gcr トピックに対する複数のサブスクリプションが自動的に作成されます。これらのサブスクリプションの形式は、projects/[PROJECT_ID]/subscriptions/gcr-analysis-[SUBSCRIPTION_ID] です。サブスクリプションは、Container Analysis で Container Registry 内のイメージをスキャンするために使用されます。トピックやサブスクリプションは編集したり削除したりしないでください。それらを誤って削除した場合は、Container Analysis API を無効にしてから再度有効にしてください。

Container Analysis のインターフェース

GCP Console の Container Registry で、コンテナ イメージの脆弱性とメタデータを確認できます。

gcloud ツールを使用して、脆弱性とイメージ メタデータを表示することもできます。

さらに、Container Analysis REST API を使用すると、こうしたアクションを実行できます。他の Cloud Platform API と同様、OAuth2 を使用してアクセスを認証する必要があります。認証した後、API を使用して新しいメモやオカレンスを作成したり、脆弱性のオカレンスを表示したりできます。

Container Analysis API は、gRPC と REST/JSON の両方をサポートしています。API の呼び出しは、クライアント ライブラリまたは REST/JSON の cURL を使用して行うことができます。

脆弱なイメージのデプロイメントを制御する

Binary Authorization と Container Analysis を統合すると、デプロイメント環境で既知のセキュリティ問題を含むイメージの実行を防ぐことができます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...