Amazon Route 53 プライベートホストゾーンを別の AWS アカウントに属する仮想プライベートクラウド (VPC) に関連付けたいです。
解決方法
以下の解決策では、次のいずれかのオプションを使用してコマンドを実行します。
- **オプション 1:**AWS コマンドラインインターフェイス (AWS CLI)解決策では、2 つの例の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを使用します。1 つはアカウント A に、もう 1 つはアカウント B にあります。Amazon EC2 インスタンスを 2 つ所有していない場合や、新しい EC2 インスタンスを起動するアクセス権を有していいない場合は、ローカルマシンの AWS CLI を使用してください。両方のアカウントから正しい AWS ID およびアクセス管理 (IAM) 認証情報を使用します。詳細については、「IAM Identity Center でアクティブ化された名前付きプロファイルの使用」を参照してください。
**注:**AWS CLI コマンドの実行中にエラーが発生した場合は、最新バージョンの AWS CLI を使用しているかを確認してください。
- オプション 2:AWS CloudShell (AWS CLI のインストールは無し)。
**注:**このプロセスには AWS SDK または Route 53 API を使用することもできます。
-
アカウント A の EC2 インスタンスに接続します。
-
AWS CLI を使用している場合は、次のコマンドを実行して AWS CLI のバージョンを更新してください。Route 53 にアクセスできる AWS アイデンティティおよびアクセス管理 (IAM) ユーザーの認証情報を使用するように AWS CLI を設定します。
pip3 install awscli --upgrade --user
- アカウント A の EC2 インスタンスで、次のコマンドを実行して利用可能なホストゾーンを一覧表示します。アカウント B に関連付けるアカウント A のホストゾーン ID をメモしておきます。
aws route53 list-hosted-zones
- アカウント A の EC2 インスタンスで、次のコマンドを実行します。コマンド出力には、プライベートホストゾーンに関連付けることができる他のアカウントの VPC が一覧表示されます。コマンド出力にリストされているアカウントは、CreateVpcAssociationAuthorization リクエストを 1 つ以上送信したアカウントです。
aws route53 list-vpc-association-authorizations --hosted-zone-id <hosted-zone-id>
**注:**アカウント B の VPC が VPC アソシエーション承認リストに表示されない場合は、手順 5 に進みます。リストに表示されている場合は、手順 6 に進みます。
- アカウント A の EC2 インスタンスで、次のコマンドを実行します。このコマンドは、アカウント A のプライベートホストゾーンとアカウント B の VPC との関連付けを許可します。次のコマンドでは、前の手順で取得したホストゾーン ID を使用します。アカウント B の AWS リージョンと VPC の ID を使用してください。
注: 次のいずれかのシナリオに当てはまる場合は、コマンドで**--region **を使用してください。
- 別のリージョンの 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
-
アカウント B の EC2 インスタンスに接続します。
-
アカウント B の EC2 インスタンスで、次のコマンドを実行します。このコマンドは、アカウント A のプライベートホストゾーンとアカウント B の VPC 間の関連付けを作成します。手順 3 のホストゾーン ID を使用します。アカウント B の VPC のリージョンと ID を使用してください。
注: VPC と [ホストゾーンを関連付け、VPC の API 権限を記述する IAM ユーザーまたはロールを使用して、](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)アカウント B から次のコマンドを実行します。
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id> --region us-east-1
**注:**サンプル出力では ** PENDING **のステータスが表示されることがあります。これは、VPC がプライベートホストゾーンを使用した DNS の解決を実行することができないためです。プライベートホストゾーンが VPC に関連付けられ、変更が反映されるまでに数分かかる場合があります。/p >
- アソシエーションを作成したら、アソシエーション権限を削除するのがベストプラクティスです。この手順を経ることで、後から同じ関連付けを再度作成する必要がなくなります。認証を削除するには、アカウント A の EC2 インスタンスに再接続し、次のコマンドを実行します。
aws route53 delete-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<vpc-id> --region us-east-1
- 次の手順を実行して、プライベートホストゾーンへの VPC の関連付けを確認します。
Route 53 コンソールを開きます。
プライベートホストゾーンのドメイン名を選択します。
アカウント B のホストゾーンの詳細の VPC ID を確認します。
アカウント B の VPC 内の EC2 インスタンスは、アカウント A のプライベートホストゾーンのレコードを解決できるようになりました。
関連情報
プライベートホストゾーンの使用