tho*_*s94 2 amazon-web-services terraform terraform-provider-aws
我正在尝试使用 Terraform 创建 IAM 角色和 IAM 策略。
\n我收到此错误:
\n\xe2\x94\x82 Error: error creating IAM Role (asg-domain-join-policy): MalformedPolicyDocument: Has prohibited field Resource\n \n status code: 400, request id: 53fa1ae0-f22f-4f2e-8aa6-1947421eae9b\n\n with aws_iam_role.ad_join_role,\n on iam.tf line 30, in resource "aws_iam_role" "ad_join_role":\n 30: resource "aws_iam_role" "ad_join_role" {\nRun Code Online (Sandbox Code Playgroud)\n我当前的 IAM 角色代码如下:
\nresource "aws_iam_role" "ad_join_role" {\n name = "asg-domain-join-policy"\n assume_role_policy = data.aws_iam_policy_document.asg_domain_join_policy.json\n permissions_boundary = "arn:aws:iam::${var.account_id}:policy/****"\n}\nRun Code Online (Sandbox Code Playgroud)\nIAM 策略的代码如下:
\ndata "aws_iam_policy_document" "asg_domain_join_policy" {\n statement {\n actions = [\n "ssm:DescribeAssociation",\n "ssm:GetDocument",\n "ssm:ListAssociations",\n "ssm:UpdateAssociationStatus",\n "ssm:UpdateInstanceInformation",\n "ssm:CreateAssociation",\n ]\n effect = "Allow"\n resources = ["ec2"]\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n我不确定为什么会收到该错误。
\nErv*_*gyi 12
可以assume_role_policy有一个仅指定操作的文档AssumeRole。您所要做的就是拆分您的策略以创建单独的策略,以便能够承担角色,并能够将其他权限附加到该角色。
例如:
# Allow EC2 instances to assume the role
data "aws_iam_policy_document" "asg_assume_role_policy" {
statement {
actions = [
"sts:AssumeRole"
]
effect = "Allow"
principals {
type = "Service"
identifiers = ["ec2.amazonaws.com"]
}
}
}
# Create the policy which allows other actions for the EC2 instance
data "aws_iam_policy_document" "asg_domain_join_policy" {
statement {
actions = [
"ssm:DescribeAssociation",
"ssm:GetDocument",
"ssm:ListAssociations",
"ssm:UpdateAssociationStatus",
"ssm:UpdateInstanceInformation",
"ssm:CreateAssociation"
]
effect = "Allow"
resources = ["*"]
}
}
resource "aws_iam_role" "ad_join_role" {
name = "asg-domain-join-policy"
assume_role_policy = data.aws_iam_policy_document.asg_assume_role_policy.json
# Attach the policy
inline_policy {
policy = data.aws_iam_policy_document.asg_domain_join_policy.json
}
}
Run Code Online (Sandbox Code Playgroud)
此示例中需要注意的一些事项:
aws_iam_policy_attachment["*"]。如果您希望对策略执行更详细的操作,您可能需要查看此页面以了解哪个操作允许哪种资源类型。显然,["ec2"]这不是有效的资源类型。| 归档时间: |
|
| 查看次数: |
7389 次 |
| 最近记录: |