[英]AWS S3 deny all access except for 1 user - bucket policy
我已經在 AWS S3 中設置了一個存儲桶。 我使用 ALLOW 策略(使用存儲桶策略編輯器)授予我的 IAM 用戶訪問存儲桶的權限。 我能夠與用戶一起將文件保存到存儲桶中。 我之前一直在使用存儲桶進行媒體服務,因此默認操作似乎是授予公眾查看文件(圖像)的權限,這對大多數網站都適用。
在我的新項目中,我希望能夠使用 IAM 用戶訪問 S3 存儲桶,但希望拒絕所有其他訪問。 沒有公共讀取訪問權限,除了應該擁有保存/刪除任何內容的完全訪問權限的 IAM 用戶之外,沒有任何訪問權限。
看起來我應該做什么,我正在閱讀here 。 它說使用NotPrincipal
屬性創建Deny
策略,這樣它仍然會允許該用戶,但拒絕其他所有人。 為了更好地衡量,我還為我想要的用戶添加了一個Allow
策略:
{
"Version": "2012-10-17",
"Id": "Policy**********",
"Statement": [
{
"Sid": "Stmt**********",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::*********:user/my_user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
},
{
"Sid": "Stmt*************",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::**********:user/my_user"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my_bucket/*"
}
]
}
但這拒絕了所有人的訪問,甚至是my_user
。 當我剛剛使用上述策略的Allow
部分時,我可以再次確認我有訪問權限,但是公眾也有讀取訪問權限,我試圖關閉它。
如何設置我的存儲桶策略以僅向唯一的 IAM 用戶授予完全訪問權限,並拒絕向任何其他用戶授予所有訪問權限?
謝謝。
這很簡單:
要意識到的主要事情是 IAM 用戶無法通過未經身份驗證的 URL(例如s3.amazonaws.com/bucket/file.jpg
)訪問內容,因為 S3 不知道他們是誰。 當 IAM 用戶訪問內容時,他們將需要使用經過身份驗證的訪問,以便 S3 知道他們是誰,例如:
IAM 用戶的策略如下所示:
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"
]
}
如果我理解正確,請僅允許 1 個 IAM 用戶訪問 buket。 我們可以使用桶策略。 我在 netApp 文檔中得到了這個。
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::95390887230002558202:federated-user/Bob"
},
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::examplebucket",
"arn:aws:s3:::examplebucket/*"
]
},
{
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::95390887230002558202:federated-user/Bob"
},
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::examplebucket",
"arn:aws:s3:::examplebucket/*"
]
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.