添加权限时,Terraform AWS角色策略失败

时间:2018-07-11 01:44:48

标签: amazon-web-services terraform

我需要使用Terraform为AWS创建一些角色策略,基本角色可以正常工作,但是当我添加S3和日志时,出现格式错误的错误:

  

aws_iam_role.lambda_exec_role_s3:创建IAM角色时出错lambda_exec_role_s3:MalformedPolicyDocument:禁止了字段资源       状态码:400

这是失败的角色策略:

assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
    {
        "Action": "sts:AssumeRole",
        "Principal": {
            "Service": "lambda.amazonaws.com"
        },
        "Effect": "Allow",
        "Sid": ""
    },
    {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "logs:CreateLogGroup",
            "logs:CreateLogStream",
            "logs:PutLogEvents"
        ],
        "Resource": "arn:aws:logs:*:*:*"
    }
]
 }
  EOF

以下是工作角色政策:

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

1 个答案:

答案 0 :(得分:1)

您不能在承担角色策略中添加实际操作。

假设角色策略用于限制如何假设角色(通过用户/ EC2实例或ECS任务/ AWS服务/跨账户角色等)。

您需要指定角色可以在策略中执行的实际操作,可以是直接执行的策略,也可以是附加到角色的托管策略中的操作。