AWS SQSサービスを使用していますが、SQSキューでパーミッションを定義するのに苦労しています。私のセットアップでは、オブジェクトがS3バケットにプッシュされたときにトリガーされるAWSLambdaサービスを使用しています。
しかし、私の質問を簡潔に保つために、これは私が達成したいことです:
以前のユースケースからわかるように、AWSLambdaメソッドをSQSキューにメッセージを送信できる唯一のアプリケーションにしたいと思います。プリンシパルと条件「sourceArn」を設定しようとしました。しかし、それらのどれも機能しません。
誰か助けてもらえますか?
SourceArn
フィールドにLambdaが入力されるとは思いません。 SourceArnがSNSで機能することは知っていますが、Lambdaは、SNSのようなAWS機能ではなく、実際には任意のコードを実行しています。
別の方法として、Lambda関数が実行されるIAMロールにポリシーをアタッチできます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1440529349000",
"Effect": "Allow",
"Action": [
"sqs:SendMessage"
],
"Resource": [
"arn:aws:sqs:us-west-2:123456789012:test-queue"
]
}
]
}
この方法では、キューに直接アタッチされたポリシーは必要ありません。