LoginSignup
0
0

More than 3 years have passed since last update.

【AWS】PrivateHostedZoneを他のアカウントと関連付ける方法

Last updated at Posted at 2020-12-08

Private Hosted Zone(PHZ)とは

PHZはDNSのレコードを格納するコンテナです。PrivateとPublicがありますが、Privateだと名前解決をVPC内のみで行うことができます。作成時にドメインを指定しますが、VPC内でそのドメインとサブドメインのDNSクエリに対応することができます。

アカウントAのPrivate Hosted Zoneに登録されたレコードをアカウントBから参照したい

まず、PHZはドメインとVPCを1:1で関連付けます。VPC内で完結するため、アカウントAのVPCからアカウントBのVPCの名前解決をすることはデフォルトではできません。方法として、PHZに別アカウントのVPCを関連付けるという操作を行います。これは、CLIから対応する必要があります。

今回の検証環境について

2つのアカウントを用意して、VPCAとVPCBを作成します。ちょっとわかりにくくなりましたが、黒点線での囲いはアカウント単位です(つまり、2つのアカウントが存在して、その中に環境を構築していることを表しています)

各VPCに紐づくPHZAとPHZBを作成し、各VPCに配置されたEC2インスタンスから別アカウントのEC2に対して、互いに名前解決ができるかを確認していきます。

検証を構築する

PHZを作成してレコード登録

アカウントAとBの両方でEC2とPHZを構築し、PHZにEC2のレコードを登録します。

アカウントAのレコードと現時点での名前解決の状況

EC2インスタンのIPとFQDNです。

同じVPC内の名前解決はできますが、別アカウントのVPCの名前解決はできません。

アカウントBのレコードと現時点での名前解決の状況

ここの説明は上記と同じため割愛します。

PHZと別アカウントのVPCの関連付け

まずは、アカウントAのPHZにアカウントBのVPCを関連付けます。

最初はこんな感じです。このVPCはアカウントAのVPCです。

  1. アカウントAで、実行IAMユーザの作成します。ユーザにRoute53FullAccessを付与します。
  2. 1.で作成したユーザで下記コマンドを実行する。つまり、アカウントA側で実行します。 aws route53 create-vpc-association-authorization --hosted-zone-id <AのPHZID> --vpc VPCRegion=ap-northeast-1,VPCId=<BのVPCID>
  3. アカウントBで、実行IAMユーザの作成し、ユーザにRoute53FullAccessVPCFullAccessを付与します。

  4. 3.で作成したアカウントで下記コマンドを実行します。つまり、ここではアカウントB側で実行します。

    aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <AのPHZID> --vpc VPCRegion=ap-northeast-1,VPCId=<BのVPCID>

そうすると、こうなります。アカウントAのPHZにアカウントBのVPCを関連付けることができました。

次は、BのPHZにAのVPCを関連付けます。手順は同じです。

アカウントBで実行

aws route53 create-vpc-association-authorization --hosted-zone-id <BのPHZID> --vpc VPCRegion=ap-northeast-1,VPCId=<AのVPCID>

アカウントAで実行

aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <BのPHZID> --vpc VPCRegion=ap-northeast-1,VPCId=<AのVPCID>

検証の結果をみてみる

検証結果を見てみます。先程はできなかった別アカウントの名前解決ができています。

A->B

B->A

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0