TGW Multi Account - II

在Account B中创建 Transit Gateway attachment,在VPC - Transit Gateway - Transit Gateway Attachment 创建:

image-20231206231858142

Name Tag设置为Seoul-TGW-Attach-Seoul-VPC-PART;VPC选择Seoul-VPC-PART,选择对应的子网,点击创建:

image-20231206232006398

等待一段时间后,状态由Pending变为Available:

image-20231206232206769

由于Account B 访问到了共享 TGW,因此它可以为该资源创建Attachment。
但路由表由原始所有者控制。现在要转到原来的帐户并进行设置。

image-20231206232645104

在原来帐号配置路由表

TGW和路由表资源均归原始帐户所有。因此,关联路由表是在原始帐户中配置的。

创建Association

在tgw route table中选择Seoul-TGW-RT-East-To-West路由表,创建association:

image-20231206232815084

选择并添加Account B帐户的Transit Gateway attatchment(可以从现有attachment中看到具有不同帐户 ID):

image-20231206232906920

等待关联成功:

image-20231206233007675

创建Propagation

选择VPC - Transit Gateway - Transit Gateway route tables - Propagations并传播Seoul-VPC-PART:

img

image-20231206233128399

检查传播是否正常:

img

选择VPC - Transit Gateway - Transit Gateway route tables - Route并检查路由是否正常添加:

image-20231206233253737

检查流量

我们来看看Account B账户是否可以通过TGW连接到Account A的DEV和STG VPC。

在Account B中搜索Seoul-VPC-PART-Private-10.4.21.101 实例 ID,如下所示:

./aws_ec2_ext.sh |grep "Seoul-VPC-PART-Private-10.4.21.101"

image-20231206233501784

连接到Seoul-VPC-PART-Private-10.4.21.101实例:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=Seoul-VPC-PART-Private-10.4.21.101' 'Name=instance-state-name,Values=running' | jq -r '.Reservations[].Instances[].InstanceId'
export Seoul_VPC_PART_Private_10_4_21_101=$(aws ec2 describe-instances --filters 'Name=tag:Name,Values=Seoul-VPC-PART-Private-10.4.21.101' 'Name=instance-state-name,Values=running' | jq - r '.Reservations[].Instances[].InstanceId')
echo "export Seoul_VPC_PART_Private_10_4_21_101=${Seoul_VPC_PART_Private_10_4_21_101}"| tee -a ~/.bash_profile
source ~/.bash_profile

aws ssm start-session --target $Seoul_VPC_PART_Private_10_4_21_101

使用以下命令检查是否可以连接到Seoul-VPC-DEV,STG 实例。

sudo -s
echo 10.0.21.101 SEOUL-VPC-HQ-Private >> /etc/hosts
echo 10.1.21.101 SEOUL-VPC-PRD-Private >> /etc/hosts
echo 10.2.21.101 SEOUL-VPC-STG-Private >> /etc/hosts
echo 10.3.21.101 SEOUL-VPC-DEV-Private >> /etc/hosts
echo 10.4.21.101 SEOUL-VPC-PRT-Private >> /etc/hosts
echo 10.5.21.101 IAD-VPC-Private >> /etc/hosts


ping SEOUL-VPC-DEV-Private

可以看到 ping 不通, 这是因为VPC路由表中没有路由。

image-20231206233849556

添加VPC路由表路由

现在,要从Seoul-VPC-PART 到Seoul-VPC-DEV 和Seoul-VPC-STG 进行通信,要配置路由。

选择VPC - Route tables搜索Seoul-VPC-PART-Private-Subnet-A-RT并编辑路由表:

image-20231206234108707

0.0.0.0/0的路由更新为到tgw:

image-20231206234156493

现在检查从Seoul-VPC-PART-Private-10.4.21.101DEV ,STG, PRD 的流量:

ping SEOUL-VPC-DEV-Private
ping SEOUL-VPC-STG-Private
ping SEOUL-VPC-PRD-Private

image-20231206234347250

我们看到从Seoul-VPC-PART也能访问Seoul-VPC-PRD。这是因为我们在将到0.0.0.0/0 的目标配置为 TGW。如果需要加强安全性,可以通过将VPC的CIDR处理为静态路由而不是传播来控制访问

我们现已完成同一地区的多账户 TGW 集成。通过Propagation和静态路由的组合,可以配置各种设计来增强 VPC 隔离和安全性