![ユーザーが自分のドメインを Cloudfront サイトのサブドメインにマップできるようにするにはどうすればよいでしょうか?](https://rvso.com/image/756788/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%8C%E8%87%AA%E5%88%86%E3%81%AE%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%20Cloudfront%20%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E3%82%B5%E3%83%96%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%AB%E3%83%9E%E3%83%83%E3%83%97%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
ユーザーがサイトを作成して独自のサブドメインを取得できるサービスを運営しています。ユーザーがサイトを持っている場合、a-site-name
そのサブドメインは になりますa-site-name.domain.com
。ユーザーの中には、私のドメインのサブドメインではなく、独自のドメインを持てるようにしたい人もいます。DNS の CNAME レコードを使用してこれを実現できるはずです (つまり にsub.the-users-domain.com
解決されますa-site-name.domain.com
)。ただし、これを実行しようとすると、Cloudfront から 403 が返されます。
私の設定を説明します:
- ファイルは、S3 バケットをオリジンポイントとして使用して AWS Cloudfront によって提供されます。
- 各サイトは、
a-site-name
同じ名前の S3 バケット内のフォルダーに保存されます。 - Lambda@Edge 関数を実行しているので、
a-site-name.domain.com/whatever-resource
(ワイルドカード サブドメイン)へのリクエストが行われるたびに、実際に に解決され、そこからデータが取得されますdistribution-id.cloudfront.net/a-site-name/whatever-resource
。
403 が表示されるのは、Cloudfront デプロイメントの構成または Lambda@Edge 機能に関係しているのではないかと思います。構成を変更して、ユーザーが CNAME レコードを使用して独自のドメインを使用できるようにする方法について、何かアイデアをお持ちの方はいらっしゃいますか? 正直に言うと、わかりません。