2012-02-01 7 views
1

私はS3バケットにアクセスするための認証情報を作成するのにAWS IAM STS(boto経由)を使用しています。私は、次の方針で何が間違っているかについて迷っています。私は可能な限り私の方針を簡素化し、予期せぬ結果を得ています。シンプルなAWSユーザーポリシーでシングルバケットを指定する際の問題

私は、次のポリシーを添付したユーザーのトークンを取得する場合:

user_policy_string = r'{"Statement":[{"Effect":"Allow","Action": "s3:*","Resource":"arn:aws:s3:::*"}]}' 

これは動作しますが、明らかに少しも許容します。私はS3にアクセスしようとすると、ここで

user_policy_string = r'{"Statement":[{"Effect":"Allow","Action": "s3:*","Resource":"arn:aws:s3:::buck_binary_bucket_bay-earth-d5a/*"}]}' 

が、私は403エラーを取得:これらの資格情報に関連付けられた権限を絞り込んで、私は、同じポリシーを使用しますが、バケツを指定しようとします。 AWSのドキュメントに基づいて、私はこれがポリシーの特定のバケツに対処する方法だと確信しています。だから私はこの制限を引き起こす可能性のあるものを紛失しています。バケツを間違って参照していますか?

S3コンソールでは、ポリシーは空です(完全に許容されるポリシーも追加しようとしました)。 STSトークンを生成するために使用するAWSアカウントの場合、ポリシーは次のとおりです。

"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": "sts:GetFederationToken", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "iam:GetUser", 
     "Resource": "*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": "s3:*", 
     "Resource": "*" 
    } 
    ] 
} 

答えて

6

Here I get 403 errors when I try to access S3.

どのようにあなたが実際にはどのツール、サービス、APIによってS3に、すなわち、アクセスしようとするのですか?

多くの場合、ポリシーによって既にターゲットとされているResourceのほかに、異なるリソースタイプを扱うS3 API呼び出しが含まれます。具体的には、Operations on the Service(たとえばListAllMyBuckets)、Operations on Buckets(たとえばListBucket)とOperations on Objects(たとえばGetObject)の違いに注意する必要があります。

S3アクセス方法で暗黙的に他のリソースタイプ(つまり、既にでアドレス指定しているオブジェクトリソース以外)を使用している場合は、それに応じて追加のポリシーが必要です。

"Statement":[{ 
     "Effect":"Allow", 
     "Action":"s3:ListBucket", 
     "Resource":"arn:aws:s3:::buck_binary_bucket_bay-earth-d5a", 
     } 
    ] 
+0

ありがとう:たとえば、オブジェクトにアクセスする前ListBucket経由バケット内のオブジェクトを一覧表示することができるという一般的な要件は、それ自体がそうのようなバケットを扱うそれぞれの政策の断片を必要とします。これは*正確に*問題でした。 –

+5

AUGH。 AWSのポリシー・メカニズムは悲惨です。参考までに、「リソース」:["arn:aws:s3 ::: BUCKETNAME"、 "Resource": "arn:aws: s3 ::: BUCKETNAME/* "] – Erhannis

+0

@Steffen:sir私はコンソールにログオンしたときにs3にポリシーを適用して、コンソールにログオンしても何も表示しません:'あなたはアクセス権がありませんそれ ' – user3086014

関連する問題