Permissions Amazon S3 bucket策略拒绝除一个用户外的所有用户的putObject权限
我的目标是允许一个用户将对象放入s3存储桶中。我想用一个桶政策。我理解,您不能拒绝所有用户使用PutObjects,然后用对所需用户的允许来覆盖它。我曾希望使用条件“ArnNotEquals”将单个用户排除在拒绝策略声明之外:Permissions Amazon S3 bucket策略拒绝除一个用户外的所有用户的putObject权限,permissions,amazon-s3,bucket,Permissions,Amazon S3,Bucket,我的目标是允许一个用户将对象放入s3存储桶中。我想用一个桶政策。我理解,您不能拒绝所有用户使用PutObjects,然后用对所需用户的允许来覆盖它。我曾希望使用条件“ArnNotEquals”将单个用户排除在拒绝策略声明之外: "Statement": [ { "Sid": "allow only OneUser to put objects", "Effect": "Deny", "Principal": { "A
"Statement": [
{
"Sid": "allow only OneUser to put objects",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::myBucket/*",
"Condition": {
"ArnNotEquals": {
"aws:SourceArn": "arn:aws:iam::123456789012:user/OneUser"
}
}
}
]
但是,这会导致拒绝向所有用户提供PutObject。我走对了吗?是否有一个桶政策,我可以为这制定?或者我需要看看其他地方,比如ACL()?这样做的方法是使用policy元素。它允许您将策略应用于除特定列表之外的所有原则。您的政策将变成:
"Statement": [
{
"Sid": "allow only OneUser to put objects",
"Effect": "Deny",
"NotPrincipal": {
"AWS": "arn:aws:iam::123456789012:user/OneUser"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::myBucket/*"
}
]
像这样试试。。
SourceArn→ 阿恩
"Statement": [
{
"Sid": "allow only OneUser to put objects",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::myBucket/*",
"Condition": {
"ArnNotEquals": {
"aws:Arn": "arn:aws:iam::123456789012:user/OneUser"
}
}
}
]
查看答案并在上发表评论。似乎他也面临着类似的问题,他的结论是使用ACL,因为他也无法让bucket策略起作用。