【问题标题】:AWS lambda cloudwatch subscriptionAWS lambda cloudwatch 订阅
【发布时间】:2019-10-01 16:05:21
【问题描述】:

我想向 AWS lambda 日志添加 cloudwatch 订阅,从而使我的 AWS lambda 由 cloudwatch 日志触发。我应该向 lambda 用于启用此功能的角色添加哪些权限?

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-iam amazon-cloudwatch


    【解决方案1】:

    默认情况下,您的 Lambda 将有权访问 CloudWatch 以写入日志(使用默认 AWSLambdaBasicExecutionRole),但是如果您想手动添加它,这是具有所需权限的策略:

    {
      "document": {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents"
            ],
            "Resource": "*"
          }
        ]
      },
      "name": "AWSLambdaBasicExecutionRole",
      "id": "xxxxx",
      "type": "managed",
      "arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
    }
    

    Lambda 上 CloudWatch 事件触发器的 Lambda 函数策略:

    {
      "Version": "2012-10-17",
      "Id": "default",
      "Statement": [
        {
          "Sid": "uuid",
          "Effect": "Allow",
          "Principal": {
            "Service": "events.amazonaws.com"
          },
          "Action": "lambda:invokeFunction",
          "Resource": "arn:aws:lambda:us-east-x:xxxxxxxxxxxx:function:LambdaFunction",
          "Condition": {
            "ArnLike": {
              "AWS:SourceArn": "arn:aws:events:us-east-x:xxxxxxxxxxxx:rule/CloudWatchRule"
            }
          }
        }
      ]
    }
    

    【讨论】:

    • 感谢@Deiv,就我而言,我希望 cloudwatch 事件触发我的 lambda。是否适用相同的政策?
    • 那将是另一种情况,您问题中的措辞建议访问 Lambda 日志 -> cloudwatch :) 但是,当您将 cloudwatch 事件触发器添加到您的 lambda 时,策略将自动添加(对于lambda:invokefunction),所以你不需要添加任何东西
    • 同意,我的问题不清楚 :) 我正在尝试通过 terraform 脚本进行操作,是否有此政策的示例?
    • 更新了我的答案以包含它的政策:)
    猜你喜欢
    • 1970-01-01
    • 2020-03-03
    • 2019-02-09
    • 1970-01-01
    • 2017-11-28
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多