首页 文章

如何导入terraform政策附件?

提问于
浏览
2

我们的主要目标是将一些资源转移到不同的地形状态 . 我试图导入资源的策略附件,但似乎它不支持导入策略附件 . 我收到一个错误 .

如果它不支持,另一种选择是什么?

我正在尝试导入此政策

+ aws_iam_role_policy_attachment.gitlab_as_attach
      id:                                                <computed>
      policy_arn:                                        "arn:aws:iam::xxxxxxxxxxxx:policy/gitlab_as_policy"
      role:                                              "gitlab_prod"

错误:

terraform import aws_iam_role_policy_attachment.gitlab_as_attach arn:aws:iam::xxxxxxxxx:policy/gitlab_as_policy
aws_iam_role_policy_attachment.gitlab_as_attach: Importing from ID "arn:aws:iam::xxxxxxxx:policy/gitlab_as_policy"...
Error importing: 1 error(s) occurred:

* aws_iam_role_policy_attachment.gitlab_as_attach (import id: arn:aws:iam::xxxxxxxxxx:policy/gitlab_as_policy): import aws_iam_role_policy_attachment.gitlab_as_attach (id: arn:aws:iam::xxxxxxxxxx:policy/gitlab_as_policy): resource aws_iam_role_policy_attachment doesn't support import

terraform版本:

Terraform v0.11.0
+ provider.aws v1.5.0

2 回答

  • 3

    对于provider.aws插件,此问题在1.37.0中得到修复 . 升级与terraform相关的插件和模块 .

    要升级插件,请运行以下命令

    terraform init -upgrade
    

    要升级模块,请运行以下命令

    terraform get -update
    

    有关详细信息,请查看与terraform相关的缺陷和增强功能

    https://github.com/terraform-providers/terraform-provider-aws/blob/master/CHANGELOG.md#1370-september-19-2018

    我今天为aws_iam_role_policy_attachment运行了导入并且它成功了 .

    terraform import -provider=aws.{example} aws_iam_role_policy_attachment.role-attach-1 {test-role}/arn:aws:iam::aws:policy/ReadOnlyAccess
    aws_iam_role_policy_attachment.role-attach-1: Importing from ID "{test-role}/arn:aws:iam::aws:policy/ReadOnlyAccess"...
    aws_iam_role_policy_attachment.role-attach-1: Import complete!
      Imported aws_iam_role_policy_attachment (ID: {test-role}-arn:aws:iam::aws:policy/ReadOnlyAccess)
    aws_iam_role_policy_attachment.role-attach-1: Refreshing state... (ID: {test-role}-arn:aws:iam::aws:policy/ReadOnlyAccess)
    

    我希望这有帮助 .

  • 1

    EDIT: a new PR已编写并合并,并且发布了新版本的AWS Terraform提供程序(1.37.0),添加了此功能 . 这个答案现在不再有效了;看看Momooo的答案是如何做到的 .

    不幸的是,这已经是AWS Terraform提供商的open issue一段时间了,PR that would fix it被放弃了 . 您可以尝试分离策略,刷新terraform,执行导入,然后在导入后重新附加 .

相关问题