2015-08-25 2 views
9

J'utilise le service AWS SQS et j'ai du mal à définir les autorisations sur ma file d'attente SQS. Dans ma configuration j'utilise le service AWS Lambda, qui est déclenché lorsqu'un objet est poussé sur un compartiment S3.AWS SQS autorisations pour AWS Lambda

Cependant, pour garder ma question brièvement, ce que je veux atteindre:

  1. objet est poussé à un seau S3
  2. seau S3 déclenche AWS Lambda
  3. Lambda fait quelques calculs, et pousser un événement à ma file d'attente SQS (autorisation doit être définie)
  4. application lit de SQS

Comme vous pouvez read from use-case, je souhaite que ma méthode AWS Lambda soit la seule application capable d'envoyer un message à la file d'attente SQS. J'ai essayé de définir un principal et une condition "sourceArn". Mais aucun d'entre eux travaillent ..

enter image description here

Quelqu'un peut-il aider?

Répondre

6

Je ne pense pas que le champ SourceArn soit peuplé par Lambda. Je sais que SourceArn fonctionne pour SNS, mais Lambda exécute réellement du code arbitraire, pas une fonctionnalité AWS comme SNS. Vous pouvez également attacher une stratégie au rôle IAM dans lequel votre fonction Lambda s'exécute en tant qu'alternative.

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "Stmt1440529349000", 
      "Effect": "Allow", 
      "Action": [ 
       "sqs:SendMessage" 
      ], 
      "Resource": [ 
       "arn:aws:sqs:us-west-2:123456789012:test-queue" 
      ] 
     } 
    ] 
} 

Cette méthode ne nécessite pas de politique directement attachée à la file d'attente.