2016-12-21 20 views
2

私はいくつかのAWSキーをプロビジョニングしました。これらのキーはs3バケット内の特定のディレクトリにアクセスできます。私はboto3を使って私に暴露されたディレクトリとやりとりしたいのですが、バケツ全体にアクセスすることはできないので、実際には何もできません。Boto3:権限が限定されたaws資格情報

これは私の端末からの私の作品:// the_bucket /と/これ/特定/パス/

が、私がしなければ: AWS S3のls S3 AWS S3 LS S3:// the_bucket/

私が取得:

ListObjects 操作を呼び出すときにエラーが(アクセス拒否)を発生しました:アクセスが

を拒否されました

boto3経由でディレクトリにアクセスしようとしたときにも発生します。

session = boto3.Session(profile_name=my_creds) 
client=session.client('s3') 
list_of_objects = client.list_objects(Bucket='the_bucket', Prefix='and/this/specific/path', Delimiter='/') 

boto3を使用できるようにバケット全体へのアクセスをリクエストする必要がありますか?

+0

あなたはIAMポリシーへのアクセス権を持っていますか?バケット内のオブジェクトを一覧表示する権限はありませんが、特定のオブジェクトをキーで取得するアクセス権があります(リストと取得は別個のアクセス許可です)。私はポリシーを見ることなく確かに言うことができません。 –

+0

また、バケット以上のものを含むARNでListObjectsを指定することはできません。それはさらに条件で制限することができますが、バケットには_list_を、接頭辞やキーではarnには_get_オブジェクトを許可します。 –

+0

あなたの質問にIAMポリシーのコピーを添付してください。 –

答えて

0

あなたはこのバケットポリシーを設定する必要があります。

{ 
    "Sid": "<SID>", 
    "Effect": "Allow", 
    "Principal": { 
    "AWS": "arn:aws:iam::<account>:user/<user_name>" 
    }, 
    "Action": [ 
    "s3:GetBucketLocation", 
    "s3:ListBucket" 
    ], 
    "Resource": "arn:aws:s3:::<bucket_name>" 
} 

For more information about Specifying Permissions in a Policy

関連する問題