10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Route 53】サブドメインを別AWSアカウントに権限委譲し、CloudFront経由でホスティングする【AWS】

Last updated at Posted at 2023-03-02

概要

  • ドメイン所有者ではないアカウントがサブドメインを使用するために、別のホストゾーンにサブドメインの権限を移譲する
  • 権限移譲したサブドメインとCloudFrontを紐付ける
  • CloudFrontからホスティングしたサイトのHTTPS化

背景&要件

  • 案件で弊社CloudFrontでホスティングしているサービスを取引先企業の所有しているドメインのサブドメインでもホスティング出来るようにしなければいけないことがありました。

前提

アカウントA: ドメイン所有者
アカウントB: サーバー所有者、サブドメイン使用者、CloudFrontでHTTPS公開済み

流れ

  1. アカウントB: Route53でサブドメインを含んだホストゾーンを新規作成
  2. アカウントB: 手順1で作成されたホストゾーンからNSレコードをメモする
  3. アカウントB: 企業AにNSレコードの値を渡す
  4. アカウントA: ドメインのホストゾーンにサブドメインのNSレコードを作成、値は手順3で取得したNSレコードの値を入力
  5. サブドメインの名前解決の伝播を待つ
  6. S3 + Cloudfrontの作成
  7. アカウントB: SSL証明書を作成
    1. アカウントB: Route53で手順1で作成したホストゾーンにサブドメインでCloudFrontにアクセス出来るようにAレコードを作成
    2. アカウントB: SSL証明書をサブドメインで作成
    3. アカウントB: SSL証明書の検証用レコード(CNAME)をホストゾーンに追加
    4. SSL証明書の検証を完了を待つ
    5. アカウントB: CloudFrontに代替ドメインを設定
    6. アカウントB: 検証されたSSL証明書(ACMで作成した)をアタッチ
  8. サブドメインがHTTPS化されることを確認

手順

今回使用するドメイン名

ドメイン名: snsnap.net
サブドメイン名: qiita-sample.snsnap.net

アカウントB: サブドメインを含んだホストゾーンの作成

まずは、Route53でサブドメインを含んだホストゾーンを作成します。
スクリーンショット 2023-03-02 14.35.28.png

アカウントB: NSレコードの確認

ホストゾーンを作成すると、NSレコードとSOAレコードが生成されます。

NSレコードの値をアカウントAに渡します。

スクリーンショット 2023-03-02 14.35.52.png

アカウントA: サブドメインのNSレコードの作成

snsnap.netのホストゾーンにサブドメインqiita-sample.snsnap.netを作成します。
レコードタイプをNSレコードに選択し、アカウントBから受け取ったNSレコードの値を入力します。

スクリーンショット 2023-03-02 14.36.36.jpg

レコードの作成が完了し、しばらくすると、サブドメインの伝播が行われます。

アカウントB: S3+ Cloudfrontの作成

ホスティングする静的サイトの作成を行います。
今回はメインではないので、割愛します。

アカウントB: SSL証明書の作成

CloudFrontに代替カスタムドメインを割り当てるにはACMでSSL証明書を作成します。
ここで注意しなければならないことは、SSL証明書を作成するリージョンはバージニア北部:us-east-1でなければいけないことです。
CloudFrontにカスタムSSL証明書をアタッチする際は、バージニア北部を選択しないといけません。
詳しくはこちらを参照ください。

バージニア北部を選択し、ACMからSSL証明書のリクエストを行います。
スクリーンショット 2023-03-02 14.58.34.png

アカウントB: SSL証明書の検証用レコード(CNAME)をホストゾーンに追加

リクエストが完了すると、証明書一覧に証明書が追加されますが、検証(使用可能な状態)が完了していないので、検証を行うために、CNAMEを追加します。

スクリーンショット 2023-03-02 14.59.30.jpg

上記画像のRoute53でレコードを作成を選択し、CNAMEのレコードを作成します。
しばらくすると検証が完了し、SSL証明書が使用出来るようになります。

アカウントB: サブドメインのAレコードを作成

サブドメインからのアクセスをCloudFrontのURLに名前解決が出来るように、Aレコードを追加します。
Route53からqiita-sample.snsnap.netを選択し、レコードを作成します。

エイリアスを選択し、CloudFrontのディストリビューションを選択します。
スクリーンショット 2023-03-02 15.02.16.png

アカウントB: 代替ドメインの設定とSSL証明書のアタッチ

作成済みのCloudFrontのディストリビューションを編集します。
代替ドメイン名と検証済みのSSL証明書を選択し、更新します。

スクリーンショット 2023-03-02 15.00.35.png

接続確認

これで、サブドメインでサイトにアクセスすることが出来るようになりました!

スクリーンショット 2023-03-02 14.59.59.png
(弊社サービスの紹介する静的ページを使用しました。)

まとめ

以上が、サブドメインを別AWSアカウントに権限移譲しCloudFrontでホスティングする方法でした。
頻繁に起こることはあまりないと思いますが、自分の場合はDNSの理解が足りておらず、実際にやってみるまでサブドメインをどのように委譲すればいいのか分かりませんでした。
参考になれば幸いです。

10
6
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
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?