2017-08-03 94 views
1

我想导入一个terraform aws_iam_policy,它会自动添加自动化我不拥有。进口似乎工作,但一旦我运行一个terraform计划我得到以下错误导入terraform aws_iam_policy

* aws_iam_policy.mypolicy1: "policy": required field is not set 

我运行terraform进口如下。

terraform import aws_iam_policy.mypolicy1 <myarn> 

这里是我的相关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")}" 
} 

我仔细检查了该terraform.tfstate包括我试图导入策略。还有什么我在这里失踪?

+0

正如ydaetskcoR已经指出的那样,您需要添加terraform配置来“创建”现有资源,以及将现有资源添加到状态文件。你可能会发现[terraforming](https://github.com/dtan4/terraforming)这个有用的工具。 –

回答

2

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

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

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

+0

谢谢。这些文档对于如何工作很困惑。 – chrisevett