В настоящее время я пытаюсь подключиться к SQS из своего экземпляра EC2 в пределах той же VPC и группы безопасности, как и следующее. «dev-box» - это имя моего имени роли IAM.Не удается подключиться к SQS из EC2 с временными учетными данными
Подключение к очереди SQS
response = requests.get('http://169.254.169.254/latest/meta-data/iam/security-credentials/dev-box')
data = response.json()
secret_key = data['AccessKeyId']
access_key = data['SecretAccessKey']
token = data['Token']
sqs_conn = boto.connect_sqs(access_key, secret_key, security_token=token)
q = sqs_conn.get_queue('test_queue')
get_queue метод бросает "запрещено" исключение, что указывает на "InvalidClientTokenId." Я довольно озадачен, почему это происходит. Я дважды проверял свои ценности несколько раз без успеха.
Мне нужно просто вызвать boto.connect_sqs() без параметров, потому что я запускаюсь из экземпляра EC2, но это тоже не работает.
Любые идеи?
Правильно, вам нужно только connect_sqs(). Что вы получаете, когда закручиваете эту конечную точку? Кроме того, вставьте права доступа, используемые этим сервером. – tedder42
Я получаю ключ доступа, секретный ключ и токен. Но я все еще получаю ошибку выше. Разрешения для очереди SQS - «Все». – Sc0rpio
Я говорю о разрешениях в обратном направлении; в IAM/Roles, вставьте соответствующую ролевую политику из экземпляра. Это нормально обфускать идентификаторы учетных записей. – tedder42