一个配置文件,
构建完整的 AWS 多账户环境
使用 Terraform + GitHub Actions 安全自动构建 AWS Organizations。一个配置文件、一条命令,即可获得生产级基础设施。
# 1. Edit config
$ vim starter-kit.conf
PROJECT_NAME="my-company"
AWS_REGION="ap-northeast-1"
GITHUB_ORG="my-org"
# 2. Run setup
$ bash setup.sh
✓ S3 backend created
✓ DynamoDB table created
✓ Secrets Manager initialized
✓ Terraform initialized
# 3. Push & deploy
$ git push origin main
→ GitHub Actions: terraform apply
✓ AWS Organizations configured
✓ Ready to create projects!
是否遇到过这些问题?
企业在采用 AWS 时常见的问题。手动管理无法扩展。
手动账户管理容易出错
在控制台中点击操作。没有审计记录。配置遗漏导致生产故障。
密钥意外提交到 Git
.env 文件中的 AWS 访问密钥意外推送。这种事故屡见不鲜。
dev / stg / prd 环境不一致
手动创建的环境存在细微差异。「在测试环境明明可以...」
直接 IAM 权限是安全隐患
用户直接拥有 AdministratorAccess。离职时手动撤销权限。
CI/CD 使用长期有效的访问密钥
访问密钥存储在 GitHub Secrets 中。上次轮换是什么时候?泄露了怎么办?
AWS Starter Kit 的功能
企业级多账户管理,初创公司也能使用。
ReadOnly 用户自动配置
新用户以安全默认设置自动创建。强制 MFA,首次登录必须重置密码。
AWS Organizations 管理
OU 结构、账户创建、通过 StackSets 自动分发角色——全部代码化管理。
create project → dev/stg/prd
在 GitHub Actions 中输入项目名称。三个环境自动创建。
Feature Branch 环境
推送分支即创建环境,合并即删除。在 AWS 上获得类似 Vercel 的体验。
Switch Role 安全模型
管理账户无直接权限。仅通过 Switch Role 访问成员账户。
MFA 强制执行
配置 MFA 前无法使用控制台和 API。确保安全基线。
GitHub Actions OIDC
无需访问密钥。OIDC 联合自动提供临时凭证。
一个配置文件
编辑 starter-kit.conf,运行 setup.sh。完成——环境已就绪。
为什么选择 Switch Role?
基于 AWS 最佳实践的跨账户访问
Switch Role 是 AWS 推荐的多账户运维核心安全模式。与直接授予用户权限相比,它提供了显著更好的安全性和可管理性。
工作原理
管理账户中的 IAM 用户没有直接操作权限。只有通过切换到成员账户中的 DeveloperRole 或 ReadRole,才能进行操作。
优势
- 自然实现最小权限原则
- 通过 CloudTrail 完整追踪——谁在何时访问了什么
- 离职时只需删除 IAM 用户——所有访问权限即时撤销
- 外部用户(承包商)可按项目、按环境进行访问控制
架构
通过 AWS Organizations 实现层级化多账户结构
Management Account (Central Control) ├── IAM Users (MFA Required) │ ├── developers group → DeveloperRole (all projects) │ └── readers group → ReadRole (all projects) │ ├── GitHub Actions OIDC Provider │ └── Temporary credentials (no access keys) │ ├── Secrets Manager │ └── /terraform/config (single source of truth) │ └── Organizations └── projects OU ├── dev OU │ ├── dev-project-a ← feature branches OK │ └── dev-project-b │ ├── stg OU │ ├── stg-project-a ← develop branch only │ └── stg-project-b │ └── prd OU ├── prd-project-a ← main branch only └── prd-project-b
3步即可开始
5分钟获得生产级 AWS 环境。
编辑配置文件
在 starter-kit.conf 中输入项目名称和 AWS 区域。
PROJECT_NAME="my-company" AWS_REGION="ap-northeast-1" GITHUB_ORG="my-org" ORG_EMAIL_DOMAIN="my-company.com"
运行安装
运行 bash setup.sh。S3 后端、DynamoDB 和 Secrets Manager 自动配置。
$ bash setup.sh ✓ S3 backend created ✓ DynamoDB lock table created ✓ Secrets Manager initialized ✓ Terraform initialized
推送到 GitHub
推送触发 GitHub Actions 运行 Terraform。Organizations 自动构建。
$ git push origin main → GitHub Actions triggered → terraform plan → terraform apply ✓ Organizations configured
常见问题
3人以下真的免费吗?
会创建哪些 AWS 服务?
可以自定义角色吗?
如何管理外部用户(承包商)?
需要 Terraform Cloud 吗?
可以用于现有的 AWS 账户吗?
索取资料
我们将发送详细资料。欢迎随时联系。