經簽署的網址

本頁面簡介經簽署的網址,這類網址會使用簽章,在限定時間內授予特定 Cloud Storage 資源的存取權。無論是否擁有有效帳戶,只要知道經簽署的網址,就能在網址有效期間使用。如要瞭解如何建立經簽署的網址,請參閱「使用 Cloud Storage 工具的 V4 簽署程序」和「使用您自己的程式的 V4 簽署程序」。如要瞭解控管 bucket 和物件存取權的其他方式,請參閱「存取控管總覽」。

總覽

經簽署的網址可提供有限權限,允許使用者在時限內提出要求。經簽署的網址在其查詢字串中包含驗證資訊 (包括簽章),可讓不具憑證的使用者對資源執行特定動作。

  • 產生經簽署的網址時,您必須指定具備充分權限的帳戶,才能提出經簽署的網址會提出的要求。

    • 在多數情況下,這個帳戶是服務帳戶。

    • 如果您自行建立程式來產生經簽署的網址,只要使用者帳戶有相關聯的 HMAC 金鑰,就能使用該帳戶。

產生經簽署的網址後,任何知道該網址的使用者,都可以用來在指定的一段時間內執行特定動作,例如讀取物件。

何時該使用經簽署的網址?

在某些情況下,您可能不想規定使用者必須擁有自己的帳戶才能存取 Cloud Storage,但仍希望使用應用程式專屬邏輯控制存取權。一般的因應方法是,將經簽署的網址提供給使用者,讓使用者能在有限時間內讀取、寫入或刪除該資源。建立經簽署的網址時需指定到期時間。任何人只要知道網址,就可以存取該資源,直到網址過期或用於簽署網址的金鑰輪替為止。

經簽署的網址最常用於上傳和下載,因為在這類要求中,物件資料會在要求者和 Cloud Storage 之間移動。在大多數其他情況下,例如複製物件、撰寫物件、刪除物件或編輯中繼資料,建立經簽署的網址並提供給他人使用是不必要的額外步驟。請考慮改用以下設計:負責建立簽署網址的實體直接向 Cloud Storage 發出所需要求。

經簽署的網址範例

以下範例是依據 V4 簽署程序建立的經簽署的網址,並使用服務帳戶驗證:

https://storage.s3nsapis.fr/example-bucket/cat.jpeg?X-Goog-Algorithm=
GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.s3ns.iam.gserviceaccount.com
%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18
1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16
9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849
6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc
c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058
0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a
66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823
a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703
2ea7abedc098d2eb14a7

這個經簽署的網址可讓您讀取 bucket example-bucket 中的物件 cat.jpeg。讓這個網址成為經簽署網址的查詢參數如下:

  • X-Goog-Algorithm:簽署網址所用的演算法。

  • X-Goog-Credential:用於建立已簽署網址的憑證相關資訊。

  • X-Goog-Date:經簽署的網址可供使用的日期和時間,採用 ISO 8601 基本格式 YYYYMMDD'T'HHMMSS'Z'。

  • X-Goog-Expires:經簽署的網址的有效時間長度,以 X-Goog-Date 值起算的秒數為單位。在本範例中,經簽署的網址會在 15 分鐘後失效。到期時間值最長為 604800 秒 (7 天)。

  • X-Goog-SignedHeaders:使用經簽署的網址時,任何要求都必須包含的標頭。

  • X-Goog-Signature:驗證字串,允許使用這個經簽署的網址的要求存取 cat.jpeg。

搭配使用經簽署的網址與支援續傳的上傳作業

一般來說,為支援續傳的上傳作業建立經簽署的網址是不必要的,因為在啟動上傳的要求之後,後續上傳物件資料的 PUT 要求會使用工作階段 URI 做為驗證權杖。也就是說,PUT 要求不會使用任何經簽署的網址。

雖然您可以為初始 POST 要求建立及使用經簽署的網址來啟動上傳作業,但在大多數情況下,伺服器可以改為啟動支援續傳的上傳作業。接著,伺服器會將工作階段 URI 傳送至用戶端,以執行上傳作業。這樣一來,伺服器就不必建立經簽署的網址,用戶端也不必處理經簽署的網址,並啟動支援續傳的上傳作業,可避免複雜程序。

與經簽署的網址一樣,任何人只要取得工作階段 URI,就能上傳資料。將工作階段 URI 提供給用戶端時,請務必透過 HTTPS 傳輸。

經簽署的網址注意事項

使用經簽署的網址時,請注意下列事項:

  • 經簽署的網址只能用於透過 XML API 端點存取 Cloud Storage 資源。

  • 指定憑證時,建議您使用服務帳戶的電子郵件地址來進行識別,但也支援使用服務帳戶 ID。

標準要求

經簽署的網址會使用標準要求,做為 X-Goog-Signature 查詢字串參數中編碼資訊的一部分。使用 Cloud Storage 工具建立經簽署的網址時,系統會自動建立並納入必要的標準要求。不過,使用自己的程式建立經簽署的網址時,您需要自行定義標準要求,並用來建立簽章。

憑證範圍

憑證範圍會同時顯示在待簽署字串和 X-Goog-Credential 查詢字串參數中。

後續步驟