将Amazon S3存储桶连接到其他服务器 - IAM

问题描述:

我试图通过存储桶策略将Amazon S3连接到其他服务。将Amazon S3存储桶连接到其他服务器 - IAM

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": {"arn:aws:iam::ACCOUNT-ID:user/augmen", 
     } 

     "Action": [ 
     "s3:ListBucket", 
     "s3:GetBucketLocation", 
     "s3:GetObject" 
     ], 
     "Resource": ["arn:aws:s3:::rajatv.input", 
        "arn:aws:s3:::rajatv.input/*"] 
    } 
    ] 
} 

仍然得到这样的错误:

  1. 该策略包含无效的Json
  2. 无效桶语法
  3. 没有资源

看来你想给桶访问特定的IAM用户。如果是这样,最好的方法是自己在IAM用户上放置一个策略,以便权限仅适用于他们。

此策略将授予存储桶访问权限给任何具有IAM策略的用户。要添加它,去给用户,添加内嵌政策

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "PermitBucketAccess", 
      "Effect": "Allow", 
      "Action": [ 
       "s3:ListBucket", 
       "s3:GetBucketLocation", 
       "s3:GetObject" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::rajatv.input", 
       "arn:aws:s3:::rajatv.input/*" 
      ] 
     } 
    ] 
} 

斗策略,这是适用于桶本身,是最适合用来授予访问大家,而一个IAM策略是最好的用于授予特定IAM用户,组和角色的权限。

+0

我试过这个,但错误:缺少必填字段主体? – Swap

+0

将其添加到IAM用户(通过内嵌策略) - 而不是桶策略。因为它附加到用户,它不需要一个委托人。 –

委托人都需要有这样的格式:

"Principal": {"AWS": ["arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:root"]},