我希望向公众提供我的存储桶中的所有文件。包括这个受欢迎的答案在内,几个Stack Overflow的答案都表明我应该创建一个策略。
于是我进行了复制粘贴并编辑了资源名称和版本日期,但是我收到了一个错误提示。
Document is invalid: Invalid Version 2014-05-02 - undefined
我去查看了文档(请注意,它说“latest”),并且给出的示例是:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": {
"AWS": "*"
},
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/*"
]
}
]
}
我更改了资源名称并再次尝试,但仍然无法工作:版本不存在。
接着我注意到对话框角落有一个名为“AWS策略生成器”的链接。我填写了细节,点击“生成”,得到了类似以下内容的东西
{
"Id": "Policy1399047197120",
"Statement": [
{
"Sid": "Stmt1399047194777",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucketname/*",
"Principal": {
"AWS": [
"AWS"
]
}
}
]
}
它有效了!太好了,看起来他们决定放弃"version"选项,但是我在Stack Overflow和他们的示例中看到的所有示例都包括了这个"version"选项。
对我来说版本并不重要,但这是一个已知的更改吗?