我想要將 Amazon Route 53 私有託管區域與屬於不同 AWS 帳戶的 Amazon Virtual Private Cloud (Amazon VPC) 建立關聯。
簡短描述
若要將 Route 53 私有託管區域與另一個帳戶中的 Amazon VPC 建立關聯,請從擁有該託管區域的帳戶授權此關聯。然後,從擁有 Amazon VPC 的帳戶建立關聯。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
先決條件:
- 能存取這兩個帳戶。
- 每個帳戶中都有一個 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體,或是在本機電腦上安裝 AWS CLI,並具備兩個帳戶的憑證。
- AWS Identity and Access Management (IAM) 權限,用於管理帳戶 A 中的 Route 53 並將 VPC 與帳戶 B 中的託管區域建立關聯。
以下解決方案使用帳戶 A 中的 EC2 執行個體和帳戶 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 未列出,請執行 create-vpc-association-authorization 命令在帳戶 A 中建立授權:
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。
關聯狀態可能會顯示為擱置中,因為 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 console (Route 53 主控台)。
- 選取您的私有託管區域網域。
- 在 Hosted zone details (託管區域詳細資訊) 區段中,確認是否顯示了帳戶 B 的 VPC ID。
完成關聯後,帳戶 B VPC 中的執行個體可以解析帳戶 A 私有託管區域中的記錄。
相關資訊
使用私有託管區域
為 Amazon Route 53 使用身分型政策 (IAM 政策)