1.3 KiB
1.3 KiB
title, type, tags, last_updated
| title | type | tags | last_updated | |||
|---|---|---|---|---|---|---|
| Cross-account Modules | concept |
|
2026-04-20 |
Definition
- Cross-account Modules 指在一个 Terraform 模块中通过配置多个 Provider,实现在多个 AWS 账号中同时创建或管理资源的功能
Why Needed
- 复杂云架构经常需要在一个模块内跨多个账号创建资源(例如在 InfoBlocks 账号配置 DNS,同时在 Workload 账号部署应用)
Security Concern
- 直接赋予账号间互访权限存在巨大的安全风险,如某一账号被攻破可能波及全局(Blast Radius 问题)
Solution
- 基于 Shared Account 的中心化部署方案,通过 Assume Role 方式访问目标账号,避免直接授予互访权限
Implementation Components
- cross-account.json:标记文件,告知 Jenkins 该模块需要调用跨账号部署逻辑
- ECS Deploy Runner:运行在 ECS 上的 Docker 容器,负责执行 Terraform plan 和 apply
- TF state bucket accessor:专门定义的 IAM 角色,仅允许部署工具访问状态文件
- Cross-account ECS deploy runner role:部署在目标账号中的角色,允许 Shared Account 的执行器切换角色获取权限
Connections
- Terraform — 基础工具
- Terragrunt — 配置管理
- Shared Account — 信任源
- ECS Deploy Runner — 执行单元