本頁說明 Artifact Analysis 的全球和區域服務端點,以及如何使用這些端點。
服務端點是指定 API 服務網路位址的基準網址。Artifact Analysis 具有全球和區域端點。
全球端點:根據預設,構件分析會將 API 要求傳送至全球端點
containeranalysis.googleapis.com
。全球端點無法保證傳輸中的資料會留在特定位置,且可從任何支援的區域擷取構件分析資料。您的資料可能會在儲存區域以外的地區處理。地區端點:強制執行地區限制的服務端點,確保資料在指定地區儲存、傳輸及處理。只有當受影響的資源位於端點指定的位置時,區域端點才會允許要求繼續執行。區域端點的格式如下:
containeranalysis.region.rep.googleapis.com
。在下列情況下,建議使用區域端點:
需要存取您資料的應用程式,與資料儲存的區域在地理位置上相距甚遠。
您將資料儲存在多個位置,並想盡可能縮短延遲時間,提高可靠性和可用性。
您必須遵守資料所在地政策或法規,在儲存資料的位置處理資料。
認證和建構出處資料會儲存在全域端點中。 漏洞掃描結果和 SBOM 資料會儲存在區域和多區域端點。
支援區域端點的位置
對於 Artifact Analysis 支援的大多數區域,您都可以使用區域端點。
對於多區域和部分區域,Artifact Analysis 僅支援全域端點。
如需支援的區域清單,以及各區域支援的服務端點,請參閱「中繼資料儲存位置」。
Google Cloud CLI 指令
使用 gcloud CLI 時,有兩種方式可將要求傳送至區域端點:
- 使用
--location
標記。 - 設定要用於 Artifact Analysis 指令的預設區域端點。
使用 --location
旗標
您可以使用 --location
旗標搭配下列任一指令,將要求導向適當的服務端點:
- gcloud artifacts sbom export
- gcloud artifacts sbom list
- gcloud artifacts sbom load
- gcloud artifacts version describe
- gcloud artifacts vulnerabilities list
- gcloud artifacts vulnerabilities load-vex
如要使用區域端點順利處理要求,指定的地理位置必須符合下列規定:
- 該位置支援區域端點。
- 位置與儲存構件中繼資料的區域相符。
如果省略 --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 以上版本。
使用下方的任何指令資料之前,請先替換以下項目:
- LOCATION:儲存中繼資料的區域。
執行下列指令:
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 方法和網址:
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 ... }
在改用區域中繼資料儲存空間之前,事件和附註的 ID 不會包含位置名稱。由於較新的掃描作業會將中繼資料儲存在區域中,因此使用全域或區域端點的 API 要求都會傳回包含位置 ID 的結果。
轉換前的發生次數 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"
限制全球 API 端點用量
如要強制使用區域端點,請使用constraints/gcp.restrictEndpointUsage
機構政策限制,封鎖對全域 API 端點的要求。詳情請參閱「限制端點用量」。
後續步驟
- 查看各個位置的中繼資料儲存位置和支援的服務端點。