【问题标题】:AWS security group rules deployment (lambda->SQS)AWS 安全组规则部署 (lambda->SQS)
【发布时间】:2016-06-12 09:13:05
【问题描述】:

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

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

关于如何自动化在 AWS 服务(主要是 lambda 和 SQS)之间添加权限并为 prod env 创建“良好”部署包的过程有什么建议吗?

【问题讨论】:

    标签: amazon-web-services amazon-sqs aws-lambda aws-security-group


    【解决方案1】:

    每个 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 权限。

    【讨论】:

    • 我在 zip 文件中有一个 lambda 代码。问题是如何在 AWS 控制台中手动应用此策略(或者它可以以某种方式成为部署的一部分)?
    • 您无法在没有角色的情况下创建 Lambda 函数。因此,要么首先创建角色,然后在 lambda 函数创建期间选择它,要么在创建 Lambda 函数时创建角色,然后前往 IAM 添加权限。这可以使用控制台或 API。
    猜你喜欢
    • 2018-08-25
    • 2021-09-22
    • 2018-08-05
    • 2019-07-28
    • 2015-11-13
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多