我正在使用AWS SQS服务,并且很难定义SQS队列上的权限。在我的设置中,我使用的是AWS Lambda服务,当将对象推送到S3存储桶时会触发该服务。
但是,让我简短地提问,这是我要实现的目标:
对象被推到S3存储桶
S3存储桶触发AWS Lambda
Lambda进行一些计算,然后将事件推送到我的SQS队列中(需要定义权限)
应用程序从SQS读取
从前面的用例中可以看出,我希望我的AWS Lambda方法成为唯一的应用程序,它可以将消息发送到SQS队列。我试图设置一个主体和条件“ sourceArn”。但是它们都不起作用。
有人可以帮忙吗?
最佳答案
我认为Lambda不会填充SourceArn
字段。我知道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"
]
}
]
}
此方法不需要将策略直接附加到队列。
关于amazon-web-services - AWS Lambda的AWS SQS权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211246/