本頁面提供已簽署網址的總覽,這類網址會使用簽章,向特定 Cloud Storage 資源提供限時存取權。任何擁有已簽署網址的人,無論是否擁有有效帳戶,都能在該網址有效運作時使用它。如要進一步瞭解如何建立已簽署網址,請參閱使用 Cloud Storage 工具進行 V4 簽署程序和使用您自己的程式進行 V4 簽署程序。如要瞭解控制值區和物件存取權的其他方式,請參閱「存取權控制總覽」。
總覽
已簽署網址,這個網址可提供有限的權限和時間來提出要求。簽署網址的查詢字串中包含驗證資訊,包括簽章,因此使用者不需要任何憑證,也能對資源執行特定動作。
產生已簽署網址時,您必須指定具備足夠權限的帳戶,才能提出已簽署網址將提出的要求。
產生已簽署網址後,任何擁有該網址的人員都可以使用已簽署網址執行特定動作,例如,在特定時段內讀取物件。
何時應使用已簽署的網址?
某些情況下,您可能不想要求使用者擁有自己的帳戶才能存取 Cloud Storage,不過仍希望使用應用程式專屬邏輯來控制存取權。一般的因應方法是,將已簽署網址提供給使用者,讓使用者能在期限內讀取、寫入或刪除該資源。建立已簽署網址時需指定到期時間。任何人只要知道網址,就可以存取該資源,直到網址過期或用於簽署網址的金鑰輪替為止。
簽署網址最常見的用途是上傳和下載,因為在這種要求中,物件資料會在要求者和 Cloud Storage 之間移動。在大多數其他情況下,例如複製物件、組合物件、刪除物件或編輯中繼資料,建立已簽署的網址並提供給他人使用,都是不必要的額外步驟。建議您改用以下設計:負責建立已簽署網址的實體,直接向 Cloud Storage 發出所需要求。
已簽署網址範例
以下範例是在使用服務帳戶驗證進行 V4 簽署程序後所建立的已簽署網址:
https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.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
此簽署網址會提供在值區 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 上傳資料。將工作階段 URI 提供給用戶端時,請務必透過 HTTPS 進行傳輸。
已簽署網址的注意事項
使用已簽署網址時,請注意下列幾點:
已簽署網址只能用來透過 XML API 端點存取 Cloud Storage 資源。
指定憑證時,建議您使用服務帳戶的電子郵件地址來進行識別,但也支援使用服務帳戶 ID。
標準要求
已簽署的網址會將標準要求包含在其 X-Goog-Signature
查詢字串參數的編碼資訊中。當您使用 Cloud Storage 工具建立已簽署的網址時,系統會建立所需的標準要求並自動合併。但是,當您使用自己的程式製作已簽署的網址時,就需要自行定義標準要求,並用來建立簽章。
憑證範圍
憑證範圍會同時出現在要簽署的字串與 X-Goog-Credential
查詢字串參數中。