TGW Multi Account

AWS提供了一种可以通过AWS RAM(Resource Access Manager)将不同帐号间TGW轻松连接起来的设计

本章,我们在ap-northeast-2地区连接两个账号的tgw

RAM

Resource Access Manager (RAM) 可让在 AWS 账户或 AWS 组织内轻松安全地共享 AWS 资源。Transit Gateway、子网、AWS License Manager 配置Amazon Route 53 解析器规则资源可以与 RAM 共享。

许多组织使用多个帐户来根据职责、工作负载或治理来隔离不同的环境。借助 RAM,无需在多个账户中创建冗余资源,从而减少了在每个账户中管理这些资源的运营开销。

RAM 无需额外付费即可使用。

使用RAM有以下优点

减少运营开销

增强的安全性和可见性, RAM 利用IAM中设置的现有策略和权限来管理共享资源的使用。RAM 还提供对共享资源的可见性,通过与 Amazon CloudWatch 和 AWS CloudTrail 集成来设置警报和提供日志。

成本优化:通过在账户之间共享 AWS License Manager 配置等资源,公司的不同部门可以利用许可证来提高利用率并优化成本。

本章完成后,Account 1可以通过RAM使用Account 2的资源:

架构图

RAM是regional的服务,不能把A区域的tgw分享给B区域

配置VPC

先登录到另一个帐号,创建一个Key pair:

image-20231206225542365打开CloudShell:

image-20231206225724828

执行以下命令,使用 CloudFormation 配置基本 VPC ,它会在ap-northeast-2区域创建一个名为Seoul-VPC-PART 的VPC:

git clone https://github.com/whchoi98/tgw.git
cd tgw

aws cloudformation deploy \
  --stack-name "Seoul-VPC-PART" \
  --template-file "Seoul-VPC-PART.yml" \
  --capabilities CAPABILITY_NAMED_IAM\
  --parameter-overrides "KeyPair=account2"

如果配置正确,可以在CloudFormation中检查它,如下所示。 VPC 的创建时间不到 3 分钟:

image-20231206230100340

复制这个帐号的id,配置 RAM 时需要此信息

创建RAM 共享

回到原来的帐号,进入RAM,在Resource Access Manager - Shared my me : Resource shares创建一个新的resource share:

image-20231206230226813

Resource share name设置为Seoul-TGW, 选择Transit Gateways类型的resource,并选择已创建的TGW:

image-20231206230517086

权限设置部分,保留默认值并单击下一步按钮:

image-20231206230620332

设置哪些主体有权访问。选择Principal - Allow sharing with anyone, 输入另一个帐户的id以连接 Transit Gateway 资源,然后单击“添加”:

image-20231206230748193

进入下一步,点击创建,创建完成后的效果:

image-20231206231050338

接受RAM共享

回到Account B,看到Invitation提醒。接受这个资源共享:

img

如果两个帐号在同一个组织中,可能不用上面的操作就会自动接受。

最终效果:

image-20231206231350433

在Account B帐号中查看tgw,看到已被分享过来:

image-20231206231512100