[英]IAM Policy: Users cannot access S3 bucket
我創建了一個用戶並分配了以下內聯策略。 同時,我在 s3 中創建了一個存儲桶。
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname"
當我將此策略應用於特定用戶並嘗試訪問 S3 時,資源中列出的特定存儲桶未顯示? 我擔心我已經對所有 s3 進行了操作,然后我的存儲桶沒有出現在 S3 中嗎?
通過可視化編輯器,我嘗試為相同的事物創建策略,策略如下所示
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:ListStorageLensConfigurations",
"s3:ListAccessPointsForObjectLambda",
"s3:GetAccessPoint",
"s3:PutAccountPublicAccessBlock",
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets",
"s3:ListAccessPoints",
"s3:ListJobs",
"s3:PutStorageLensConfiguration",
"s3:ListMultiRegionAccessPoints",
"s3:CreateJob"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucketname"
}
]
}
為什么要為列表創建單獨的操作並允許每個資源使用?
一些操作在存儲桶級別執行(例如列出存儲桶),而一些操作在對象級別執行(例如下載對象)。
您可以同時授予這兩種權限:
以下是用戶策略示例 - Amazon Simple Storage Service的示例:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action": "s3:ListAllMyBuckets",
"Resource":"*"
},
{
"Effect":"Allow",
"Action":["s3:ListBucket","s3:GetBucketLocation"],
"Resource":"arn:aws:s3:::bucketname"
},
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:DeleteObject"
],
"Resource":"arn:aws:s3:::bucketname/*"
}
]
}
您也可以將它們全部組合成一個策略:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect": "Allow",
"Action": "*",
"Resource": ["arn:aws:s3:::bucketname", "arn:aws:s3:::bucketname/*"]
}
]
}
但請注意,此“全部允許”策略也授予用戶刪除對象和存儲桶的權限,因此在授予用戶此類權限時應非常小心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.