亚马逊AWS。 IAM 用户无法上传文件 "due to errors"

Amazon AWS. IAM user cant upload files "due to errors"

我有一个只有一个 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": "*"
        }
    ]
}

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

我尝试用管理员用户上传相同的文件,但它成功了。谢谢你的帮助,我有点迷路了。

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

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

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

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

        "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/*"
        ]