当我赋予以下IAM角色访问:ARN:AWS:S3 ::: MYBUCKET时,无法创建一个预先的URL



我遇到了有关创建预先签名URL的非常奇怪的问题。beasntalk中的代码创建了预先签名的URL,该URL很好,代码没有问题。但是,当我对Beanstalk的实例配置文件进行以下访问时,我无法生成长URL,无法点击图像。:

  {
        "Action": [
            "s3:*",
            "s3:List*",
            "s3:PutObject",
            "s3:Delete*"
        ],
        "Resource": [
            "arn:aws:s3:::mybucket",
            "arn:aws:s3:::mybucket/*"
        ],
        "Effect": "Allow"
    }

和mybucket是我在那里的图像的存储桶,我从那里创建了预先签名的URL。有趣的是,当我尝试一下时:

  {
        "Action": [
            "s3:*",
            "s3:List*",
            "s3:PutObject",
            "s3:Delete*"
        ],
        "Resource": [
            "arn:aws:s3:::*",
            "arn:aws:s3:::mybucket/*"
        ],
        "Effect": "Allow"
    }

它开始工作。但是我不想给 *访问,这根本没有意义。我只是在使用mybucket,为什么当我提供访问 *而不是访问mybucket时它可以起作用。任何想法?我错过了什么吗?

Update

更具体地说,如果我想能够查看我的预先签名URL(有效的链接),我需要在我的IAM策略中具有以下部分:

{
        "Action": [
            "s3:Get*"
        ],
        "Resource": [
            "arn:aws:s3:::*"
        ],
        "Effect": "Allow"
    }

如果您需要在IAM角色中添加getObject权限,则预先签名的URL无法正确创建。您不需要在策略中获得http get的预设URL的getObject。

注意:以下是不良政策。您将在第一行中授予所有权限,然后在接下来的三行中指定其他权限,这无助。

    "s3:*",
    "s3:List*",
    "s3:PutObject",
    "s3:Delete*"

相关内容

  • 没有找到相关文章