亚马逊AWS。 IAM用户无法上传文件"由于错误"

时间:2015-12-09 17:02:42

标签: amazon-web-services amazon-s3 amazon-iam

我有一个有一个IAM用户的小组。本集团附有此政策:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1449507915000",
            "Effect": "Allow",
            "Action": [
                "s3:*"
            ],
            "Resource": [
                "arn:aws:s3:::fouraxis"
            ]
        },
        {
            "Sid": "ListAllBuckets",
            "Action": "s3:ListAllMyBuckets",
            "Effect": "Allow",
            "Resource": "*"
        }
    ]
}

当用户尝试上传文件时,他会收到一条消息:

enter image description here

我尝试使用admin用户上传相同的文件,但它确实有效。谢谢你的帮助,我有点迷失在这里。

2 个答案:

答案 0 :(得分:2)

好。这是您的政策的一部分:

        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::fouraxis"
        ]

问题是您已经为广告素材提供了广泛的s3访问权限 。但是你试图将一个密钥放在桶中,它有自己的资源。例如,我将goat-8.jpg添加到您的存储桶中,因此它具有此arn:arn:aws:s3:::fouraxis/goat-8.jpg

要允许上传到所有密钥,您可以提供通配符ARN:

"arn:aws:s3:::fouraxis/*"

所以,把它放在政策中:

        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::fouraxis",
            "arn:aws:s3:::fouraxis/*"
        ]

这将使工作。如果您不希望用户删除或执行任何恶作剧,您可以选择使用操作位获得更多限制。这是一个例子:

        "Action": [
            "s3:GetObject",
            "s3:PutObject"
        ],
        "Resource": [
            "arn:aws:s3:::fouraxis",
            "arn:aws:s3:::fouraxis/*"
        ]

答案 1 :(得分:1)

好的,我找到了一些东西,但我不能说这是一个正确的答案。它只是一个解决方法。

以管理员身份转到存储桶,然后添加此权限(第二个):

enter image description here

我认为这不是最终解决方案,因为它授予Any Authenticated User权限。另外,我真的相信AWS IAM文档显然是不完整的,他们没有提到任何关于这个特定于桶的权限。我无法在Grantee下拉字段中选择IAM用户,这会令人困惑。