用于自动将 IAM 资源部署到项目的原生 GCP 解决方案?

Native GCP solution for automatically deploying IAM resources to projects?

我正在尝试在 GCP 中想出一种方法来自动将定义的 IAM 角色、策略和策略绑定部署到选定的 GCP 项目或所有 GCP 项目。

我知道存在 GCP 组织,它们可​​用于在一个地方定义 IAM 资源,以便将它们继承到子项目。但是,组织在 GCP 中不是强制性的,一些客户将使用旧结构,其中项目在没有继承的情况下并存,并且不想迁移到组织。

一个解决方案是创建迭代项目并创建所有内容的脚本。但是,GCP 本机解决方案将是更可取的。是否有 GCP 本机方法可以将这样定义的 IAM 资源(以及可能的其他项目级配置)部署到特定的 GCP 项目或所有项目,无论客户是否使用组织且无需迭代项目,这些项目都可以正常工作?

I'm trying to come up with a way in GCP to automatically deploy defined IAM roles, policies and policy bindings to selected GCP projects or all GCP projects.

部署工具使用称为配置文件的资源的简明描述。这些工具管理资源状态,这意味着您可以声明您想要的东西,它们会实现。它们不是动态的,因为您不会说有时做 X 有时做 Y。您说对 Y 做 X,如果不同就做 Y。

部署工具是 IaaC - 基础架构即代码。配置文件是您实现“期望状态”目标的蓝图。您编写配置文件,工具知道如何构建与所需状态匹配的资源。

如果您的目标是基于输入、条件、and/or 外部因素的动态配置,基于 IaaC 的工具将无法满足您的目标。

对于基于 IaaC 的工具,您有两个支持良好的选项。

  • Google 部署管理器。这是官方 Google 产品。该产品是特定于供应商的。
  • Terraform Google 提供商。 Terraform 是 HashiCorp 的产品。 Google 提供程序由 Google 开发。

我建议选择 Terraform 和 Google Provider。 Terraform 是跨平台的,世界上大部分地区都支持 Terraform。 Terraform 非常易于使用,有大量的培训资源、示例配置、Internet 指南、入门文章和 YouTube 视频。我用 Google Cloud 写了一些关于 Terraform 的文章。

在你的问题中,你提到了编写脚本。这是可能的,但我不建议这样做。对于一次性配置,在脚本中使用 Google Cloud CLI 是可行的,有时是必要的。部署语言一旦掌握,好处是巨大的。

without iterating over projects?

除非您实施组织,否则 Google 云项目是单独的独立资源。部署工具是特定于项目的,这意味着如果你想管理多个项目中的资源,你必须在部署配置中声明。他们不迭代项目,你声明他们。