我试图列出我的S3桶中的所有文件。但是不断地拒绝错误访问。我认为我在我的IAM用户中拥有必要的权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "SID",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetBucketAcl",
"s3:GetBucketCORS",
"s3:GetBucketLocation",
"s3:GetBucketLogging",
"s3:GetBucketNotification",
"s3:GetBucketPolicy",
"s3:GetBucketRequestPayment",
"s3:GetBucketTagging",
"s3:GetBucketVersioning",
"s3:GetBucketWebsite",
"s3:GetLifecycleConfiguration",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectTorrent",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersionTorrent",
"s3:ListAllMyBuckets",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:ListBucketVersions",
"s3:ListMultipartUploadParts",
"s3:PutBucketAcl",
"s3:PutBucketCORS",
"s3:PutBucketLogging",
"s3:PutBucketNotification",
"s3:PutBucketPolicy",
"s3:PutBucketRequestPayment",
"s3:PutBucketTagging",
"s3:PutBucketVersioning",
"s3:PutBucketWebsite",
"s3:PutLifecycleConfiguration",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:RestoreObject"
],
"Resource": [
"arn:aws:s3:::bucket/*"
]
}
]
}如果我授予对S3的完全访问权限,(AmazonS3FullAccess策略),我可以列出对象。可能会有什么问题?我认为我只删除了在自定义策略中删除和创建桶的权限。
当我添加对同一策略的完全访问时:
"Action": [
"s3:*"
],但我还是不能列出对象。但是有了当前的权限,我可以上传和删除对象。
发布于 2016-03-05 08:30:51
找到答案了!策略中允许的操作是正确的。问题在于Resource。我在用这个:
"Resource": [
"arn:aws:s3:::bucket/*"
]但看起来它并没有赋予桶的根以权限。不能完全进入。因此,为了使其正常工作,我们必须像这样删除/:
"Resource": [
"arn:aws:s3:::bucket*"
]现在它就像一种魅力。
发布于 2017-10-25 12:50:07
我也有同样的问题。我使用了两台机器,一台是创建了aws配置文件,我可以列出s3桶,但是在第二台机器上,我的配置文件没有创建,我使用的是Set-AWSCredential命令,我无法列出s3桶。创建配置文件的那一刻,我就能够访问s3 ls。
https://stackoverflow.com/questions/35811337
复制相似问题