Я пытаюсь GetAccountBalance на моей учетной записи Mechanical Turk, используя Boto, ссылаясь на файл моих общих учетных данных. Я был успешным в этом, набрав мои учетные данные напрямую, но не смог использовать имя профиля.Попытка получить баланс в MTurk с помощью Boto, но получить «Личность, содержащаяся в запросе, не имеет права использовать этот AWSAccessKeyId»
Следующий код работает
import import boto.mturk.connection
sandbox_host = 'mechanicalturk.sandbox.amazonaws.com'
mturk = boto.mturk.connection.MTurkConnection(
aws_access_key_id = 'XXX',
aws_secret_access_key = 'XXX',
host = sandbox_host,
)
print mturk.get_account_balance() # [$10,000.00]
Однако я хочу, чтобы использовать профиль, который я создал в ~/.aws/учетные данные:
[default]
aws_access_key_id = 'XXX'
aws_secret_access_key = 'XXX'
[iamuser]
aws_access_key_id = 'XXX'
aws_secret_access_key = 'XXX'
профиль по умолчанию является мастер AWS учетной записи, в то время как iamuser - пользователь IAM с полномочиями Full Mechanical Turk. Я хотел бы использовать iamuser для проверки моего баланса MTurk. Как я уже говорил, предыдущий код с явными ключами работает нормально. Однако я хотел бы, чтобы он работал следующим образом:
import import boto.mturk.connection
sandbox_host = 'mechanicalturk.sandbox.amazonaws.com'
mturk = boto.mturk.connection.MTurkConnection(
profile_name = 'iamuser',
host = sandbox_host,
)
print mturk.get_account_balance() # [$10,000.00]
Когда я пытаюсь это, я получаю следующее сообщение об ошибке:
Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python2.7/site-packages/boto/mturk/connection.py", line 74, in get_account_balance ('OnHoldBalance', Price)]) File "/usr/local/lib/python2.7/site-packages/boto/mturk/connection.py", line 838, in _process_request return self._process_response(response, marker_elems) File "/usr/local/lib/python2.7/site-packages/boto/mturk/connection.py", line 853, in _process_response raise MTurkRequestError(response.status, response.reason, body) boto.mturk.connection.MTurkRequestError: MTurkRequestError: 200 OK b6bdb875-b937-471c-bc00-86225e198ee2
AWS.NotAuthorized
The identity contained in the request is not authorized to use this AWSAccessKeyId (1482788645643 s)
Я был бы признателен за любую помощь по этому вопросу. Thanks
Нашел, где была моя ошибка. По-видимому, есть приоритет, по которому считываются учетные данные. Переменные среды имеют более высокий приоритет, чем общие учетные данные. У меня были некоторые переменные среды, объявленные в .bash_profile, которые противоречили тем, что были в моем скрипте. Таким образом, решение заключалось в том, чтобы удалить их из файла .bash_profile. –