pre-signed-url · L1

權限天花板

權限天花板:URL 的權限不超過簽它的人

一句話:一條 pre-signed URL 能做的事,永遠不超過「當初拿來簽它的那組憑證本身的權限」。它是授權書,效力不可能大過授權人。

破解「萬能鑰匙」的誤會

很多人以為 pre-signed URL 是一把「打開任何門」的萬能鑰匙。不是。 它更像一張授權書——授權書的效力,不可能大過簽署它的人自己的權力。

如果簽 URL 用的那組憑證,本身沒有讀某個 bucket 的權限,那用它簽出來的 URL 也讀不了那個 bucket。簽章對了也沒用。

server 端其實驗兩層

兩層檢查,缺一不可
(1) 簽章對不對、過期沒——證明「這是被授權過的請求」。
(2) 簽的那組憑證此刻是否仍有效、仍有權限做這件事——證明「授權人自己現在還握有這個權力」。

所以會發生這種事:簽章明明還沒到 X-Amz-Expires,URL 卻已經失效——因為那組憑證被停用、被撤銷,或它是臨時憑證(STS)而 session 已經到期。第二層一過不了,URL 就廢。

這個性質怎麼用:給最小權限

天花板性質是安全設計的槓桿:想讓 URL 只能做一點點事,就用「只被授予一點點權限」的憑證去簽它。

一句話收尾:pre-signed URL 放大的是「便利」,不是「權限」——它從不給你超過你本來就有的東西。

參考來源