跳至内容

如何将 Route 53 私有托管区与其他账户中的 VPC 关联?

2 分钟阅读
0

我想将我的 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 中授权关联

完成以下步骤:

  1. 连接到实例,或为账户 A 配置 AWS CLI 凭证

  2. 配置 AWS CLI以使用具有 Route 53 访问权限的 IAM 用户的凭证。

  3. 在实例中运行 list-hosted-zones 命令,以列出您的托管区:

    aws route53 list-hosted-zones

    **注意:**在命令输出中,记下要关联的托管区 ID。

  4. 在实例中运行 list-vpc-association-authorizations 命令,以检查现有的 Amazon VPC 关联授权:

    aws route53 list-vpc-association-authorizations --hosted-zone-id hosted-zone-id

    **注意:**上述命令输出会列出可与您的私有托管区关联的其他账户的 VPC。列出的账户是您已提交 CreateVPCAssociationAuthorization 请求的账户。

  5. 如果账户 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 中创建关联

完成以下步骤:

  1. 连接到实例,或为账户 B 配置 AWS CLI 凭证

  2. 要创建关联,请运行 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

    **注意:**要运行上述命令,请使用拥有 AssociateVPCWithHostedZoneDescribeVpcs 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 是否与私有托管区关联,请完成以下步骤:

  1. 打开 Route 53 控制台
  2. 选择您的私有托管区域。
  3. Hosted zone details(托管区详细信息)部分中,验证账户 B 的 VPC ID 是否显示。

完成关联后,账户 B 的 VPC 中的实例可以解析账户 A 的私有托管区中的记录。

相关信息

使用私有托管区

将基于身份的策略(IAM 策略)用于 Amazon Route 53