如何将 Route 53 私有托管区域与不同 AWS 账户上的 VPC 相关联?

上次更新时间:2019 年 9 月 24 日

我想将我的 Amazon Route 53 私有托管区域与属于另一个 AWS 账户的 Virtual Private Cloud 相关联。该如何操作?

解决方法

要将一个 AWS 账户(账户 A)中的 Route 53 私有托管区域与属于另一个 AWS 账户(账户 B)的 Virtual Private Cloud 相关联,请使用 AWS 命令行界面 (AWS CLI) 执行以下步骤:

注意:在此过程中,您还可以使用 AWS 开发工具包或 Route 53 API

1.    连接到账户 A 中的 EC2 实例。

2.    运行以下命令以更新 AWS CLI 版本。请确保 AWS CLI 已配置为使用具有 Route 53 访问权限的 IAM 用户的凭证。

pip3 install awscli --upgrade --user

3.    运行此命令以列出账户 A 中的可用托管区域。记下您将与账户 B 关联的账户 A 中的托管区域 ID。

aws route53 list-hosted-zones

4.    运行以下命令以授权账户 A 中的私有托管区域与账户 B 中的 Virtual Private Cloud 之间的关联。使用上一步中记下的托管区域 ID 以及账户 B 中 Virtual Private Cloud 的区域和 ID。

aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id>

5.    连接到账户 B 中的 EC2 实例。

6.    运行以下命令以创建账户 A 中的私有托管区域与账户 B 中的 Virtual Private Cloud 之间的关联。使用第 3 步中记下的托管区域 ID 以及账户 B 中 Virtual Private Cloud 的区域和 ID。

aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id>

7.    创建关联后,最好删除关联授权。这样做可防止您日后重复创建相同的关联。要删除授权,请重新连接到账户 A 中的 EC2 实例,然后运行以下命令:

aws route53 delete-vpc-association-authorization --hosted-zone-id <hosted-zone-id>  --vpc VPCRegion=<region>,VPCId=<vpc-id>

Virtual Private Cloud 中来自账户 B 的 EC2 实例现在可以解析账户 A 内私有托管区域中的记录。