代替ドメイン名 (CNAME) を追加することによるカスタム URL の使用 - Amazon CloudFront

代替ドメイン名 (CNAME) を追加することによるカスタム URL の使用

CloudFront では、代替ドメイン名 (CNAME とも呼ばれる) を使用すると、CloudFront によってディストリビューションに割り当てられたドメイン名ではなく独自のドメイン名 (例: www.example.com) をファイルへのリンクで使用できます。

ディストリビューションを作成すると、CloudFront によりドメイン名が d111111abcdef8.cloudfront.net などのディストリビューションに割り当てられます。

cloudfront.net ドメイン名の代わりに独自のドメイン名 (www.example.com など) を使用する場合は、代替ドメイン名をディストリビューションに追加することができます。

代替ドメイン名の追加

次のタスクリストでは、CloudFront ドメイン名の代わりに独自のドメイン名をリンクで使用できるように、CloudFront コンソールを使用して代替ドメイン名をディストリビューションに追加する方法を説明しています。CloudFront API を使用したディストリビューションの更新については、「ディストリビューションの使用」を参照してください。

注記

ビューワーで代替ドメイン名を含む HTTPS を使用する場合は、「代替ドメイン名と HTTPS の使用」を参照してください。

開始する前に: ディストリビューションを更新して代替ドメイン名を追加する前に、以下の操作必ず実行してください。

  • ドメイン名を Route 53 または別のドメインレジストラに登録します。

  • ドメイン名を対象とする許可された認定権限 (CA) から SSL/TLS 証明書を取得します。証明書をディストリビューションに追加して、ドメインを使用する権限があることを確認します。詳細については、「代替ドメイン名を使用するための要件」を参照してください。

代替ドメイン名の追加

  1. AWS Management Console にサインインし、https://console.aws.amazon.com/cloudfront/v3/home で CloudFront コンソールを開きます。

  2. 更新するディストリビューションの ID を選択します。

  3. [General] タブで、[Edit] を選択します。

  4. 以下の値を更新します。

    代替ドメイン名 (CNAME)

    代替ドメイン名を追加します。ドメイン名をコンマで区切るか、新しい行にドメイン名を 1 つずつ入力します。

    SSL 証明書

    次の設定を選択します。

    • HTTPS を使用する – [Custom SSL Certificate (独自 SSL 証明書)] を選択して、リストから証明書を選択します。このリストには、AWS Certificate Manager (ACM) によってプロビジョニングされた証明書、別の CA から購入して ACM にアップロードした証明書、および別の CA から購入して IAM 証明書ストアにアップロードした証明書が含まれています。

      IAM 証明書ストアに証明書をアップロードする場合で、それがリストに表示されない場合は、「SSL/TLS 証明書をインポートする」の手順を確認して、証明書が正しくアップロードされたことを確認します。

      この設定を選択した場合、オブジェクト URL でのみ代替ドメイン名を使用することをお勧めします (https://www.example.com/logo.jpg)。 ディストリビューションドメイン名 (https://d111111abcdef8.cloudfront.net.cloudfront.net/logo.jpg) を使用する場合、[Clients Supported (サポートされるクライアント)] に選択した値に応じてビューワーは以下のように動作します。

      • [All Clients (すべてのクライアント)]: ビューワーが SNI をサポートしていない場合、CloudFront ドメイン名が TLS/SSL 証明書のドメイン名と一致しないため、警告が表示されます。

      • [Only Clients that Support Server Name Indication (SNI) (Server Name Indication (SNI) をサポートするクライアントのみ)]: CloudFront はオブジェクトを返さないでビューワーとの接続を中断します。

    Clients Supported (サポートされるクライアント)

    次のいずれかのオプションを選択します。

    • [All Clients (すべてのクライアント)]: CloudFront が専用の IP アドレスを使用して HTTPS コンテンツを供給します。このオプションを選択した場合、有効になっているディストリビューションに SSL/TLS 証明書を関連付けると、追加料金がかかります。詳細については、「Amazon CloudFront の料金」を参照してください。

    • [Only Clients that Support Server Name Indication (SNI) (Server Name Indication (SNI) をサポートしているクライアントのみ) (推奨)]: SNI をサポートしていない旧式のブラウザやクライアントでは、別の方法を使用してコンテンツにアクセスする必要があります。

    詳細については、「CloudFront で HTTPS リクエストを処理する方法の選択」を参照してください。

  5. [Yes, Edit (はい、編集します)] を選択します。

  6. ディストリビューションの [General (全般)] タブで、[Distribution Status (ディストリビューションのステータス)] が [Deployed (デプロイ済み)] に変わっていることを確認します。ディストリビューションに対する更新がデプロイされる前に代替ドメインの使用を試みた場合、以下のステップで作成するリンクは機能しません。

  7. トラフィックをルーティングするための代替ドメイン名 (www.example.com など) の DNS サービスを、ディストリビューションの CloudFront ドメイン名 (d111111abcdef8.cloudfront.net など) に設定します。使用する方法は、ドメインの DNS サービスプロバイダーとして、または別のプロバイダーとして Route 53 を使用しているかどうかによって異なります。

    注記

    DNS レコードが既に指しているのが、更新中のディストリビューション以外のディストリビューションである場合、DNS を更新した後のみディストリビューションに代替ドメイン名を追加できます。詳細については、「代替ドメイン名の使用に対する制限」を参照してください。

    Route 53

    エイリアスリソースレコードセットを作成します。エイリアスリソースレコードセットを使用した場合、Route 53 クエリに対する料金はかかりません。また、ルートドメイン名 (example.com) に対してエイリアスリソースレコードセットを作成することもできます。DNS では CNAME の使用が許可されていません。詳細については、『Amazon Route 53 開発者ガイド』の「ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング」を参照してください。

    別の DNS サービスプロバイダー

    DNS サービスプロバイダーが提供する方法を使用して、ドメインの CNAME レコードを追加します。この新しい CNAME レコードによって、DNS クエリが代替ドメイン名 (例: www.example.com) からディストリビューションの CloudFront ドメイン名 (例: d111111abcdef8.cloudfront.net) にリダイレクトされます。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。

    重要

    お使いの代替ドメイン名に対応する CNAME レコードが既に存在する場合は、そのレコードを更新するか、ディストリビューションの CloudFront ドメイン名を指す新しいレコードに置き換えてください。

  8. dig などの DNS ツールを使用して、前のステップで作成した DNS 設定がディストリビューションのドメイン名を指していることを確認します。

    以下の例は、www.example.com ドメインへの dig リクエストと、応答のうちの関連する部分を示しています。

    PROMPT> dig www.example.com ; <<> DiG 9.3.3rc2 <<> www.example.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15917 ;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.example.com. IN A ;; ANSWER SECTION: www.example.com. 10800 IN CNAME d111111abcdef8.cloudfront.net. ...

    応答セクションには、www.example.com のクエリを CloudFront ディストリビューションドメイン名 d111111abcdef8.cloudfront.net にルーティングする CNAME レコードが示されます。CNAME の右側の名前が CloudFront ディストリビューションのドメイン名であれば、CNAME レコードは適切に構成されています。その名前が、Amazon S3 バケットのドメイン名などの別の値であれば、CNAME レコードの設定が間違っています。この場合、ステップ 7 に戻り、ディストリビューションのドメイン名を指すように CNAME レコードを修正します。

  9. ディストリビューションの CloudFront ドメイン名ではなくお客様のドメイン名を持つ URL にアクセスして、代替ドメイン名をテストします。

  10. アプリケーションで、CloudFront ディストリビューションのドメイン名ではなく代替ドメイン名を使用するように、オブジェクトへのリンクを変更します。

代替ドメイン名を別のディストリビューションに移動する

ディストリビューションに代替ドメイン名を追加しようとしても、代替ドメイン名が別のディストリビューションで既に使用されている場合は、CNAMEAlreadyExists エラー (指定した 1 つ以上の CNAME が既に別のリソースに関連付けられています) が発生します。例えば、www.example.com をディストリビューションに追加しようとしても、www.example.com が別のディストリビューションに既に関連付けられている場合は、このエラーが発生します。

その場合、既存の代替ドメイン名を 1 つのディストリビューション (ソースディストリビューション) から別のディストリビューション (ターゲットディストリビューション) に移動できます。プロセスの概要を次のステップに示します。詳細については、概要の各ステップにあるリンクを参照してください。

代替ドメイン名を移動するには

  1. ターゲットディストリビューションを設定します。このディストリビューションには、移動する代替ドメイン名を対象とする SSL/TLS 証明書が必要です。詳細については、「ターゲットディストリビューションを設定する」を参照してください。

  2. ソースディストリビューションを検索します。AWS Command Line Interface (AWS CLI) を使用して、代替ドメイン名が関連付けられているディストリビューションを検索できます。詳細については、「ソースディストリビューションを検索する」を参照してください。

  3. 代替ドメイン名を移動します。これを行う方法は、ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにあるかどうかによって異なります。詳細については、「代替ドメイン名を移動する」を参照してください。

ターゲットディストリビューションを設定する

代替ドメイン名を移動する前に、ターゲットディストリビューション (代替ドメイン名の移動先のディストリビューション) を設定する必要があります。

ターゲットディストリビューションを設定するには

  1. 移動する代替ドメイン名を含む SSL/TLS 証明書を取得します。お持ちでない場合は、AWS Certificate Manager (ACM) にリクエストするか、別の認定権限 (CA) から取得して ACM にインポートします。米国東部 (バージニア北部) (us-east-1) リージョンの証明書をリクエストまたはインポートしていることを確認します。

  2. ターゲットディストリビューションを作成していない場合は、新しく作成します。ターゲットディストリビューションの作成の一環として、(前のステップの) 証明書をディストリビューションに関連付けます。詳細については、「ディストリビューションの作成」を参照してください。

    ターゲットディストリビューションを既に作成している場合は、(前のステップの) 証明書をターゲットディストリビューションに関連付けます。詳細については、「ディストリビューションの更新」を参照してください。

  3. 代替ドメイン名をターゲットディストリビューションのディストリビューションドメイン名に関連付ける DNS TXT レコードを作成します。代替ドメイン名の前にアンダースコア (_) を付けて TXT レコードを作成します。次に、DNS の TXT レコードの例を示します。

    _www.example.com TXT d111111abcdef8.cloudfront.net

    CloudFront は、この TXT レコードを使用して、代替ドメイン名の所有権を検証します。

ソースディストリビューションを検索する

1 つのディストリビューションから別のディストリビューションに代替ドメイン名を移動する前に、ソースディストリビューション (代替ドメイン名が現在使用されているディストリビューション) を検索する必要があります。ソースディストリビューションとターゲットディストリビューションの両方の AWS アカウント ID が分かっている場合は、代替ドメイン名の移動方法を決定できます。

代替ドメイン名のソースディストリビューションを検索するには

  1. 以下の例に示すように、AWS Command Line Interface (AWS CLI) の CloudFront list-conflicting-aliases コマンドを使用します。www.example.com を代替ドメイン名に置き換え、EDFDVBD6EXAMPLE を、以前に設定したターゲットディストリビューションの ID に置き換えます。ターゲットディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。このコマンドを使用するには、ターゲットディストリビューションに対する cloudfront:GetDistributioncloudfront:ListConflictingAlias アクセス許可が必要です。

    aws cloudfront list-conflicting-aliases --alias www.example.com --distribution-id EDFDVBD6EXAMPLE

    コマンドの出力には、指定されたドメイン名と競合または重複するすべての代替ドメイン名のリストが表示されます。次に例を示します。

    • コマンドに www.example.com を指定すると、コマンドの出力には www.example.com および、重複するワイルドカード付き代替ドメイン名 (*.example.com) が含まれます。

    • コマンドに *.example.com を指定すると、コマンドの出力には、*.example.com と、そのワイルドカードでカバーされる代替ドメイン名 (例えば、www.example.com、test.example.com、dev.example.com など) が含まれます。

    コマンドの出力内の代替ドメイン名ごとに、それが関連付けられているディストリビューションの ID と、ディストリビューションを所有する AWS アカウント ID を確認できます。ディストリビューション ID とアカウント ID は部分的に非表示になっているため、所有しているディストリビューションとアカウントを識別できますが、所有していないディストリビューションとアカウントの情報は保護されます。

  2. コマンドの出力から、移動する代替ドメイン名のディストリビューションを検索し、ソースディストリビューションの AWS アカウント ID を書き留めます。ソースディストリビューションのアカウント ID とターゲットディストリビューションを作成したアカウント ID を比較し、これら 2 つのディストリビューションが同じ AWS アカウントにあるかどうかを判断します。これは、代替ドメイン名の移動方法を決定するのに役立ちます。

    代替ドメイン名の移動については、次のトピックを参照してください。

代替ドメイン名を移動する

代替ドメインの移動方法については、状況に応じて、次の方法から選択します。

ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにある場合

AWS CLI の associate-alias コマンドを使用して、代替ドメイン名を移動します。この方法は、代替ドメイン名が apex ドメイン (ルートドメインとも呼ばれます。例: example.com) である場合を含めて、同じアカウントでのすべての移動で機能します。詳細については、「関連エイリアスを使用して代替ドメイン名を移動する」を参照してください。

ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合

ソースディストリビューションにアクセスでき、代替ドメイン名が apex ドメイン (ルートドメインとも呼ばれます。例: example.com) 以外のもので、その代替ドメイン名と重複するワイルドカードをまだ使用していない場合は、ワイルドカードを使用して代替ドメイン名を移動します。詳細については、「ワイルドカードを使用して代替ドメイン名を移動する」を参照してください。

ソースディストリビューションの AWS アカウントにアクセスできない場合は、AWS CLI の associate-alias コマンドを使用して代替ドメイン名を移動します。ソースディストリビューションが無効になっている場合は、代替ドメイン名を移動できます。詳細については、「関連エイリアスを使用して代替ドメイン名を移動する」を参照してください。

移動する代替ドメイン名が apex ドメインである場合、またはソースディストリビューションの AWS アカウントにアクセスできない場合は、AWS Support にお問い合わせください。詳細については、「AWS Support にお問い合わせいただき、代替ドメイン名を移動する」を参照してください。

関連エイリアスを使用して代替ドメイン名を移動する

ソースディストリビューションがターゲットディストリビューションと同じ AWS アカウントにある場合、または別のアカウントにあるが無効な場合は、AWS CLI の CloudFront associate-alias コマンドを使用して代替ドメイン名を移動できます。

関連エイリアスを使用して代替ドメイン名を移動するには

  1. 以下の例に示すように、AWS CLI を使用して CloudFront の associate-alias コマンドを実行します。www.example.com を代替ドメイン名に、EDFDVBD6EXAMPLE をターゲットディストリビューションの ID に置き換えます。ターゲットディストリビューションと同じ AWS アカウントにある認証情報を使用して、このコマンドを実行します。このコマンドの使用には、次の制約があることに注意してください。

    • ターゲットディストリビューションに対する cloudfront:AssociateAliascloudfront:UpdateDistribution アクセス許可が必要です。

    • ソースディストリビューションとターゲットディストリビューションが同じ AWS アカウントにある場合、ソースディストリビューションに対する cloudfront:UpdateDistribution アクセス許可が必要です。

    • ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合、ソースディストリビューションを無効にする必要があります。

    • ターゲットディストリビューションは、「ターゲットディストリビューションを設定する」で説明されているように設定する必要があります。

    aws cloudfront associate-alias --alias www.example.com --target-distribution-id EDFDVBD6EXAMPLE

    このコマンドは、ソースディストリビューションから代替ドメイン名を削除し、ターゲットディストリビューションに追加することで、両方のディストリビューションを更新します。

  2. ターゲットディストリビューションが完全にデプロイされたら、代替ドメイン名の DNS レコードがターゲットディストリビューションのディストリビューションドメイン名を参照するように DNS 構成を更新します。

ワイルドカードを使用して代替ドメイン名を移動する

ソースディストリビューションがターゲットディストリビューションと異なる AWS アカウントにあり、ソースディストリビューションが有効になっている場合は、ワイルドカードを使用して代替ドメイン名を移動できます。

注記

ワイルドカードを使用して apex ドメイン (example.com など) を移動することはできません。ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合の apex ドメインの移動については、AWS Support にお問い合わせください。詳細については、「AWS Support にお問い合わせいただき、代替ドメイン名を移動する」を参照してください。

ワイルドカードを使用して代替ドメイン名を移動するには

注記

このプロセスでは、ディストリビューションを複数回更新します。各ディストリビューションが最新の変更を完全にデプロイするまで待ってから次のステップに進みます。

  1. ターゲットディストリビューションを更新して、移動する代替ドメイン名に対応したワイルドカード付き代替ドメイン名を追加します。例えば、移動する代替ドメイン名を www.example.com にしている場合は、代替ドメイン名 *.example.com をターゲットディストリビューションに追加します。これを行うには、ターゲットディストリビューションの SSL/TLS 証明書にワイルドカード付きのドメイン名を含める必要があります。詳細については、「ディストリビューションの更新」を参照してください。

  2. 代替ドメイン名の DNS 設定を更新して、ターゲットディストリビューションのドメイン名を参照します。例えば、移動する代替ドメイン名が www.example.com の場合、www.example.com の DNS レコードを更新して、トラフィックをターゲットディストリビューションのドメイン名 (例: d111111abcdef8.cloudfront.net) にルーティングします。

    注記

    DNS 設定を更新した後でも、代替ドメイン名はソースディストリビューションによって引き続き提供されます。これは、代替ドメイン名がソースディストリビューションで現在設定されているためです。

  3. ソースディストリビューションを更新して代替ドメイン名を削除します。詳細については、「ディストリビューションの更新」を参照してください。

  4. ターゲットディストリビューションを更新して代替ドメイン名を追加します。詳細については、「ディストリビューションの更新」を参照してください。

  5. dig (または類似の DNS クエリツール) を使用して、代替ドメイン名の DNS レコードの解決先がターゲットディストリビューションのドメイン名になっていることを検証します。

  6. (オプション) ターゲットディストリビューションを更新してワイルドカード付き代替ドメイン名を削除します。

AWS Support にお問い合わせいただき、代替ドメイン名を移動する

移動する代替ドメイン名が apex ドメインであり、ソースディストリビューションとターゲットディストリビューションが異なる AWS アカウントにある場合に、ソースディストリビューションの AWS アカウントにアクセスできないか、ソースディストリビューションを無効にできない場合は、AWS Support にお問い合わせいただき代替ドメイン名を移動できます。

AWS Support にお問い合わせいただき、代替ドメイン名を移動するには

  1. ターゲットディストリビューションをセットアップします。これには、ターゲットディストリビューションを参照する DNS TXT レコードも含まれます。詳細については、「ターゲットディストリビューションを設定する」を参照してください。

  2. AWS Support にお問い合わせいただき、ドメインの所有権を証明し、ドメインを新しい CloudFront ディストリビューションに移動するようにリクエストします。

代替ドメイン名の削除

ドメインあるいはサブドメインから CloudFront ディストリビューション にルーティングするトラフィックを停止する場合、このセクションの手順に従って DNS 設定および CloudFront ディストリビューションを更新します。

ディストリビューションから代替ドメイン名を削除し、同時に DNS 設定を更新することが重要です。これにより、後にこのドメイン名を別の CloudFront ディストリビューションに関連付ける際の問題を回避します。代替ドメイン名が既に 1 つのディストリビューションに関連付けられている場合、別のディストリビューションで設定することはできません。

注記

このディストリビューションから代替ドメイン名を削除して、別のディストリビューションに追加するには、「代替ドメイン名を別のディストリビューションに移動する」の手順に従います。ドメインを削除するこの手順を実行し、続けてこのドメインを別のディストリビューションに追加する場合、CloudFront はエッジロケーションに更新するように伝達されることより、このドメインは一定期間新しいディストリビューションにリンクしません。

ディストリビューションから代替ドメイン名を削除するには

  1. まず、ドメインのイントラネットトラフィックを CloudFront ディストリビューションではない別のリソース (Elastic Load Balancing ロードバランサーなど) にルーティングします。または、CloudFront にトラフィックをルーティングする DNS レコードを削除することもできます。

    ドメインの DNS サービスに応じて、次のいずれかを実行します。

    • Route 53 を使用している場合、エイリアスレコードまたは CNAME レコードを更新または削除します。詳細については、「レコードの編集」または「レコードの削除」を参照してください。

    • 別の DNS サービスプロバイダーを使用している場合、その DNS サービスプロバイダーが提供するメソッドで CloudFront にトラフィックを送る CNAME レコードを更新または削除します。詳細については、DNS サービスプロバイダーから提供されたドキュメントを参照してください。

  2. ドメインの DNS レコードを更新したら、この変更が伝達され、DNS リゾルバーが新しいリソースにトラフィックをルーティングするまで待ちます。URL でドメインを使用するテストリンクを作成することで、以上が完了したことを確認できます。

  3. AWS Management Console にサインインして、https://console.aws.amazon.com/cloudfront/v3/home で CloudFront コンソールを開き、次の手順で CloudFront ディストリビューションを更新してドメイン名を削除します。

    1. 更新するディストリビューションの ID を選択します。

    2. [General] タブで、[Edit] を選択します。

    3. [Alternate Domain Names (CNAMEs) (代替ドメイン名 (CNAME))] で、ディストリビューションに使用しない代替ドメイン名 (1 つ以上) を削除します。

    4. [Yes, Edit (はい、編集します)] を選択します。

代替ドメイン名での * ワイルドカードの使用

代替ドメイン名を追加するとき、サブドメインを個別に追加する代わりに、ドメイン名の最初に * ワイルドカードを使用できます。例えば、代替ドメイン名を *.example.com にしている場合は、「www.example.com」、「product-name.example.com」、「marketing.product-name.example.com」などの、末尾が「example.com」であるドメイン名であればどれでも URL に使用できます。オブジェクトのパスは、ドメイン名に関係なく同じです。例えば、次のようになります。

  • www.example.com/images/image.jpg

  • product-name.example.com/images/image.jpg

  • marketing.product-name.example.com/images/image.jpg

ワイルドカードを含む代替ドメイン名については、以下の要件に従ってください。

  • 代替ドメイン名は、アスタリスクとドット (*.) で始まる必要があります。

  • *domain.example.com のように、サブドメイン名の一部をワイルドカードで置き換えることはできません

  • 「subdomain.*.example.com」 のように、ドメイン名の途中にあるサブドメインを置き換えることはできません。

  • ワイルドカードを使用する代替ドメイン名を含むすべての代替ドメイン名は、証明書のサブジェクト代替名 (SAN) でカバーされている必要があります。

ワイルドカード付き代替ドメイン名 (*.example.com など) には、使用されている別の代替ドメイン名 (example.com など) を含めることができます。

代替ドメイン名を使用するための要件

www.example.com などの代替ドメイン名を CloudFront ディストリビューションに追加する場合、次の要件があります。

代替ドメイン名は小文字を使用する必要があります

すべての代替ドメイン名 (CNAME) には小文字を使用する必要があります。

代替ドメイン名は有効な SSL/TLS 証明書の対象であることが必要です

CloudFront ディストリビューションに代替ドメイン名 (CNAME) を追加するには、この代替ドメイン名を対象とする信頼される有効な SSL/TLS 証明書をディストリビューションに添付する必要があります。これにより、ドメインの証明書にアクセスできる人物のみがドメインに関連する CNAME に CloudFront を関連付けることができます。

信頼された証明書は、AWS Certificate Manager (ACM) または別の有効な認証局 (CA) によって発行された証明書です。自己署名証明書を使用することはできません。CloudFront では Mozilla と同じ認証機関をサポートしています。最新のリストは、「Mozilla に付属する CA 証明書一覧」を参照してください。

ワイルドカードを含む代替ドメイン名を含め、添付した証明書を使用して代替ドメイン名を確認するために、CloudFront は証明書のサブジェクト代替名 (SAN) を確認します。追加する代替ドメイン名は、SAN の対象である必要があります。

注記

CloudFront ディストリビューションには、一度に 1 つの証明書のみをアタッチすることができます。

ディストリビューションに特定の代替ドメイン名を追加する許可があることを証明するには、次のいすれかを実行します。

  • 代替ドメイン名 (product-name.example.com など) を含む証明書を添付します。

  • ドメイン名の先頭に * ワイルドカードを含む証明書をアタッチして、1 つの証明書で複数のサブドメインを対象とします。ワイルドカードを指定する場合、複数のサブドメインを CloudFront の代替ドメイン名として追加できます。

次の例では、証明書のドメイン名のワイルドカードを使用して特定の代替ドメイン名を CloudFront に追加することを許可する方法を示しています。

  • marketing.example.com を代替ドメイン名として追加するとします。証明書にドメイン名 *.example.com をリストします。この証明書を CloudFront に添付すると、この位置でワイルドカードを置き換えする一意の代替ドメイン名をディストリビューションに追加することができます (marketing.example.com など)。また、たとえば次の代替ドメイン名を追加することもできます。

    • product.example.com

    • api.example.com

    ただし、ワイルドカードより高いあるいは低い位置に代替ドメイン名を追加することはできません。例えば、代替ドメイン名 example.com や marketing.product.example.com を追加することはできません。

  • example.com を代替ドメイン名として追加するとします。これを行うには、ディストリビューションに添付した証明書にこのドメイン名 example.com 自体をリストする必要があります。

  • marketing.example.com を代替ドメイン名として追加するとします。これを行うには、証明書に *.product.example.com をリストするか、または証明書に marketing.product.example.com 自体をリストできます。

DNS 設定を変更する権限

代替ドメイン名を追加するとき、CNAME レコードを作成して代替ドメイン名の DNS クエリを CloudFront ディストリビューションにルーティングする必要があります。これを行うには、DNS サービスプロバイダーを使用して使用する代替ドメイン名に CNAME を作成する権限があることが必要です。通常、これはドメインを所有していることを指しますが、ドメイン所有者向けにアプリケーションを開発している場合にも当てはまります。

代替ドメイン名と HTTPS

代替ドメイン名を含む HTTPS をビューワーが使用するように構成する場合は、いくつかの追加設定を実行する必要があります。詳細については、「代替ドメイン名と HTTPS の使用」を参照してください。

代替ドメイン名の使用に対する制限

代替ドメイン名の使用には、以下の制限があることに注意してください。

代替ドメイン名の最大数

ディストリビューションに対して作成できる代替ドメイン名の現在の最大数、またはクォータの引き上げを要求する代替ドメイン名の最大数については、「ディストリビューションの一般的なクォータ」を参照してください。

重複する代替ドメイン名

同じ代替ドメイン名が別の CloudFront ディストリビューションに既に存在する場合は、AWS アカウントが他のディストリビューションを所有しているとしても、その代替ドメイン名を CloudFront ディストリビューションに追加することはできません。

ただし、*.example.com のようなワイルドカード付きの代替ドメイン名を追加できます。これには、www.example.com のような非ワイルドカードの代替ドメイン名を含む (つまり重複している) が含まれます。2 つのディストリビューションで代替ドメイン名が重複している場合、CloudFront は、DNS レコードが指しているディストリビューションに関係なく、より具体的な名前が一致しているディストリビューションにリクエストを送信します。例えば、marketing.domain.com は *.domain.com より具体的です。

ドメインフロンティング

CloudFront には、異なる AWS アカウント間で発生するドメインフロンティングに対する保護が含まれています。ドメインフロンティングとは、非標準クライアントが 1 つの AWS アカウントのドメイン名への TLS/SSL 接続を作成し、別の AWS アカウントの関連しない名前の HTTPS リクエストを行うシナリオです。例えば、TLS 接続が www.example.com に接続を行い、次に www.example.org に HTTP リクエストを送信するような場合です。

異なる AWS アカウント間でドメインフロンティングが発生するケースを防ぐため、CloudFront は、証明書を所有し、CloudFront が特定の接続に関するサービスを提供する AWS アカウントと、リクエストを所有し、CloudFront が同じ接続でそれを処理する AWS アカウントが常に一致することを確実にします。

これら 2 つの AWS アカウント番号が一致しない場合、CloudFront は HTTP 421 Misdirected Request レスポンスで応答し、正しいドメインを使用して接続する機会をクライアントに提供します。

ドメインのトップノード (zone apex) の代替ドメイン名の追加

ディストリビューションに代替ドメイン名を追加する場合、通常、CloudFront ディストリビューションにドメイン名の DNS クエリをルーティングするように、DNS 設定で CNAME レコードを作成します。ただし、DNS プロトコルでは、zone apex とも呼ばれる、DNS 名前空間の最上位ノードに対して CNAME レコードを作成することができません。例えば、example.com という DNS 名を登録する場合、Zone Apex は example.com になります。「example.com」に対して CNAME レコードを作成することはできませんが、www.example.com、newproduct.example.com などに対しては CNAME レコードを作成できます。

DNS サービスとして Route 53 を使用している場合、エイリアスリソースレコードセットを作成できます。これは、CNAME レコードに比べて 2 つの利点があります。トップノードのドメイン名 (example.com) に対してエイリアスリソースレコードセットを作成することもできます。また、エイリアスリソースレコードセットを使用した場合、Route 53 クエリに対する料金はかかりません。

注記

IPv6 を有効にする場合、2 つのエイリアスリソースレコードセットを作成する必要があります。IPv6 トラフィック (A レコード) をルーティングするため、および IPv4 トラフィック (AAAA レコード) をルーティングするためです。詳細については、トピック「IPv6 を有効にする」の「ディストリビューションを作成または更新する場合に指定する値」を参照してください。

詳細については、『Amazon Route 53 開発者ガイド』の「ドメイン名を使用したトラフィックの Amazon CloudFront ウェブディストリビューションへのルーティング」を参照してください。