创建IAM角色时出错:MalformedPolicyDocument:禁止了字段Resource

游戏玩家

我正在尝试创建Lambda角色,并将其附加为允许所有ElasticSearch集群操作的策略。

下面是代码-

resource "aws_iam_role" "lambda_iam" {
  name = "lambda_iam"
  assume_role_policy = <<EOF
  {
    "Version": "2012-10-17",
    "Statement": [{
            "Action": [
                "es:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        }]
  }
EOF
}

resource "aws_lambda_function" "developmentlambda" {
  filename      = "lambda_function.zip"
  function_name = "name"
  role          = "${aws_iam_role.lambda_iam.arn}"
  handler       = "exports.handler"

  source_code_hash = "${filebase64sha256("lambda_function.zip")}"

  runtime = "nodejs10.x"
}

我收到以下错误

Error creating IAM Role lambda_iam: MalformedPolicyDocument: Has prohibited field Resource

有关资源的Terraform文档说,您可以为所有用户指定一个“ *”。Principal字段也不是必填字段,因此这不是问题。我仍然将其更改为

  assume_role_policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Principal": {
        "Service": "es.amazonaws.com"
      },
      "Effect": "Allow",
      "Sid": ""
    }
  ]
}
EOF
}

但这说-

Error creating Lambda function: InvalidParameterValueException: The role defined for the function cannot be assumed by Lambda.

我的lambda函数定义很简单

resource "aws_lambda_function" "development_lambda" {
  filename      = "dev_lambda_function.zip"
  function_name = "dev_lambda_function_name"
  role          = "${aws_iam_role.lambda_iam.arn}"
  handler       = "exports.test"

  source_code_hash = "${filebase64sha256("dev_lambda_function.zip")}"

  runtime = "nodejs10.x"
}

Lambda文件本身不包含任何内容,但是我不知道这是否可以解释错误。

这里有我想念的东西吗?

迈克尔-SQLbot

假设的作用的政策是角色的信任策略(允许将承担的角色),而不是角色的权限政策(什么权限的角色授予的假设实体)。

Lambda执行角色需要两种类型的策略。

立即发生错误,即“ Lambda无法假定为该功能定义的角色”,因为它需要权限策略中的需求"Principal": {"Service": "lambda.amazonaws.com"},而不是es.amazonaws.com我不使用terraform,但看起来它可能resource "aws_iam_policy"基于https://www.terraform.io/docs/providers/aws/r/lambda_function.html,我认为这是您正在使用的参考。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AWS创建角色-已禁止字段

创建StreamingContext时出错

通过Terraform创建策略时出现MalformedPolicyDocument错误

创建IAM策略时出现MalformedPolicyDocument错误

AWS Codepipeline向导“无法创建IAM角色”

创建AWS Lambda函数时使用现有IAM角色

创建存档时出错

为SAML的IAM角色创建策略

创建角色时出错

Amazon IAM策略:仅在附加策略之一为BaseDeny时,限制用户创建组/角色

在创建策略时出现错误:“具有禁止的字段主体”

创建IAM角色并将策略附加到该角色时出错

创建IAM角色时出错。MalformedPolicyDocument:具有禁止字段Resource。地貌

创建IAM角色时出错-属性PolicyDocument的值必须是一个对象

创建静态字段时出错

在创建JsonObjectContract时禁止$ type

尝试使用Boto3创建IAM角色时,总是出现MalformedPolicyDocument错误

创建bean时出错

创建AWS EMR默认角色时出错

通过cloudformation创建IAM角色时policyName中的错误

删除角色、用户或租户时出错

在实体框架迁移中从复杂对象创建字段时出错

AWS 无服务器框架:创建 IAM 角色和策略时出现 MalformedPolicyDocument 错误

错误:创建 IAM 角色 s3_access 时出错:MalformedPolicyDocument

由于查找字段而创建 SharePoint 列表项时出错

创建包含 ENUM 字段的 Oracle NoSQL 表时出错

创建 IAM 角色时出错:MalformedPolicyDocument:已禁止字段资源

从 SAM 中的模板创建 IAM 角色

使用 AWS-CDK 创建新 IAM 角色时创建自定义信任策略