2017-08-03 52 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