2015-01-19 1 views
0

В настоящее время я пытаюсь подключиться к 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, но это тоже не работает.

Любые идеи?

+0

Правильно, вам нужно только connect_sqs(). Что вы получаете, когда закручиваете эту конечную точку? Кроме того, вставьте права доступа, используемые этим сервером. – tedder42

+0

Я получаю ключ доступа, секретный ключ и токен. Но я все еще получаю ошибку выше. Разрешения для очереди SQS - «Все». – Sc0rpio

+1

Я говорю о разрешениях в обратном направлении; в IAM/Roles, вставьте соответствующую ролевую политику из экземпляра. Это нормально обфускать идентификаторы учетных записей. – tedder42

ответ

0

Ваш код SQS в целом правильный. Обратите внимание, что если вы используете свой код на экземпляре Amazon EC2, которому была назначена роль, тогда AWS SDK автоматически получит учетные данные из службы метаданных.

Вот код, который работал для меня из экземпляра EC2. Обратите внимание, что я подключаюсь к региону Сиднея:

Python 2.6.9 (unknown, Sep 13 2014, 00:25:11) 
>>> import boto, boto.sqs 
>>> q_conn = boto.sqs.connect_to_region("ap-southeast-2") 
>>> q = q_conn.get_queue('cheese-queue') 
>>> q 
Queue(https://ap-southeast-2.queue.amazonaws.com/123412341234/cheese-queue) 
Смежные вопросы