兩項策略,其中一項為“拒絕”,我應該無法對存儲桶執行任何操作,但我仍然可以列出和查看存儲桶物件。為什麼?謝謝
S3 儲存桶策略
{
"Sid": "S3DenyAccess",
"Effect": "Deny",
"Principal": "*",
"Action": "*",
"Resource": "arn:aws:s3:::<YOURBUCKETHERE>/*"
}
IAM 使用者策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowConsoleAccess",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::*"
]
}
]
}
答案1
嘗試改變資源在裡面桶政策包括單獨的存儲桶和帶有物件的存儲桶:
"Resource": [
"arn:aws:s3:::<YOURBUCKETHERE>",
"arn:aws:s3:::<YOURBUCKETHERE>/*"
]
希望有幫助:)
答案2
AWS 策略評估邏輯將會是一本有用的讀物。簡而言之,明確的否認獲勝。但這與這裡無關。
我是
您的 IAM 使用者政策規定「此使用者可以列出所有儲存桶並取得儲存桶位置」。
桶策略
您針對某個特定儲存桶的儲存桶策略規定“明確拒絕任何人執行任何反對操作的權限”裡面資源末尾的“/*”表示策略適用於“儲存桶內部”,而如果省略這些,則表示策略適用於儲存桶本身。
組合
因此,您的組合策略表示所有使用者都可以列出儲存桶並取得儲存桶位置,但不能對儲存桶內的物件執行任何操作。我很驚訝您可以列出存儲桶中的對象並查看存儲桶對象。我懷疑這裡有另一個策略在起作用,因為 AWS 預設拒絕表示它不應該向您顯示任何內容。
其他意見
如果有人能發現我錯過的東西,請指出:)