我正在尝试在GCP中自动部署定义的IAM角色,策略和策略绑定到选定的GCP项目或所有GCP项目。
我知道GCP组织存在,并且它们可以用于在一个地方定义IAM资源,以便将它们继承给子项目。然而,组织在GCP中并不是强制性的,一些客户将使用旧的结构,其中项目并排存在,没有继承,并且不想迁移到组织中。
一个解决方案是创建遍历项目并创建所有内容的脚本。但是,最好使用GCP原生解决方案。是否有一种GCP原生的方式来部署像这样定义的IAM资源(可能还有其他项目级别的配置)到特定的GCP项目或所有项目,这些项目无论客户是否使用组织都可以工作,并且不需要迭代项目?
我正在尝试在GCP中提出一种自动部署的方法为选定的GCP定义IAM角色、策略和策略绑定
部署工具使用称为配置文件的资源的简明描述。这些工具管理资源状态,这意味着您声明想要什么,它们就会实现。它们不是动态的,因为你不能说有时做X,有时做Y。你说做X到Y,如果不一样,就做Y。
部署工具是IaaC -基础设施即代码。配置文件是实现"期望状态"目标的蓝图。您编写配置文件,工具知道如何构建与所需状态匹配的资源。
如果您的目标是基于输入、条件和/或外部因素的动态配置,则基于IaaC的工具将无法满足您的目标。
对于基于IaaC的工具,您有两个支持良好的选项。
- Google部署管理器。这是一个官方的谷歌产品。
- Terraform Google Provider。Terraform是HashiCorp的产品。Google Provider由Google开发。
我建议选择Terraform和Google Provider。Terraform是跨平台的,世界上大多数地方都支持Terraform。Terraform非常易于使用,有许多培训资源,示例配置,互联网指南,入门文章和YouTube视频。我在Terraform和Google Cloud上写过几篇文章。
在你的问题中,你提到了写脚本。这是可能的,但我不建议这么做。对于一次性配置,在脚本中使用Google Cloud CLI是可行的,有时是必要的。一旦掌握了部署语言,它的好处是巨大的。
不迭代项目?
除非您实施组织,否则Google Cloud Projects是单独的独立资源。部署工具是特定于项目的,这意味着如果您希望管理多个项目中的资源,则必须在部署配置中声明这一点。它们不迭代项目,你声明它们。