导入 terraform aws_iam_policy

chr*_*ett 3 amazon-web-services terraform

我正在尝试导入由我不拥有的自动化自动添加的 terraform aws_iam_policy。导入似乎有效,但是一旦我运行 terraform 计划,我就会收到以下错误

* aws_iam_policy.mypolicy1: "policy": required field is not set
Run Code Online (Sandbox Code Playgroud)

我正在按如下方式运行 terraform 导入。

terraform import aws_iam_policy.mypolicy1 <myarn>
Run Code Online (Sandbox Code Playgroud)

这是我的相关 terraform 配置

resource "aws_iam_policy" "mypolicy1" {

}

resource "aws_iam_role_policy_attachment" "mypolicy1_attachment`" {
    role       = "${aws_iam_role.myrole1.name}"
    policy_arn = "${aws_iam_policy.mypolicy1.arn}"
}

resource "aws_iam_role" "myrole1" {
     name = "myrole1"
     assume_role_policy = "${file("../policies/ecs-role.json")}"
}
Run Code Online (Sandbox Code Playgroud)

我仔细检查了 terraform.tfstate 是否包含我尝试导入的策略。还有什么我在这里想念的吗?

yda*_*coR 5

您仍然需要在 Terraform 配置中提供所需的字段以使计划生效。

如果aws_iam_policy从配置中删除资源并在导入策略后运行计划,您应该会看到 Terraform 想要销毁策略,因为它在状态文件中但不在配置中。

只需设置您的aws_iam_policy资源以匹配导入的策略,然后计划不应显示任何更改。