【问题标题】:What minimum permissions should I set to give S3 file upload access?我应该设置什么最低权限才能授予 S3 文件上传访问权限?
【发布时间】:2020-11-05 17:41:40
【问题描述】:

我使用 HTML 和 Javascript 在 S3 上上传文件。我遇到了一个问题 --> 我为未经身份验证的实体创建了一个角色,并为其分配了以下策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:putObject"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

我收到拒绝访问错误。但是当我授予权限时

"s3:*" 我可以上传文件。我可以给予什么最低权限来完成这项工作

【问题讨论】:

  • 我试过IAM角色只有s3:PutObjectaws s3 cp命令可以成功使用。

标签: amazon-web-services amazon-s3 amazon-cognito


【解决方案1】:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:GetObjectAcl",
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*"
        }
    ]
}

【讨论】:

  • 嗨。您是否缺少存储桶 arn? s3:ListBucket 仅适用于存储桶,不适用于其对象。 GetBucketLocation 也是如此。
  • 这对我有用。文件正在上传到存储桶上。谢谢。
  • bucket arn 的 /* 结尾非常重要。如果您错过了它,您不会将文件上传到存储桶。
【解决方案2】:

对于删除和上传,我们可以使用权限

    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObjectAcl",
                "s3:DeleteObjectVersion",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetBucketLocation",
                "s3:PutObjectAcl"
            ],
            "Resource": [
                "arn:aws:s3:::BUCKET_NAME/*",
                "arn:aws:s3:::BUCKET_NAME"
            ]
        }
    ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2019-10-29
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2012-05-15
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多