我想将我的 Amazon Route 53 私有托管区与其他 AWS 账户中的 Amazon Virtual Private Cloud (Amazon VPC) 关联。
简短描述
要将 Route 53 私有托管区与其他账户中的 Amazon VPC 关联,请从该托管区所属账户中授权关联。然后,从 Amazon VPC 所属账户中创建关联。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
先决条件:
- 拥有对两个账户的访问权限。
- 在每个账户中使用 Amazon Elastic Compute Cloud (Amazon EC2) 实例,或在本地计算机上通过 AWS CLI 配置两个账户的凭证。
- 拥有 AWS Identity and Access Management (IAM) 权限,用于在账户 A 中管理 Route 53,在账户 B 中将 VPC 与托管区关联。
以下解决方法在账户 A 和账户 B 中使用 EC2 实例。账户 A 是拥有托管区的账户,账户 B 是拥有 VPC 的账户。
在账户 A 中授权关联
完成以下步骤:
-
连接到实例,或为账户 A 配置 AWS CLI 凭证。
-
配置 AWS CLI以使用具有 Route 53 访问权限的 IAM 用户的凭证。
-
在实例中运行 list-hosted-zones 命令,以列出您的托管区:
aws route53 list-hosted-zones
**注意:**在命令输出中,记下要关联的托管区 ID。
-
在实例中运行 list-vpc-association-authorizations 命令,以检查现有的 Amazon VPC 关联授权:
aws route53 list-vpc-association-authorizations --hosted-zone-id hosted-zone-id
**注意:**上述命令输出会列出可与您的私有托管区关联的其他账户的 VPC。列出的账户是您已提交 CreateVPCAssociationAuthorization 请求的账户。
-
如果账户 B 中的 VPC 未列出,请在账户 A 中运行 create-vpc-association-authorization 命令以创建授权:
aws route53 create-vpc-association-authorization --hosted-zone-id hosted-zone-id --vpc VPCRegion=region,VPCId=vpc-id --region us-east-1
**注意:**请将 hosted-zone-id 替换为您的托管区 ID,将 region 替换为您的 VPC 所在的 AWS 区域,将 VPC Id 替换为您的 VPC ID。如果您所在的区域不是 us-east-1,或您的凭证关联的区域不是 us-east-1,请包含 --region us-east-1。
在账户 B 中创建关联
完成以下步骤:
-
连接到实例,或为账户 B 配置 AWS CLI 凭证。
-
要创建关联,请运行 associate-vpc-with-hosted-zone 命令:
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id hosted-zone-id --vpc VPCRegion=region,VPCId=vpc-id --region us-east-1
**注意:**要运行上述命令,请使用拥有 AssociateVPCWithHostedZone 和 DescribeVpcs API 权限的 IAM 用户或角色。此外,请将 hosted-zone-id 替换为您的托管区 ID,将 region 替换为您的 VPC 所在的 AWS 区域,将 VPC Id 替换为您的 VPC ID。如果您所在的区域不是 us-east-1,或您的凭证关联的区域不是 us-east-1,请包含 --region us-east-1。
关联状态可能显示为 PENDING(待处理),因为 VPC 无法使用私有托管区执行 DNS 解析。可能需要几分钟才能完成关联和传播更改。
删除关联授权
创建关联后,最佳做法是删除关联授权,以便不会重新创建相同的关联。
要删除授权,请重新连接到账户 A 中的实例,然后运行 delete-vpc-association-authorization 命令:
aws route53 delete-vpc-association-authorization --hosted-zone-id hosted-zone-id --vpc VPCRegion=region,VPCId=vpc-id --region us-east-1
**注意:**请将 hosted-zone-id 替换为您的托管区 ID,将 region 替换为您的 VPC 所在的 AWS 区域,将 VPC Id 替换为您的 VPC ID。如果您所在的区域不是 us-east-1,或您的凭证关联的区域不是 us-east-1,请包含 --region us-east-1。
验证关联
要确认 VPC 是否与私有托管区关联,请完成以下步骤:
- 打开 Route 53 控制台。
- 选择您的私有托管区域。
- 在 Hosted zone details(托管区详细信息)部分中,验证账户 B 的 VPC ID 是否显示。
完成关联后,账户 B 的 VPC 中的实例可以解析账户 A 的私有托管区中的记录。
相关信息
使用私有托管区
将基于身份的策略(IAM 策略)用于 Amazon Route 53