我需要使用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": ""
}
]
}
答案 0 :(得分:1)
您不能在承担角色策略中添加实际操作。
假设角色策略用于限制如何假设角色(通过用户/ EC2实例或ECS任务/ AWS服务/跨账户角色等)。
您需要指定角色可以在策略中执行的实际操作,可以是直接执行的策略,也可以是附加到角色的托管策略中的操作。