为了账号安全,请及时绑定邮箱和手机立即绑定

上传 S3 对象时访问被拒绝

上传 S3 对象时访问被拒绝

慕码人8056858 2021-12-23 15:14:56
我正在关注从 S3 添加/列出对象的本教程。起初,我因为Access Denied出错而无法列出对象,所以我发现我必须向由cognito创建的角色添加额外的权限s3:ListBucket和资源给 unauth 用户:arn:aws:s3:::my-bucket{    "Version": "2012-10-17",    "Statement": [        {            "Effect": "Allow",            "Action": [                "s3:PutObject",                "s3:GetObject",                "s3:ListBucket",                "s3:DeleteObject"            ],            "Resource": [                "arn:aws:s3:::my-bucket",                "arn:aws:s3:::my-bucket/*"            ]        }    ]}现在,当我尝试上传文件时,我得到了另一个Access Denied.是我做错了什么还是本教程有很多错误?额外检查:桶有 CORS创建后我没有更改存储桶的任何权限(一切默认)我正在使用正确的 Cognito 身份池 ID(我可以列出 albmus)我可以删除相册之后Access Denied的错误,我可以看到,有在cognito UNAUTH新的身份,所以脚本正常工作。存储桶的所有者(我)对存储桶具有读/写访问权限
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

我不确定 cognito 在内部如何工作,它可能会使用 s3 对象的 ACL。因此,添加s3:PutObjectAcls3:GetObjectAcl操作访问可能会有所帮助。此外,如果您的代码正在向 S3 执行分段上传,则应考虑添加s3:ListBucketMultipartUploads操作访问权限。s3:PutObject操作已经添加了Initiate Multipart UploadUpload PartComplete Multipart Upload的权限。


查看完整回答
反对 回复 2021-12-23
?
精慕HU

TA贡献1845条经验 获得超8个赞

使用策略添加 IAM 角色,这将使用户能够使用 API 或控制台上传任何文件。


{

    "Version": "2012-10-17",

    "Id": "1",

    "Statement": [

        {

            "Sid": "1",

            "Effect": "Allow",

            "Principal": {

                "AWS": [

                    "arn:aws:iam::777777:user/myuser"

                 ]

            },

            "Action": [

                "s3:ListBucket",

                "s3:PutObject",

                "s3:PutObjectAcl",

                "s3:GetObject",

                "s3:DeleteObject",

                "s3:GetObjectAcl"

            ],

            "Resource": [

                "arn:aws:s3:::bucketname/*",

                "arn:aws:s3::: bucketname"

            ]

        }

}


查看完整回答
反对 回复 2021-12-23
  • 2 回答
  • 0 关注
  • 335 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信