实验 01 准备与身份管理#
验证:未记录
- 适用版本
- 未记录
- 验证范围
- 尚未登记验证记录。
场景与前提#
Acme 要给 Alice(DevOps)、Bob(开发)、Carol(QA)建立公司身份。完整组织实验需要实验用域名、Cloud Identity 或 Workspace、Organization、账单账号,以及相应管理员。没有这些条件时,可以阅读和推演,不必用个人 Gmail 临时替代公司治理。
本章由身份管理员和云环境初始化管理员分别执行。身份超级管理员与 GCP 组织管理员是不同职责;不要把超级管理员身份作为日常开发身份。
操作#
- 在实验身份系统的 Admin Console 中确认域名已验证,并创建 Alice、Bob、Carol 三个用户。人员创建不在项目 IAM 页面完成。
- 创建私有的
tenant-a-devops、tenant-a-developers、tenant-a-qa组,分别添加成员。另设权限管理组。限制谁能加入组和修改成员;员工不能自行加入高权限组。 - 为员工设置 MFA,另外保留受控的紧急恢复身份。一个人可以兼任管理员和开发者,但使用不同的管理与日常身份。
- 在 Google Cloud 的资源管理页面确认对应 Organization,先建立 Tenant-A 文件夹,再在其下建立 Non-production 和 Production 文件夹;分别放置 dev/test 与 prod 三个实验项目并关联实验账单。Tenant-B 和 Shared-platform 可在扩展实验时创建,不要把租户 A 的业务角色授予 Organization。
- 只给实验初始化人员所需的项目创建、账单关联、API 启用和资源配置能力。组织管理员、Billing Account User、Project Billing Manager 等职责分别考虑,不通过给所有人 Owner 解决。
- 记录组织、文件夹、项目的 ID;显示名称、Project ID、Project Number 是不同字段。不要根据显示名称猜 ID。
完整结构见 设计文档。本文主线只先部署 dev;需要验证环境隔离时再在 test 重复,不要求为每个环境立即运行一套应用。
准备 CLI 与变量#
以后实际执行时,准备 gcloud CLI、Python 3、curl;第 05 章构建镜像需要 Docker。以教程根目录为当前目录:
cp templates/lab.env.example lab.local.env
# 用编辑器替换 lab.local.env 中全部 REPLACE_ 占位符。
source lab.local.env
mkdir -p records
# 独立配置名可避免混淆;认证存储和 ADC 仍需分别管理。
gcloud config configurations create acme-iam-lab
gcloud auth login "$ADMIN_EMAIL"
gcloud config set project "$PROJECT_ID"
gcloud auth list
gcloud config list变量 PROJECT_ID、NONPROD_FOLDER_ID 和各组邮箱均填写租户 A 的实际值;同名环境文件夹必须通过 ID 区分。
只在独立实验环境运行,不能把示例邮箱直接拿来登录。初始化人员预先准备后续所需管理权限:项目 IAM、SA 创建与策略管理、Storage 管理、Secret Manager 管理、Artifact Registry 管理、Cloud Run 管理。它们属于实验配置职责,并非员工日常角色清单。
启用主线 API:
gcloud services enable iam.googleapis.com iamcredentials.googleapis.com \
run.googleapis.com artifactregistry.googleapis.com storage.googleapis.com \
secretmanager.googleapis.com logging.googleapis.com \
policytroubleshooter.googleapis.com orgpolicy.googleapis.com \
--project="$PROJECT_ID"验证与回滚#
账号能登录,不等于已获得 Project 权限。 让 Bob 在独立会话验证;若未做本章授权就能访问,先检查默认组、直接 binding 和继承来源。
验收:分别指出创建账号、管理组、授予 GCP 访问、管理账单的入口和负责人。记录当前有效的组织策略。暂时保留环境供后续实验,最终清理见第 08 章。