Kinesis Client Library (KCL) возвращает эту ошибку при попытке запустить файл conn_kinesis_test.py в их github.
boto.exception.JSONResponseError: JSONResponseError: 400 Bad Request
{u'Message': u'User: user:arn is not authorized to perform: kinesis:CreateStream on resource: resource:arn', u'__type': u'AccessDeniedException'}
Итак, я знаю, что мой пользователь не имеет доступа к этому ресурсу.Я пытался использовать aws-cli
из терминала:
aws kinesis list-streams --region eu-west-1 --profile prof
Возвращает:
{
"StreamNames": [
"test_stream"
]
}
Затем я знаю, что мне нужно повторить это поведение в коде Python.Код:
from boto import kinesis
conn = kinesis.connect_to_region(region_name = region)
#conn=boto.connect_kinesis()
try:
status = get_stream_status(conn, stream_name)
if 'DELETING' == status:
print('The stream: {s} is being deleted, please rerun the script.'.format(s=stream_name))
sys.exit(1)
elif 'ACTIVE' != status:
wait_for_stream(conn, stream_name)
except:
# We'll assume the stream didn't exist so we will try to create it with just one shard
conn.create_stream(stream_name, 1)
wait_for_stream(conn, stream_name)
Я искал, как настроить IAM_ROLE, используя boto 2, и ничего не ясно.Они говорят о методе STS, но он не работает.Я попытался воспроизвести поведение from boto.s3.connection import S3Connection
, а затем настроить глобальную переменную со значением IAM_ROLE
, но ни одна из них не работает.
Возможно ли это?