Amazon s3 授予AWS IAM组对单个S3存储桶的访问权限
我有一个供应商,需要上传一个CSV文件和一个ZIP文件每晚到一个AWS S3桶。显然,我不希望他们看到/访问我的任何其他存储桶。在与他们反复交流之后,他们完成夜间任务的唯一方法是将以下策略应用于其用户所属的IAM组:Amazon s3 授予AWS IAM组对单个S3存储桶的访问权限,amazon-s3,amazon-iam,Amazon S3,Amazon Iam,我有一个供应商,需要上传一个CSV文件和一个ZIP文件每晚到一个AWS S3桶。显然,我不希望他们看到/访问我的任何其他存储桶。在与他们反复交流之后,他们完成夜间任务的唯一方法是将以下策略应用于其用户所属的IAM组: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "A
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "s3:*",
"Resource": "arn:aws:s3:::*"
}
]
}
这显然是不理想的,我真的希望他们的用户有一个更严格的政策。我一直在用测试一系列其他策略,在测试ListBucket和PutObject时,它们都会产生“拒绝-隐式拒绝(无匹配语句)”的结果。我还从bucket中删除了“blockall public access”设置,认为它创建了固有的拒绝状态
我尝试过的许多政策包括:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
及
及
在此感谢您的帮助。提前感谢您抽出几分钟的时间。更新:
我的进一步测试以及我的供应商的广泛测试已经证实了这一点,可以根据需要工作
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
此供应商是否通过web控制台或api/sdk?api/CLI进行访问。对不起,应该已经澄清了。您是否为正在模拟的ListBucket和PutObject指定了bucket arn?如果是,它是否与
mybucket
匹配?我在模拟中没有指定bucket ARN。我就这么做了,它过去了。如果我将此策略部署到IAM组,是否有任何原因不起作用?我目前正在使用上面提到的最后一个进行测试。您需要发布有关IAM组附加了哪些策略的更多详细信息,以便我们进行调试。是的,该策略会起作用。我已将您的问题标题从“限制”改为“授予”,因为这正是您在这种情况下所需要的(授予访问权限而不是限制现有访问权限)。如果您发现自己希望对多个供应商执行此操作,您可以使用此策略限制对特定路径的访问,而不必为每个供应商分配一个bucket。见:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListAllMyBuckets"
],
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mybucket",
"arn:aws:s3:::mybucket/*"
]
}
]
}