我得到了一个非常广泛的问题,关于创建预先签署的网址。beasntalk中的代码创建预签名的url,这是很好的,并且代码没有问题。但是,当我对豆茎的实例配置文件进行以下访问时,虽然生成了一个很长的url,但我无法点击该图像。
{
"Action": [
"s3:*",
"s3:List*",
"s3:PutObject",
"s3:Delete*"
],
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
],
"Effect": "Allow"
}我的桶是我有我的图像的桶,我在那里创建我的预先签名的url。有趣的是,当我尝试这个:
{
"Action": [
"s3:*",
"s3:List*",
"s3:PutObject",
"s3:Delete*"
],
"Resource": [
"arn:aws:s3:::*",
"arn:aws:s3:::mybucket/*"
],
"Effect": "Allow"
}开始起作用了。但我不想让*访问,这完全没有意义。我只是在使用我的桶,为什么当我给出访问权时,它会工作*而不是当我给出访问权限的时候。有什么想法吗?我有遗漏什么吗?
更新
更具体地说,如果我想查看我预先签名的url(有效链接),我需要在我的IAM策略中包含以下部分:
{
"Action": [
"s3:Get*"
],
"Resource": [
"arn:aws:s3:::*"
],
"Effect": "Allow"
}发布于 2017-11-30 18:48:24
如果您需要向您的IAM角色添加GetObject权限,那么您预先签名的URL就不会被正确创建。对于HTTP的预签名URL,在策略中不需要GetObject权限。
注意:以下是错误的政策。您将在第一行中授予所有权限,然后在接下来的三行中指定其他权限,这不会增加任何其他权限。
"s3:*",
"s3:List*",
"s3:PutObject",
"s3:Delete*"https://stackoverflow.com/questions/47579941
复制相似问题