2016-01-20 3 views
4

Я пытаюсь перейти от python boto к новому модулю boto3 для управления файлами на Amazon S3.Подключитесь к Amazon S3 с boto3 с ролями IAM

Мне также нужно использовать роли Amazon IAM, как и со старым модулем boto. Я не знаю, как IAM роль устанавливается на сервере, но все, что я должен был сделать это:

s3_conn = S3Connection() 

и я хотел бы получить доступ ко всем ведер, что сервер имеет доступ.

Это, кажется, отличается boto3:

s3 = boto3.resource('s3') 
for bucket in s3.buckets.all(): 
    print(bucket.name) 

Я получаю сообщение об ошибке:

File "<stdin>", line 1, in <module> 
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 83, in __iter__ 
    for page in self.pages(): 
File "/usr/local/lib/python2.7/dist-packages/boto3/resources/collection.py", line 161, in pages 
    pages = [getattr(client, self._py_operation_name)(**params)] 
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 310, in _api_call 
    return self._make_api_call(operation_name, kwargs) 
File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 407, in _make_api_call 
    raise ClientError(parsed_response, operation_name) 
botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the ListBuckets operation: Access Denied 

Я иду через boto3 документации, но я не уверен, что мне нужно сделать, чтобы установить Совместите IAM ролях:

http://boto3.readthedocs.org/en/latest/

ответ

6

Вам потребуется s3:ListBucket в вашей политике для всех соответствующих ковшей. Вы можете найти полный список условий политики S3 here.

+0

Как добавить разрешение с Python Boto3? – Utopia

Смежные вопросы