Amazon web services 亚马逊AWS。IAM用户无法上载文件”;“由于错误”;
我有一个有一个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": [
{
"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桶中有一只山羊的图片。我会在测试后回复。谢谢你的回答。我明天会测试它,可能会接受它。