Je travaille actuellement sur un site Web développé avec Symfony2 et j'ai besoin d'envoyer des messages dans un Amazon SQS. Pour ce faire, j'ai ajouté à mon composer.json
:
"aws/aws-sdk-php": "2.4.*"
Ensuite, lorsque j'essaie de créer une file d'attente ou une liste de files d'attente, j'ai une erreur 403 disant:
L'accès à la ressource https://sqs.us-west-2.amazonaws.com/ est refusé.
EDIT: a ajouté le message d'erreur complet
Code d'erreur AWS: AccessDenied, Code d'état: 403, ID de demande AWS: 2fe34c11-7af8-5445-a768-070159a0953e, Type d'erreur AWS: client, Message d'erreur AWS: Accès à la ressource https://sqs.us -west-2.amazonaws.com/ est refusé., User-Agent: aws-sdk-php2/2.4.11 Guzzle/3.7.4 curl/7.25.0 PHP/5.4.3
Voici un exemple de code de ce que je fais:
$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()));
Que dois-je faire de mal pour obtenir cette erreur?
Après avoir creusé, j'ai découvert que le compte que j'utilisais n'avait pas accès au service SQS.
Pour donner un accès SQS à un compte, vous devez vous rendre sur la console de gestion Amazon. Cliquez ensuite sur IAM. Sous cette section, cliquez sur Utilisateurs, puis vous pouvez gérer les autorisations pour chaque compte que vous avez créé.