使用 Fabric FAST 工具包进行基本设置

本页介绍如何使用 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 的状态、自动化服务账号和中央审核日志。

然后,您可以根据需要添加自己的文件夹、项目、网络和其他资源。

下图显示了“入门级”资源之间的关系:

显示 FAST 启动器架构的图表。

准备工作

确保符合以下条件:

  • 您已为组织配置身份提供方 (IdP),并且 已使用管理员 ID 登录 Cloud de Confiance 。
  • 您已设置 Google Cloud CLI 以与搭配使用 Cloud de Confiance。
  • 您已在本地机器上安装 gitterraform 工具:
  • 您已准备好以下信息:

    • 您选择的主账号,应向其授予组织的管理员权限。这可以是您自己的 ID,也可以是(推荐)您所属的管理员用户组。
    • 您为核心项目选择的重要联系人电子邮件地址
    • 您的 组织资源 ID。您可以在 Cloud de Confiance 控制台中找到此 ID,也可以运行以下 Google Cloud CLI 命令找到此 ID:

      gcloud organizations list
      

      此命令会列出您所属的所有组织(应该只有一个!),以及它们对应的 ID。

授予所需的权限

运行以下命令,向运行部署的正文授予所需的 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,请按照以下步骤在组织根目录下创建一个临时项目:

  1. 在组织中创建 一个项目,并记下其项目 ID。
  2. 将该项目设置为 Google Cloud CLI 的当前项目:

    gcloud config set project PROJECT_ID
    
  3. 运行以下命令,在项目中启用所需的服务:

    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 端点为目标。

  1. 在组织设置阶段根目录 (0-org-setup) 中,创建一个名为 providers.tf 的文件。
  2. 请将以下内容添加到 文件:

    provider "google" {
      universe_domain = "s3nsapis.fr"
    }
    
    provider "google-beta" {
      universe_domain = "s3nsapis.fr"
    }
    
  3. 保存新文件。

指定数据集

入门级配置在 starter-gcd 数据集中指定。 在 Fabric FAST 中,数据集是基于 YAML 的配置,用于指定您要创建的云资源的类型和数量,让用户可以根据不同类型的组织和不同的技术需求选择最佳实践。

如需指定要使用 starter-gcd 数据集,请完成以下步骤:

  1. 仍在组织设置阶段根目录中,创建一个名为 terraform.tfvars 的新文件
  2. 在此文件中,指定您要使用 starter-gcd 数据集,如下所示:

    factories_config = {
       dataset="datasets/starter-gcd"
    }
    
  3. 保存新文件。

指定设置默认值

Fabric FAST 为每个数据集使用 defaults.yaml 文件来指定整个设置中使用的值,例如特定于 Universe 的值和管理员详细信息。

  1. 打开数据集的目录 0-org-setup/datasets/starter-gcd 中的现有 defaults.yaml 文件。
  2. 按如下方式更新默认值文件:

    # ... 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 的标识符。
  3. 保存 defaults.yaml

应用 Terraform

  1. 确保您已返回到组织设置阶段的根目录。
  2. 运行以下命令以初始化 Terraform(您只需为每个目录执行一次此操作):

    terraform init
    
  3. 运行以下命令以应用 Terraform:

    terraform apply
    

验证设置

如需验证设置,我们建议您先使用 Google Cloud CLI 或 Cloud de Confiance 控制台检查文件夹和项目结构 是否已正确设置。

然后,您可以使用选择的工作负载,或者按照我们的某些快速入门教程,尝试在某个应用项目中部署应用工作负载。这些简短教程可帮助您快速在上启动并运行 简单示例 Cloud de Confiance。如需了解详情,请参阅后续步骤

后续步骤