首页 > 解决方案 > 为 S3 上传创建新的 IAM 策略时需要哪些权限?

问题描述

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

所以我创建了IAM User一个新策略并尝试创建一个新策略,它只允许

  1. 上传文件
  2. 读取文件

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

它没有用。我注意到当我提供时full s3 access我可以毫无问题地上传,所以我可能在创建策略时错过了一些权限。以下是我的权限。

在此处输入图像描述

在此处输入图像描述 我需要为提供上述受限访问的新访问策略提供哪些权限列表?

这是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

标签: amazon-web-servicesamazon-s3flutteramazon-iam

解决方案


我认为您只需要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": "*"
        }
    ]
}

推荐阅读