为S3上传创建新的IAM策略时需要什么权限?

时间:2019-05-22 15:42:28

标签: amazon-web-services amazon-s3 flutter amazon amazon-iam

我正在开发一个Flutter应用程序,可以在其中将图像上传到Amazon S3。为此,我需要获得一个IAM Access Keys及其Access Key ID和一个Secret access key

因此,我创建了一个新的IAM User并尝试创建一个仅允许

的新策略。
  1. 上传文件
  2. 读取文件

我不需要它来创建/删除存储桶等。

它没有用。我注意到当我给full s3 access时就可以上传,没有任何问题,因此可能在创建策略时错过了一些权限。以下是我的权限。

enter image description here

enter image description here 我需要为新的访问策略(如上所述)提供受限访问的权限列表是什么?

此处为JSON

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "*"
        }
    ]
}

更新

以下是我的s3存储桶设置

**Properties**
Events 0 Active notifications
Versioning Suspended
MFA delete Disabled
Logging Disabled
Static web hosting Disabled
Tags 0 Tags
Requester pays Disabled
Object lock Disabled
Transfer acceleration Disabled

**Permissions**
Owner xxxxxx
Block public access Disabled
Bucket policy No
Access control list 1 Grantees
CORS configuration No

**Management**
Lifecycle Disabled
Cross-region replication Disabled
Analytics Disabled
Inventory Disabled
Metrics Disabled

1 个答案:

答案 0 :(得分:1)

我认为除了s3:PutObjectAcl之外,您还需要添加"s3:PutObject", "s3:GetObject", "s3:DeleteObject"

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "*"
        }
    ]
}