Amazon web services 导入terraform aws_iam_策略

Amazon web services 导入terraform aws_iam_策略,amazon-web-services,terraform,Amazon Web Services,Terraform,我正在尝试导入一个terraform aws_iam_策略,该策略由我不拥有的自动化自动添加。导入似乎有效,但一旦我运行地形计划,就会出现以下错误 * aws_iam_policy.mypolicy1: "policy": required field is not set 我正在运行terraform导入,如下所示 terraform import aws_iam_policy.mypolicy1 <myarn> 我仔细检查了terraform.tfstate是否包含我试图导入

我正在尝试导入一个terraform aws_iam_策略,该策略由我不拥有的自动化自动添加。导入似乎有效,但一旦我运行地形计划,就会出现以下错误

* aws_iam_policy.mypolicy1: "policy": required field is not set
我正在运行terraform导入,如下所示

terraform import aws_iam_policy.mypolicy1 <myarn>

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

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

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


只需将您的
aws\u iam\u策略
资源设置为与导入的策略相匹配,然后计划将不会显示任何更改。

谢谢。文档中确实混淆了这应该如何工作。正如ydaetskcoR已经指出的,您需要添加地形配置来“创建”现有资源,以及将现有资源添加到状态文件中。您可能会找到一个有用的工具来帮助您完成这项工作。
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")}"
}