【问题标题】:How to import terraform policy attachment?如何导入 terraform 策略附件?
【发布时间】:2021-09-14 22:08:31
【问题描述】:

我们的主要目标是将一些资源移动到不同的 terraform 状态文件。我正在尝试导入资源的策略附件,但似乎它不支持导入策略附件。我收到一个错误。

如果不支持,还有什么替代方案?

我正在尝试导入此政策

 + 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 v0.11.0
+ provider.aws v1.5.0

【问题讨论】:

  • aws_iam_role_policy_attachment 没有导入,但我认为您也不需要它。如果您只是应用它而不导入它会发生什么?我猜它要么会抱怨该角色已经附加了策略,要么希望它刚刚完成。

标签: terraform


【解决方案1】:

此问题已在 1.37.0 中为 provider.aws 插件修复。升级与 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)

我希望这会有所帮助。

【讨论】:

  • aws 提供程序版本 1.39:resource aws_iam_user_policy_attachment doesn't support import
  • @HubertGrzeskowiak 我确实将提供程序版本更新为 0.1.42。但在文档中确实说它已被修复 resource/aws_iam_role_policy_attachment: Support resource import (#5910)
  • 仍然无法导入aws_iam_policy_attachment(在我的情况下用于访问VPC)。
【解决方案2】:

编辑:new PR 已编写并合并,并且发布了新版本的 AWS Terraform 提供程序 (1.37.0),添加了此功能。这个答案现在不再有效了;有关如何执行此操作,请参阅 Momooo 的答案。

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

【讨论】:

    【解决方案3】:

    根据@Momooo 的回复,我可以像这样导入用户策略附件:

    terraform import aws_iam_user_policy_attachment.TERRAFORM_RESOURCE_NAME USER_NAME/POLICY_ARN
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-11
      • 2022-01-19
      • 2020-10-31
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多