【问题标题】:lambda:InvokeFunction Not Working with All Resources Setlambda:InvokeFunction 不适用于所有资源集
【发布时间】:2016-10-02 06:09:36
【问题描述】:

我正在为我用来运行 Lambda 函数的用户角色之一制定访问策略。我有这个:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": "lambda:InvokeFunction",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}

我知道将我的资源设置为 * 不是最佳做法,但我只是想在我锁定它的最锁定版本之前让它工作。

当我测试我的 lambda 函数时,它会这样说:

ClientError: An error occurred (AccessDeniedException) when calling the Invoke operation: User: arn:aws:sts::{NUMBERS}:assumed-role/{ROLE_NAME}/awslambda_{NUMBERS}_{NUMBERS} is not authorized to perform: lambda:InvokeFunction on resource: arn:aws:lambda:us-east-1:{NUMBERS}:function:{FUNCTION_NAME}

我显然已经用花括号和单词掩盖了上面的一些内容,但上面的 ROLE_NAME 与我正在为其编辑策略的角色名称相匹配。我不确定它为什么会失败。我已经尝试过以下资源:

arn:aws:lambda:*:*:*:*
arn:aws:lambda:*:*:*

那些不起作用。所以我尝试了非常广泛的范围,我尝试缩小范围,但没有任何效果。我还需要做些什么才能让它们坚持下去吗?我在一个屏幕上打开了 IAM 策略窗口,在另一个屏幕上打开了 lambda,因此我在更新策略后立即进行测试,但我也完全注销并重新登录以查看是否有问题。这并没有解决问题。

有什么想法吗?

【问题讨论】:

    标签: amazon-web-services aws-lambda


    【解决方案1】:

    我不久前做过这个。来自我的笔记。当然账户支票还在。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": ["lambda:InvokeFunction"],
          "Effect": "Allow",
          "Resource": "arn:aws:lambda:*:*:*"
        }
      ]
    }
    

    您还可以尝试 AWS 控制台中的 IAM 策略模拟器页面。您可以挑选行动和资源,看看它是否通过。乍一看,解释有时很笨拙,但很有帮助。

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 2011-11-19
      相关资源
      最近更新 更多