[Route 53] 別のAWSアカウントでサブドメインを使えるように権限移譲する

2021.07.09

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Route53で権限移譲の作業をする機会があり、下記を参考に完了できました。

Route 53でサブドメインを別のHosted Zoneに権限委譲する | DevelopersIO

ただ、上記事の執筆時と比べてAWSのUIに変化がありましたので、改めてキャプチャを共有しつつ手順を共有したいと思います。

想定する作業

  • AWSアカウントA(本番環境 委譲元)
    • 管理ドメイン:example.com
  • AWSアカウントB(ステージング環境 委譲先)
    • 管理ドメイン:stg.example.com

本番環境用のAWSアカウントAで持っている example.com があります。

今、ステージング環境用としてAWSアカウントBを作成しました。このアカウントBで stg.example.com ドメインを使える状態にしたいです。そのために、AからBに権限移譲する必要があります。

手順

[アカウントB] ホストゾーンを作成する

まずはアカウントBでホストゾーンを作成します。

  • stg.example.com
  • パブリックホストゾーン

として作成します。

[アカウントB] NS情報を控える

ホストゾーンを作成すると、初期はレコードが2件あると思います。

  • タイプ: NS

の値を控えておきます。

[アカウントA] NSレコードを作成する

ここでアカウントAのRoute53に移動します。

下記のようにレコードを作成します。

  • レコード名: stg.example.com (入力するのは stg のみ)
  • レコードタイプ: NS
  • 値: [アカウントB] NS情報を控える で控えた値を貼り付ける

として作成します。

以上で権限移譲設定は完了になります。

(Optional) CloudFrontにルーティングする

ここからは権限移譲の話ではないですが、自分の今回の作業ではCloudFrontにルーティングする必要があったため、備忘録的に共有します。

[アカウントB] Aレコードを作成する

  • レコード名: stg.example.com (入力欄は空欄にする)
  • レコードタイプ: A
  • トラフィックのルーティング先
    • エイリアスをONにする (これをしないとCloudFrontが選択できない)
    • 「CloudFrontディストリビューション〜」を選択
    • 具体的なCloudFrontリソースを選択

としてレコードを作成します。

作成後、念のためレコードが追加されていることを確認します。

Route53側の作業は以上です。

その他作業

その他、

  • バージニア北部リージョンのACMで証明書発行
  • CloudFrontの設定
    • Alternate Domain Namesに stg.example.com を設定
    • ACMで作成した証明書を紐付ける

の作業が必要になります。

CloudFront+S3に独自ドメインと証明書を添えて | DevelopersIO