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
Amazon s3 授予AWS IAM组对单个S3存储桶的访问权限_Amazon S3_Amazon Iam - Fatal编程技术网

Amazon s3 授予AWS IAM组对单个S3存储桶的访问权限

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

我有一个供应商,需要上传一个CSV文件和一个ZIP文件每晚到一个AWS S3桶。显然,我不希望他们看到/访问我的任何其他存储桶。在与他们反复交流之后,他们完成夜间任务的唯一方法是将以下策略应用于其用户所属的IAM组:

{
    "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/*"  
       ]  
     }  
   ]  
 }