2017-08-03 7 views
1

私は所有していないオートメーションによって自動的に追加されるterraform aws_iam_policyをインポートしようとしています。インポートが動作しているようですが、私はテラフォームの計画を実行した後、私は次のエラーterraformをインポートするaws_iam_policy

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

次のように私はテラフォームのインポートを実行しているを取得します。ここで

terraform import aws_iam_policy.mypolicy1 <myarn> 

は、私は、二重terraform.tfstate iがインポートしようとしているポリシーが含まれていることを確認し、私の関連テラフォームの設定

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")}" 
} 

です。私はここに何か他のものがありますか?

+0

ydaetskcoRは既に指摘しているように、既存のリソースを状態ファイルに追加するだけでなく、既存のリソースを「作成」するためにterraform構成を追加する必要があります。あなたは[terraforming](https://github.com/dtan4/terraforming)がこれを手助けする役に立つツールかもしれません。 –

答えて

2

計画を実行するには、Terraform設定で必要なフィールドを入力する必要があります。

構成からaws_iam_policyリソースを削除し、ポリシーをインポートした後でプランを実行すると、ポリシーが状態ファイルにあり、構成には含まれていないため、Terraformがポリシーを破棄する必要があります。

aws_iam_policyリソースをインポートしたポリシーと一致するように設定するだけで、計画には変更が反映されません。

+0

ありがとうございます。ドキュメンテーションは、これがどのように動作するのかについて本当に混乱しています。 – chrisevett

関連する問題