2017-11-17 21 views
0

私はS3バケットを持っています。このアカウントには複数のIAMユーザーがいます。 バケットポリシーを設定して、複数のユーザーがこのバケットにアクセスできるようにしたいと考えています。単一のユーザーへのアクセスのためにAWS S3:アカウント内の複数のユーザーのバケットポリシーを設定する

は、私のバケットポリシーはそうのようになります。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "arn:aws:iam::8474632:user/personA" 
      }, 
      "Action": [ 
       "s3:getObject", 
       "s3:PutObject", 
       "s3:DeleteObject", 
       "s3:getObjectAcl", 
       "s3:GetObjectVersion" 
      ], 
      "Resource": "arn:aws:s3:::thisbucket/*" 
     } 
    ] 
} 

私は、この行を変更しようとしました:

"AWS": "arn:aws:iam::8474632:user/*"

"AWS": "arn:aws:iam::8474632:user/personA"

にアクセスできるようにするすべてのユーザーが、動作しません。

私はすべて/一部のユーザー一つずつの一覧を表示できます。

"Principal": { 
    "AWS": ["arn:aws:iam::111122223333:user/PersonA", 
      "arn:aws:iam::111122223333:user/PersonB"] 
    }, 

は、ユーザーまたはすべてのユーザーのグループにバケットのアクセスを許可するためのより良い方法はありますか?

+0

**バケットポリシー**が必要な理由はありますか?IAMユーザーがメンバーになっているグループにIAMポリシーが添付されていませんか? IAMの方針は、これをどうにかするのは難しいと思っています。 – tkwargs

+0

ユーザーまたはバケツに制限を設けるべきですか?私の考えは、ユーザーに制限をかけずに、バケットへのアクセスを細かく制御することでした。 – rmf

+1

本当にあなたの組織とあなたの要件に依存します。ベスト・プラクティスは、特定のバケットに対するパーミッションを定義したIAMポリシーを使用し、それらのポリシーをグループおよびロールに割り当て、ユーザーをグループに割り当てたり、ユーザーが特定のロールを想定できるようにすることです。バケツのポリシーレベルで制限することができます([aws blog post](https://aws.amazon.com/blogs/security/how-to-restrict-amazon-s3-bucket-access-to-a-specific- iam-role /))、それは維持することがより困難になります – tkwargs

答えて

3

おそらく、これを行う別の方法は、すべてのユーザーに添付されたIAMポリシーを使用することです。

"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:GetObject", 
      "s3:GetObjectAcl", 
      "s3:GetObjectVersion", 
      "s3:GetObjectVersionAcl", 
      "s3:GetObjectVersionTagging", 
      "s3:PutObject", 
      "s3:PutObjectAcl", 
      "s3:PutObjectVersionAcl" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::bucket_name/*" 
     ] 
    } 
] 

}

が次に新しい役割にそのポリシーを追加し、あなたがアクセスしたいユーザーとその役割を関連付ける:あなたのようなポリシーを作成します。

関連する問題