2017-07-24 82 views
0

我创建了一个名为user1的用户和一个名为s3limitedaccess的角色,并在下面附加了该桶策略。为此用户创建了访问和密钥,但无法让此用户查看此存储桶或对其执行任何操作。请有人建议。由于不确定为什么这个aws s3存储桶政策不起作用?

代码:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1499888918000", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::rscexternal/*" 
      ] 
     } 
    ] 
} 

回答

0

如果您希望将权限分配给特定的IAM用户,IAM组或IAM角色,您应该直接分配的权限,针对该用户/组/角色内IAM 而不是创建一个桶策略。 (这可能是你做了什么,而是你所提到的“斗政策”,因此目前还不清楚。)

一些亚马逊S3 API调用在斗级操作(如上市桶)和一些在操作对象级别(例如GetObject)。因此,你需要授予这两个访问的策略:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "GrantFullAccess", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:*" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::rscexternal", 
       "arn:aws:s3:::rscexternal/*" 
      ] 
     } 
    ] 
} 

与上述政策的IAM用户应该然后能够访问桶。例如,使用AWS Command-Line Interface (CLI)

aws s3 ls s3://rscexternal 

如果希望用户通过管理控制台能够使用Amazon S3,需要额外的权限。

Policy for Console Access

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:GetBucketLocation", 
     "s3:ListAllMyBuckets" 
     ], 
     "Resource": "arn:aws:s3:::*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": ["s3:ListBucket"], 
     "Resource": ["arn:aws:s3:::test"] 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
     "s3:PutObject", 
     "s3:GetObject", 
     "s3:DeleteObject" 
     ], 
     "Resource": ["arn:aws:s3:::test/*"] 
    } 
    ] 
} 
+0

辉煌。谢谢你现在的作品。 –