位置端點

本頁說明如何使用區域端點存取 Cloud Storage。使用位置端點時,您可以確保靜態資料保留在管轄範圍內,以符合資料落地規定。

總覽

位置端點是要求端點,只有在受影響的資源位於端點指定的位置時,才會允許要求繼續執行。舉例來說,在刪除值區要求中使用端點 https://us-central1-storage.googleapis.com 時,只有在值區位於 US-CENTRAL1 時,要求才會繼續。

與全域端點不同,位置端點可確保要求只會在端點指定的位置 (即資源所在位置) 處理,全域端點則可能在資源所在位置以外的位置處理要求。

使用位置端點可確保:

  • 儲存在 Cloud Storage 中的資料不會離開指定位置。

  • 從內部部署環境傳輸至 Google Cloud時,系統會在端點指定的區域終止 TLS。

使用位置端點時,您必須承擔下列責任:

  • 如要取得資料落地保證,向位置端點提出的要求必須來自端點指定的相同位置。舉例來說,如果您使用 Compute Engine 虛擬機器,透過 us-central1-storage.googleapis.com 端點向位於 US-CENTRAL1 的 bucket 提出要求,虛擬機器也必須位於 US-CENTRAL1

  • 只有在執行支援的作業時,才能使用位置端點。 執行不支援的作業會導致錯誤。

位置端點支援內部部署系統與 Google Cloud 之間的流量 (透過 Interconnect 或 VPN),以及 Google Cloud 服務之間的流量 (例如從 BigQuery 到 Cloud Storage)。系統不支援網際網路流量。

支援的作業

下表概略說明可透過地區端點執行的作業,以及無法執行的作業。一般來說,位置端點可執行位置內作業,但無法執行跨位置作業。

如果您嘗試使用位置端點執行不支援的操作,Cloud Storage 會傳回 400 HTTP 錯誤代碼,並顯示以下訊息:「This endpoint does not implement this operation. 請使用全域端點。」

作業 修改物件資料 支援搭配位置端點使用
物件組成 1
刪除物件 1
物件 1
物件插入 1
物件清單 1
物件修補程式 1
物件副本 4
物件重寫 4
buckets insert 2
buckets delete 3
buckets get 2
buckets patch 2
更新值區 2
buckets getIamPolicy 2
buckets setIamPolicy 2
buckets testIamPermissions 2
buckets lockRetentionPolicy 2
buckets BucketAccessControls 2
buckets DefaultObjectAccessControls 2
buckets ObjectAccessControls 2
HMAC 金鑰作業
服務帳戶作業
Pub/Sub 通知作業 因作業而異
物件變更通知作業 因作業而異
批次作業 因作業而異

1 如要使用地區端點執行這項作業,含有受影響物件的 bucket 必須位於端點指定的地區。舉例來說,傳送至 us-central1-storage.googleapis.com 的物件刪除要求只能用於刪除 US-CENTRAL1 地區值區中的物件。如果您嘗試在非 US-CENTRAL1 的位置刪除物件,作業會傳回 NOT_FOUND 錯誤。

2 如要使用地區端點執行這項作業,儲存空間必須位於端點指定的地區。舉例來說,向 us-central1-storage.googleapis.com 提出的值區建立要求只能用於在 US-CENTRAL1 地區建立值區。如果您嘗試在非 US-CENTRAL1 的位置建立 bucket,作業會傳回 INVALID_ARGUMENT 錯誤。

3 如要使用地區端點執行這項作業,儲存空間必須位於端點指定的地區。舉例來說,對 us-central1-storage.googleapis.com 提出的 bucket 刪除要求只能用於刪除 US-CENTRAL1 地區中的 bucket。如果嘗試刪除 US-CENTRAL1 以外位置的值區,作業會傳回 NOT_FOUND 錯誤。

4 如要使用位置端點執行這項作業,來源和目的地 bucket 都必須存在於端點指定的位置。舉例來說,如果兩個值區位於相同位置,您可以使用位置端點將物件從一個值區複製到另一個值區。不過,如果值區位於不同位置,您就無法使用位置端點將物件從一個值區複製到另一個值區。如果來源或目的地 bucket 位於端點指定位置以外的位置,作業會傳回 NOT_FOUND 錯誤。

支援的地區

所有美國區域、US 多區域和 NAM4 預先定義的雙區域,都支援位置端點。如要進一步瞭解可指定的區域,請參閱「值區位置」。

發出要求

控制台

如要瞭解如何使用 Google Cloud 控制台執行 ITAR 法規遵循作業,請參閱「ITAR 的限制」一文。

指令列

如要設定 Google Cloud CLI 以搭配使用區域端點,請按照下列步驟操作:

  1. api_endpoint_overrides/storage 屬性設為要使用的位置端點:

    gcloud config set api_endpoint_overrides/storage https://LOCATION-storage.googleapis.com/

設定這項屬性後,您就能照常使用 gcloud CLI 指令。

或者,您也可以在每個指令中設定 CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE 環境變數,為個別指令使用位置端點。例如:

CLOUDSDK_API_ENDPOINT_OVERRIDES_STORAGE=https://LOCATION-storage.googleapis.com/ gcloud ls gs://my-bucket

用戶端程式庫

Cloud Storage 用戶端程式庫會自動管理要求端點,但您可以手動設定位置端點。如要瞭解如何設定位置端點,請參閱使用要求端點的用戶端程式庫程式碼範例

REST API

JSON API

向位置端點發出要求時,請使用下列 URI:

  • 如為物件上傳作業以外的一般 JSON API 要求,請使用下列端點:

    https://LOCATION-storage.googleapis.com

    LOCATION 替換為支援的值區位置。例如:us-central1

  • 如是 JSON API 物件上傳作業,請使用下列端點:

    https://LOCATION-storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o

    取代:

    • LOCATION,且值區位置必須支援。例如:us-central1

    • BUCKET_NAME,並將其替換為要上傳物件的值區名稱。例如:my-example-bucket

  • 如要透過 JSON API 下載物件,請使用下列端點:

    https://LOCATION-storage.googleapis.com/download/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?alt=media

    取代:

    • LOCATION,且值區位置必須支援。例如:us-central1

    • BUCKET_NAME,其中包含要下載的物件。例如:my-example-bucket

    • OBJECT_NAME 是要下載的物件名稱。例如:waterfall.png

請注意,JSON API 端點僅支援 HTTPS 要求。

XML API

使用 XML API 向位置端點提出要求時,您可以採用虛擬託管樣式的端點或路徑樣式的端點:

  • 虛擬託管型端點:

    https://BUCKET_NAME.LOCATION-storage.googleapis.com
  • 路徑樣式端點:

    https://LOCATION-storage.googleapis.com/BUCKET_NAME

對於這兩種端點類型,請替換下列項目:

  • LOCATION,且值區位置必須支援。例如:us-central1

  • BUCKET_NAME 改成有效的值區名稱。例如:my-example-bucket

XML API 端點支援安全資料傳輸層 (SSL) 加密,也就是說,您可以使用 HTTP 或 HTTPS。我們建議您使用 HTTPS,尤其是使用 OAuth 2.0 向 Cloud Storage 驗證時,更應該使用 HTTPS。

正確設定要求格式

為確保要求與 Cloud Storage 工具相容,請採取下列做法:

已知限制

不支援 mTLS 端點

限制全域 API 端點用量

如要強制使用特定位置的端點,可以運用constraints/gcp.restrictEndpointUsage機構政策限制,封鎖對全域 API 端點的要求。詳情請參閱「限制端點用量」說明文件。