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

上次更新日期:2021 年 4 月 20 日

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

解决方法

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

要将一个 AWS 账户(账户 A)中的 Route 53 私有托管区域关联到属于另一个 AWS 账户(账户 B)或区域的 VPC,请使用 AWS CLI 执行以下步骤。

注意:对于此操作,您还可以使用 AWS 开发工具包或 Route 53 API

1.    连接到账户 A 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。

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

pip3 install awscli --upgrade --user

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

aws route53 list-hosted-zones

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

注意:如果您位于不同区域的任何 EC2 实例内,或使用除“us-east-1”以外的其他区域的用户凭证,请包含“--区域”

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

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

6.    运行以下命令以在账户 A 中的私有托管区域和账户 B 中的 VPC 之间创建关联。使用步骤 3 中的托管区域 ID。使用账户 B 中的 VPC 区域和 ID。

注意:请确保使用有权在账户 B 中运行 Route 53 API 的 IAM 用户或角色。

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

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

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

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


这篇文章对您有帮助吗?


您是否需要账单或技术支持?