我猜公共 S3 存盤桶的一個非常常見的模式是允許任何人(即公眾)在獲得該物件的 URL 的情況下查看存盤桶中的每個檔案,但不允許公眾列出存盤桶中的專案(即他們不應該能夠生成桶中每個專案的串列)。
對于許多公共網站來說,這可能是相當常見的配置,它們永遠不會有任何資產必須隱藏在公眾視野之外。
我做的第一件事是轉到 S3 -> 單擊存盤桶 -> 權限 -> '阻止公共訪問' -> 編輯 -> 取消選中所有框(從而允許對存盤桶中的專案進行完全公開訪問)。

但是當我使用瀏覽器直接訪問影像 URL 時,它仍然是“拒絕訪問”,我懷疑這是因為我還沒有允許通過Policy.
題
允許任何公眾成員查看(又名“讀取”)S3 存盤桶1中的任何物件,但不列出(即查看所有物件的串列)在存盤桶中的最簡單策略是什么?
1他們需要一個 URL 才能這樣做,除非他們猜到了。
uj5u.com熱心網友回復:
是的,你是對的,因為沒有政策,你仍然被拒絕訪問。
一個簡單的GET反對政策是。檔案供參考
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::Bucket-Name/*"
]
}
]
}
注意:這里沒有使用ListObject,它不允許用戶列出存盤桶中的物件
uj5u.com熱心網友回復:
在 AWS 控制臺中訪問:S3 -> 單擊您的存盤桶 -> 權限 -> 向下滾動到“存盤桶策略”-> 單擊“編輯”。
S3 策略示例檔案中的注釋:
警告:在授予對您的 Amazon S3 存盤桶的匿名訪問或禁用阻止公共訪問設定時要小心。當您授予匿名訪問權限時,世界上的任何人都可以訪問您的存盤桶。我們建議您永遠不要授予對 Amazon S3 存盤桶的匿名訪問權限,除非您特別需要,例如使用靜態網站托管。
對于任何公眾成員都應該能夠訪問S3 存盤桶中的任何檔案(但不列出檔案)的靜態網站托管,以下是政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:GetObjectVersion"
],
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
]
}
]
}
只需替換DOC-EXAMPLE-BUCKET為您的存盤桶的名稱。
注意:公眾無法“列出”存盤桶中的檔案,因為上述"s3:ListBucket"操作未包含在內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/427854.html
上一篇:cdk/cloudformation如何理解哪個子網是PRIVATE或PUBLIC?
下一篇:(AWSS3)顯示檔案所有權
