リージョン エンドポイントを使用してデータの局所性を構成する

このページでは、Artifact Analysis のグローバル サービス エンドポイントとリージョン サービス エンドポイント、およびそれらの使用方法について説明します。

サービス エンドポイントは、API サービスのネットワーク アドレスを指定するベース URL です。Artifact Analysis には、グローバル エンドポイントとリージョン エンドポイントの両方があります。

  • グローバル エンドポイント: デフォルトでは、Artifact Analysis はグローバル エンドポイント containeranalysis.googleapis.com に API リクエストを送信します。グローバル エンドポイントでは、転送中のデータが特定のロケーションに保持されることは保証されません。また、サポートされている任意のリージョンからアーティファクト分析データを取得できます。データは、保存されているリージョンの外部で処理される場合があります。

  • リージョン エンドポイント: リージョンの制限を適用するサービス エンドポイント。これにより、データが指定されたリージョンに保存、送信、処理されることが保証されます。リージョン エンドポイントは、影響を受けるリソースがエンドポイントで指定されたロケーションに存在する場合にのみ、リクエストの続行を許可します。リージョン エンドポイントの形式は次のとおりです。

    containeranalysis.region.rep.googleapis.com

    リージョン エンドポイントは、次の状況で使用することを検討してください。

    • データにアクセスする必要があるアプリケーションが、データが保存されているリージョンに地理的に近くない。

    • 複数のロケーションにデータを保存しており、レイテンシ、信頼性、可用性を最適化したい場合。

    • データが保存されている場所と同じ場所でデータを処理することを義務付けるデータ局所性に関するポリシーまたは規制に準拠する必要があります。

構成証明とビルドの来歴データは、グローバル エンドポイントに保存されます。脆弱性スキャンの結果と SBOM データは、リージョン エンドポイントとマルチリージョン エンドポイントに保存されます。

リージョン エンドポイントをサポートするロケーション

アーティファクト分析でサポートされているほとんどのリージョンでリージョン エンドポイントを使用できます。

マルチリージョンと一部のリージョンでは、Artifact Analysis はグローバル エンドポイントのみをサポートしています。

サポートされているリージョンと、各リージョンでサポートされているサービス エンドポイントの一覧については、メタデータ ストレージのロケーションをご覧ください。

Google Cloud CLI コマンド

gcloud CLI を使用する場合、リージョン エンドポイントにリクエストを送信する方法は 2 つあります。

  • --location フラグを使用します。
  • アーティファクト分析コマンドに使用するデフォルトのリージョン エンドポイントを設定します。

--location フラグを使用する

--location フラグを次のいずれかのコマンドとともに使用すると、リクエストを適切なサービス エンドポイントに転送できます。

リージョン エンドポイントでリクエストを正常に処理するには、指定されたロケーションが次の要件を満たしている必要があります。

--location フラグを省略するか、リージョン エンドポイントをサポートしていないロケーションを指定すると、コマンドはグローバル エンドポイントを使用します。

たとえば、次のコマンドは、us-east1 に保存されているイメージの脆弱性を一覧表示します。

gcloud artifacts vulnerabilities list --location=us-east1 us-east1-docker.pkg.dev/my-project/my-repo/my-image@sha256:49765698074d6d7baa82f

コマンドのデフォルト エンドポイントを設定する

デフォルトでは、gcloud CLI コマンドはグローバル エンドポイントを使用します。Artifact Analysis コマンドにデフォルトのリージョン エンドポイントを設定すると、個々のコマンドでロケーションを指定する必要がなくなります。

gcloud CLI 402.0.0 以降を使用していることを確認します。

後述のコマンドデータを使用する前に、次のように置き換えます。

次のコマンドを実行します。

Linux、macOS、Cloud Shell

gcloud config set api_endpoint_overrides/containeranalysis https://containeranalysis.LOCATION.rep.googleapis.com

Windows(PowerShell)

gcloud config set api_endpoint_overrides/containeranalysis https://containeranalysis.LOCATION.rep.googleapis.com

Windows(cmd.exe)

gcloud config set api_endpoint_overrides/containeranalysis https://containeranalysis.LOCATION.rep.googleapis.com

API メソッドにリージョン エンドポイントを使用する

グローバル エンドポイントではなく、リージョン エンドポイントを指定します。たとえば、次の例では、指定されたリージョン内の発生をリストします。

リクエストのデータを使用する前に、次のように置き換えます。

  • LOCATION: メタデータが保存されているリージョン
  • PROJECT_ID: Google Cloud プロジェクトのプロジェクト ID。

HTTP メソッドと URL:

GET https://containeranalysis.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/occurrences

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

occurrences: [
  {
    name: "projects/my-project/locations/us-east1/occurrences/030b7805-eca4-4739-9a43-ec65ed98c61f"
    resource_uri: "https://us-east1-docker.pkg.dev/my-project/my-repo/my-image@sha256:b487c4da45ce363eef69d9c066fa26f6666e4f3c9c414d98d1e27bfcc949e544"
    note_name: "projects/goog-vulnz/locations/us-east1/notes/CVE-2018-1272"
    kind: VULNERABILITY
    ...
  }

リージョン メタデータ ストレージへの移行前は、発生とメモの識別子に場所名が含まれていませんでした。新しいスキャンではメタデータがリージョンに保存されるため、グローバル エンドポイントまたはリージョン エンドポイントを使用する API リクエストは、位置情報識別子を含む結果を返します。

移行前の発生 ID は次の例のようになります。

name: "projects/my-project/occurrences/030b7805-eca4-4739-9a43-ec65ed98c61f"

us-east1 に格納された同じ出現は次のようになります。

name: "projects/my-project/locations/us-east1/occurrences/030b7805-eca4-4739-9a43-ec65ed98c61f"

次のステップ