如何将 Route 53 私有托管区域关联到其他 AWS 账户上的 VPC?

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

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

解决方法

注意:如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请确保您正在运行最新版本的 AWS CLI

要将一个 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>

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