Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Permissions Amazon S3 bucket策略拒绝除一个用户外的所有用户的putObject权限_Permissions_Amazon S3_Bucket - Fatal编程技术网

Permissions Amazon S3 bucket策略拒绝除一个用户外的所有用户的putObject权限

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

我的目标是允许一个用户将对象放入s3存储桶中。我想用一个桶政策。我理解,您不能拒绝所有用户使用PutObjects,然后用对所需用户的允许来覆盖它。我曾希望使用条件“ArnNotEquals”将单个用户排除在拒绝策略声明之外:

"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策略起作用。