如何安全地从google_project_iam_policy资源迁移到google_project_iam_member?

时间:2018-11-14 00:51:19

标签: terraform-provider-gcp

我有一个TF项目,当前使用单个google_project_iam_policy资源,并且想过渡到使用 google_project_iam_member

documentation警告:

  

google_project_iam_policy不能与google_project_iam_binding和google_project_iam_member结合使用,否则它们将争夺您的政策。

是否存在从一种样式迁移到另一种样式的安全路径?

1 个答案:

答案 0 :(得分:3)

google_project_iam_policy可能会与google_project_iam_bindinggoogle_project_iam_member进行抗争,但应该可以在短时间内同时使用它们(前提是它们包含相同的值)。

我还没有测试过,但是我认为应该可以做类似的事情:

  1. 将当前的google_project_iam_policy权限镜像到一组新的google_project_iam_bindinggoogle_project_iam_member资源中
  2. 运行terraform apply将新资源添加到您的Terraform状态文件中
  3. 从Terraform配置中删除旧的google_project_iam_policy资源,但不要运行terraform apply
  4. 为每个旧的terraform state rm <resource-name>资源运行google_project_iam_policy
  5. 运行terraform plan并确认未计划任何更改