组织结构

Last reviewed 2023-12-20 UTC

在 Google Cloud 中用于管理资源的根节点是组织。Google Cloud 组织提供了资源层次结构,为组织政策和访问权限控制的资源和连接点提供所有权结构。资源层次结构由文件夹、项目和资源组成,它定义了组织内 Google Cloud 服务的结构和使用。

层次结构中较低层次的资源会继承 IAM 允许政策和组织政策等政策。默认情况下,所有访问权限都会被拒绝,直到您将允许政策直接应用于资源或资源从资源层次结构中的更高级层继承允许政策为止。

下图展示了蓝图部署的文件夹和项目。

example.com 组织结构。

以下部分介绍了图中的文件夹和项目。

文件夹

此蓝图使用文件夹来根据项目的环境对项目进行分组。此逻辑分组用于在文件夹级层应用允许政策和组织政策等配置,然后文件夹中的所有资源都会继承这些政策。下表介绍了此蓝图中的文件夹。

文件夹 说明
bootstrap 包含用于部署基础组件的项目。
common 包含资源由所有环境共享的项目。
production 包含具有生产资源的项目。
nonproduction 包含生产环境的副本,可用于在将工作负载升级到生产环境之前对其进行测试。
development 包含用于开发的云资源。
networking 包含所有环境共享的网络资源。

项目

此蓝图根据资源的功能和访问权限控制的预期边界,使用项目对单独的资源进行分组。下表介绍了蓝图中包含的项目。

文件夹 项目 说明
bootstrap prj-b-cicd 包含用于构建组织基础组件的部署流水线。如需了解详情,请参阅部署方法
prj-b-seed 包含基础架构的 Terraform 状态和运行流水线所需的 Terraform 服务账号。如需了解详情,请参阅部署方法
common prj-c-secrets 包含组织级 Secret。如需了解详情,请参阅使用 Secret Manager 存储应用凭据
prj-c-logging 包含审核日志的聚合日志源。如需了解详情,请参阅安全和审核的中心化日志
prj-c-scc 包含有助于配置 Security Command Center 提醒和其他自定义安全监控的资源。如需了解详情,请参阅使用 Security Command Center 进行威胁监控
prj-c-billing-logs 包含具有组织账单导出功能的 BigQuery 数据集。如需了解详情,请参阅在内部成本中心之间分配费用
prj-c-infra-pipeline 包含用于部署工作负载要使用的虚拟机和数据库等资源的基础架构流水线。如需了解详情,请参阅流水线层
prj-c-kms 包含组织级加密密钥。如需了解详情,请参阅管理加密密钥
networking prj-net-{env}-shared-base 包含共享 VPC 网络的宿主项目,适用于不需要 VPC Service Controls 的工作负载。如需了解详情,请参阅网络拓扑
prj-net-{env}-shared-restricted 包含共享 VPC 网络的宿主项目,用于需要 VPC Service Controls 的工作负载。如需了解详情,请参阅网络拓扑
prj-net-interconnect 包含在本地环境和 Google Cloud 之间提供连接的 Cloud Interconnect 连接。如需了解详情,请参阅混合连接
prj-net-dns-hub 包含本地 DNS 系统和 Cloud DNS 之间的中心通信点的资源。如需了解详情,请参阅集中式 DNS 设置
环境文件夹(production, non-productiondevelopment prj-{env}-monitoring 包含一个范围限定项目,以聚合该环境中项目的指标。如需了解详情,请参阅基于日志的指标和性能指标的提醒
prj-{env}-secrets 包含文件夹级 Secret。如需了解详情,请参阅使用 Secret Manager 存储和审核应用凭据
prj-{env}-kms 包含文件夹级加密密钥。如需了解详情,请参阅管理加密密钥
应用项目 包含您在其中为应用创建资源的各种项目。如需了解详情,请参阅项目部署模式流水线层

资源所有权治理

我们建议您始终为项目应用标签,以辅助治理和费用分配。下表介绍了添加到每个项目以便在蓝图中进行治理的项目标签。

标签 说明
application 与项目关联的应用或工作负载的简单易懂名称。
businesscode 用于描述项目所属业务部门的短代码。代码 shared 用于表示未与任何业务部门明确关联的常见项目。
billingcode 用于提供退款信息的代码。
primarycontact 负责项目的主要联系人的用户名。由于项目标签不能包含特殊字符(如符号 @),因此它设置为不带 @example.com 后缀的用户名。
secondarycontact 负责项目的次要联系人的用户名。由于项目标签不能包含特殊字符(例如 @),因此请仅设置没有 @example.com 后缀的用户名。
environment 用于标识环境类型的值,例如 bootstrapcommonproductionnon-production,developmentnetwork.
envcode 用于标识环境类型的值,缩写形式为 bcpndnet
vpc 此项目预期使用的 VPC 网络的 ID。

Google 可能偶尔会发送重要通知,例如账号中止或产品条款更新。此蓝图使用重要联系人将这些通知发送到您在部署期间配置的群组。重要联系人在组织节点上配置,并由组织中的所有项目继承。我们建议您查看这些群组并确保电子邮件受到可靠监控。

重要联系人的用途与项目标签中所配置的 primarycontactsecondarycontact 字段的用途不同。项目标签中的联系人适用于内部治理。例如,如果您在工作负载项目中发现不合规的资源并需要联系所有者,则可以使用 primarycontact 字段查找负责该工作负载的人员或团队。

后续步骤

  • 了解网络(本系列的下一个文档)。