Amazon web services 亚马逊AWS。IAM用户无法上载文件”;“由于错误”;

Amazon web services 亚马逊AWS。IAM用户无法上载文件”;“由于错误”;,amazon-web-services,amazon-s3,amazon-iam,Amazon Web Services,Amazon S3,Amazon Iam,我有一个有一个IAM用户的组。集团已附上此政策: { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1449507915000", "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [

我有一个有一个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": "*"
        }
    ]
}
当用户试图上传文件时,他会收到一条消息,上面写着:


我试图上传与管理员用户相同的文件,它的工作。谢谢你的帮助,我有点迷路了。

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

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


我相信这不是最终的解决方案,因为它将权限授予
任何经过身份验证的用户
。而且我真的相信AWS IAM文档显然是不完整的,它们没有提到任何关于这个特定于bucket的权限的内容。而且我无法在
Grantee
下拉字段中选择IAM用户,这很混乱。

好的。以下是您的部分政策:

        "Action": [
            "s3:*"
        ],
        "Resource": [
            "arn:aws:s3:::fouraxis"
        ]
问题是您为bucket提供了广泛的s3访问权限。但是你试图把一把钥匙放在桶里,它有自己的资源。例如,我将
goat-8.jpg
添加到您的bucket中,因此它有以下内容: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/*"
        ]

您可以单击错误消息旁边的三角形以获取更多详细信息吗?我不确定,但看起来您可以扩展该消息。我再也看不到关于该错误的详细信息了。如果我展开消息,我会看到一行写着:
error\u aws.jpg
什么都没有。而
error\u aws.jpg
只是我想上传的文件名(粘贴在问题上的图像)。是否也有bucket策略?@James是的,有一个,它授予我访问权限(我要删除的根用户以及我创建IAM用户的原因)。是的,这是一个危险信号。但是,嘿,现在你的s3桶中有一只山羊的图片。我会在测试后回复。谢谢你的回答。我明天会测试它,可能会接受它。