我正在按照this教程从S3添加/列出对象。
起初,由于Access Denied
错误,我在列出对象时遇到了问题,因此我发现必须向<创建的角色添加其他权限s3:ListBucket
和资源arn:aws:s3:::my-bucket
。 strong>认知取消身份验证用户:
{
"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
。
我做错了还是本教程有很多错误?
其他检查:
Access Denied
错误之后,我可以看到在cognito取消身份验证中存在新的身份,因此脚本可以正常工作。答案 0 :(得分:0)
在策略中添加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"
]
}
}
答案 1 :(得分:0)
我不确定cognito在内部如何工作,它可能正在使用s3对象的ACL。因此,添加json_decode
和s3:PutObjectAcl
操作访问权限可能会有所帮助。此外,如果您的代码正在分段上传到S3,则应考虑添加s3:GetObjectAcl
操作访问权限。 s3:ListBucketMultipartUploads
操作已经添加了启动分段上传,上传分段,完成分段上传的权限。