AWS安全组规则部署(lambda->SQS)

AWS security group rules deployment (lambda->SQS)

在 AWS 上我们实现了 AWS lambda 将消息推送到 AWS 队列的功能;

然而,在此实施过程中,我不得不手动向 AWS lambda 授予权限以将消息添加到特定队列。而且这种手动点击的方法不太适合产品部署。

关于如何自动化在 AWS 服务(主要是 lambda 和 SQS)之间添加权限的过程以及如何为产品环境创建 "good" 部署包的任何建议?

每个 Lambda 函数都有一个附加角色,您可以在 IAM 控制面板中为其指定权限。如果您授予 Lambda 函数的角色推送到 SQS 队列的权限,那么您就可以开始了。例如,将此 JSON 作为自定义角色附加(参见 http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html):

{
  "Version": "2012-10-17",
  "Id": "Queue1_Policy_UUID",
  "Statement": 
    {
       "Sid":"Queue1_SendMessage",
       "Effect": "Allow",
       "Principal": {
            "AWS": "111122223333"
         },
        "Action": "sqs:SendMessage",
        "Resource": "arn:aws:sqs:us-east-1:444455556666:queue1"
     }
}

您可以使用星号为多个队列授予权限,例如:

"Resource": "arn:aws:sqs:us-east-1:444455556666:production-*"

向所有以 production- 开头的队列授予 sendMessage 权限。