[英]How to have both public access and private access in AWS s3?
我有一個s3 bucket
,它有兩個密鑰(文件夾或我不知道應該如何稱呼它們): public
和private
。 每個人都應該可以訪問公鑰,因為只有化身和一些指導文件。 現在在私有目錄中,我有敏感文檔,只能通過我的PHP API
生成的signed URLs
訪問。
我已經創建了Cloudfront
分布和行為。
源域名 = myproject-development.s3.amazonaws.com
路徑模式是Default (*)
而且我不能為了上帝的愛弄清楚政策:目前公眾可以訪問所有內容,我知道這是因為聲明Sid 2
我目前的桶政策:
{
"Version": "2008-10-17",
"Id": "PolicyForCloudFrontPrivateContent",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::myproject-development/public/*",
"Condition": {
"StringEquals": {
"s3:ExistingObjectTag/public": "yes"
}
}
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXX"
},
"Action": "s3:GetObject",
"Resource": [
"arn:aws:s3:::myproject-development/private/*",
"arn:aws:s3:::myproject-development/private"
]
}
]
}
我的存儲桶設置已Block all public access
(一切都是綠色的)。
如果我刪除 Sid 2,那么私有中的所有內容都會被隱藏,但它甚至不能與簽名的 url 一起使用,訪問總是被拒絕!
我需要如何修改我的政策,以便/private
內容僅允許使用已簽名的 url?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.