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

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

ディストリビューションを作成すると、CloudFront はドメイン名 (d111111abcdef8.cloudfront.net など) を割り当てます。この割り当てられたドメイン名の代わりに、代替ドメイン名 (CNAME とも呼ばれます) を使用できます。

独自のドメイン名 (www.example.com など) を使用する方法については、以下のトピックを参照してください。

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

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

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

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

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

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

信頼される証明書は、AWS Certificate Manager (ACM) または別の有効な認証局 (CA) から発行されたものです。自己署名証明書は、既存の CNAME の検証には使用できますが、新しい CNAME には使用できません。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 ウェブディストリビューションへのルーティング」を参照してください。