Отказано в доступе к SQS через AWS SDK

В настоящее время я работаю над веб-сайтом, разработанным с помощью Symfony2, и мне нужно отправлять сообщения в Amazon SQS. Для этого я добавил в свой composer.json:

"aws/aws-sdk-php": "2.4.*"

Затем, когда я пытаюсь создать очередь или список очередей, у меня появляется ошибка 403:

Доступ к ресурсу https://sqs.us-west-2.amazonaws.com/ запрещен.

РЕДАКТИРОВАТЬ: добавлено полное сообщение об ошибке.

Код ошибки AWS: AccessDenied, код состояния: 403, идентификатор запроса AWS: 2fe34c11-7af8-5445-a768-070159a0953e, Тип ошибки AWS: клиент, Сообщение об ошибке AWS: доступ к ресурсу https://sqs.us-west-2.amazonaws.com/ запрещен., User-Agent: aws-sdk-php2 / 2.4.11 Guzzle /3.7.4 завиток / 7.25.0 PHP / 5.4.3

Вот пример кода того, что я делаю:

$aws = Aws::factory(array(
  'key'    => 'my-key',
  'secret' => 'my-secret',
  'region' => 'us-west-2'
));

$sqs = $aws->get('sqs');

return new Response(var_dump($sqs->listQueues()));

Что я делаю не так, чтобы получить эту ошибку?


person SupaCoco    schedule 27.11.2013    source источник
comment
Я убедился, что это не проблема прокси, добавив параметры curl в массив конфигурации.   -  person SupaCoco    schedule 27.11.2013


Ответы (2)


После раскопок я обнаружил, что используемой мной учетной записи не предоставлен доступ к службе SQS.

Чтобы предоставить SQS доступ к учетной записи, вам нужно перейти в консоль управления Amazon. Затем нажмите IAM. В этом разделе нажмите «Пользователи», после чего вы сможете управлять разрешениями для каждой созданной вами учетной записи.

person SupaCoco    schedule 03.12.2013
comment
БИНГО !! У меня была такая же проблема с правами доступа для пользователей. Спасибо, Supa - person Logicalj; 01.12.2014
comment
Когда все остальные службы могут быть связаны с пользователем по умолчанию, зачем нужен отдельный пользователь SQS? - person Babu; 29.05.2015
comment
Кстати, какую политику вы приложили? Следующее не работает и по-прежнему показывает 403.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sqs:*", "Resource": "*" } ] } - person janasainik; 29.05.2018
comment
Если вы столкнулись с этим из-за образования облаков. Попробуйте обновить разрешения очереди sqs на моей вкладке разрешений. Работал на меня - person Yousef khan; 08.01.2020
comment
Привет, иногда это не настоящее решение, в моем случае я предоставил все необходимые разрешения, но, наконец, проблема была связана с шаблоном сопоставления в запросе на интеграцию, а также с типом содержимого заголовка - person Hatim; 24.01.2020

Убедитесь, что обе следующие политики разрешают доступ к очереди SQS.

  1. Политика на основе ресурсов (SQS): очередь SQS должна позволять вашей личности использовать эту очередь. Вы определяете это с помощью политики очереди (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-sqs-policy). Политика очереди по умолчанию разрешает доступ только владельцу очереди (владельцем очереди является идентификатор, создавший очередь).
  2. Политики на основе удостоверений: политика для удостоверения, обращающегося к очереди, должна иметь разрешение на запуск операций в очереди.

Убедитесь, что доступ не ограничен ни одним из них.

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-using-identity-based-policies.html

person srgsanky    schedule 18.01.2020