本页介绍如何使用 Fabric FAST Terraform 框架设置新的 “入门级”组织。虽然您可以随时手动创建项目、文件夹等,但使用 Fabric FAST 的基本设置可让您快速启动并运行,并提供安全、经过充分测试的默认设置,而无需大型企业设置的管理开销。
本页面向需要在 Cloud de Confiance中配置新组织的管理员。如果您的组织符合以下情况,我们建议您使用此选项:
- 您在云配置和 Terraform 方面的经验有限。
- 您希望单个团队(甚至单个工程师)端到端地管理整个堆栈。如果您是规模较小的组织或初创公司,或者您正在开发概念验证,则可能会出现这种情况。
完成此设置后,您可以继续使用 Terraform 管理新 组织,也可以切换为使用 Google Cloud CLI 或 Cloud de Confiance 控制台。
如果您有更复杂的组织或技术需求,或者您之前已将 Fabric FAST 与 Google Cloud 搭配使用,我们建议您直接前往使用 Fabric FAST 进行企业设置,了解 FAST 阶段并开始使用我们的经典配置。如果您仍不确定哪个选项适合您,请参阅哪个 Fabric FAST 设置适合 我?。
我应该先了解哪些内容?
在阅读本指南之前,您应该:
了解Cloud de Confiance概览中介绍的基本 Cloud de Confiance概念。
了解 Cloud de Confiance 资源 层次结构, 包括组织、文件夹和项目。
阅读设置概览, 尤其是关于 Fabric FAST的部分。本文档中介绍的基本设置使用一种特殊的 Fabric FAST 配置,该配置专门针对您的 Universe,并提供一个现成可用的组织,所有这些都在一个步骤中创建。
熟悉 Terraform会很有帮助,但您无需 成为经验丰富的 Terraform 用户即可使用本指南。
通过此设置,我可以获得什么?
“入门级”Fabric FAST 配置相对扁平,为您的组织提供了一个基本、可用的起点。这与“经典”设置形成对比,后者具有深层、企业级的资源层次结构,并且涉及分阶段逐步构建配置。
运行设置后,您的组织资源包含以下内容:
- 两个环境文件夹,一个用于开发,另一个用于生产。 它们会自动添加标记,以帮助您跟踪费用并按环境应用政策。
- 每个文件夹中的两个项目 :
- 一个专用网络项目 ,用于包含文件夹的单个网络。
- 第一个应用项目,在文件夹下创建,并配置 为文件夹的 VPC 的服务项目。
- 每个文件夹中的单个虚拟私有云 (VPC) 网络 ,其中包含一个子网和预配置的基本安全防火墙规则(例如,允许安全 Identity-Aware Proxy (IAP) 登录)。
- 单个顶级管理项目 (
prod-iac-core-0)。此项目充当设置的大脑,安全地存储 Terraform 的状态、自动化服务账号和中央审核日志。
然后,您可以根据需要添加自己的文件夹、项目、网络和其他资源。
下图显示了“入门级”资源之间的关系:
准备工作
确保符合以下条件:
- 您已为组织配置身份提供方 (IdP),并且 已使用管理员 ID 登录 Cloud de Confiance 。
- 您已设置 Google Cloud CLI 以与搭配使用 Cloud de Confiance。
- 您已在本地机器上安装
git和terraform工具:- 安装 Git
- 安装 Terraform(最低版本 1.12)
您已准备好以下信息:
授予所需的权限
运行以下命令,向运行部署的正文授予所需的 IAM 权限:
export FAST_PRINCIPAL="PRINCIPAL_ID"
export FAST_ORG_ID="ORG_ID"
# set needed roles (billing role only needed for organization-owned account)
export FAST_ROLES="\
roles/billing.admin \
roles/logging.admin \
roles/iam.organizationRoleAdmin \
roles/orgpolicy.policyAdmin \
roles/resourcemanager.folderAdmin \
roles/resourcemanager.organizationAdmin \
roles/resourcemanager.projectCreator \
roles/resourcemanager.tagAdmin \
roles/owner"
for role in $FAST_ROLES; do
gcloud organizations add-iam-policy-binding $FAST_ORG_ID \
--member $FAST_PRINCIPAL --role $role --condition None
done
替换以下内容:
PRINCIPAL_ID:相关主账号的标识符。如需详细了解如何指定主账号标识符中的身份和群组,请参阅员工身份联合。ORG_ID:您的组织资源 ID。
创建临时项目
Fabric FAST Terraform 至少需要一个现有项目才能运行,因为组织政策服务在初始设置期间不会自动在组织根目录中提供。如果您是首次在空组织中应用 Terraform,请按照以下步骤在组织根目录下创建一个临时项目:
- 在组织中创建 一个项目,并记下其项目 ID。
将该项目设置为 Google Cloud CLI 的当前项目:
gcloud config set project PROJECT_ID运行以下命令,在项目中启用所需的服务:
gcloud services enable \ bigquery.googleapis.com \ cloudbilling.googleapis.com \ cloudresourcemanager.googleapis.com \ essentialcontacts.googleapis.com \ iam.googleapis.com \ logging.googleapis.com \ orgpolicy.googleapis.com \ serviceusage.googleapis.com
设置完成后,您可以根据需要删除此项目。
获取 Terraform
运行以下命令,将 Fabric FAST 代码库克隆到本地机器:
git clone https://github.com/GoogleCloudPlatform/cloud-foundation-fabric.git
将文件复制到您的机器后,将工作目录更改为 Fabric FAST 组织设置阶段根目录,即可开始使用。
cd cloud-foundation-fabric/fast/stages/0-org-setup
更新配置文件
在应用 Terraform 之前,您需要更新 Fabric FAST 使用的一些配置文件,以指定所选配置、目标 Universe 和管理员账号等详细信息。使用您偏好的文本编辑器。
创建提供商文件
提供商文件可确保 Terraform 以您的 Universe 的正确 API 端点为目标。
- 在组织设置阶段根目录 (
0-org-setup) 中,创建一个名为providers.tf的文件。 请将以下内容添加到 文件:
provider "google" { universe_domain = "s3nsapis.fr" } provider "google-beta" { universe_domain = "s3nsapis.fr" }保存新文件。
指定数据集
入门级配置在 starter-gcd 数据集中指定。 在 Fabric FAST 中,数据集是基于 YAML
的配置,用于指定您要创建的云资源的类型和数量,让用户可以根据不同类型的组织和不同的技术需求选择最佳实践。
如需指定要使用 starter-gcd 数据集,请完成以下步骤:
- 仍在组织设置阶段根目录中,创建一个名为
terraform.tfvars的新文件 在此文件中,指定您要使用
starter-gcd数据集,如下所示:factories_config = { dataset="datasets/starter-gcd" }保存新文件。
指定设置默认值
Fabric FAST 为每个数据集使用 defaults.yaml 文件来指定整个设置中使用的值,例如特定于 Universe 的值和管理员详细信息。
- 打开数据集的目录
0-org-setup/datasets/starter-gcd中的现有defaults.yaml文件。 按如下方式更新默认值文件:
# ... existing configuration ... projects: defaults: prefix: PREFIX locations: logging: global storage: u-france-east1 overrides: universe: domain: s3nsapis.fr prefix: s3ns forced_jit_service_identities: - compute.googleapis.com unavailable_service_identities: - dns.googleapis.com - monitoring.googleapis.com - networksecurity.googleapis.com context: email_addresses: gcp-organization-admins: CONTACT_EMAIL iam_principals: gcp-organization-admins: ADMIN_ID locations: primary: u-france-east1 # ... existing configuration ...替换以下内容:
PREFIX:除了自动添加的特定于 Universe 的前缀之外,还会添加到每个已创建项目的 ID 中的组织特定前缀。这有助于确保您的项目 ID 在您的 Universe 中是唯一的。CONTACT_EMAIL:您要设置为核心项目的重要联系人的电子邮件地址。ADMIN_ID:应具有组织管理员权限的群组或 ID 的标识符。
保存
defaults.yaml。
应用 Terraform
- 确保您已返回到组织设置阶段的根目录。
运行以下命令以初始化 Terraform(您只需为每个目录执行一次此操作):
terraform init运行以下命令以应用 Terraform:
terraform apply
验证设置
如需验证设置,我们建议您先使用 Google Cloud CLI 或 Cloud de Confiance 控制台检查文件夹和项目结构 是否已正确设置。
然后,您可以使用选择的工作负载,或者按照我们的某些快速入门教程,尝试在某个应用项目中部署应用工作负载。这些简短教程可帮助您快速在上启动并运行 简单示例 Cloud de Confiance。如需了解详情,请参阅后续步骤。