Cloudflare Pages のドメイン *.pages.dev にアクセス制限をかける
どうも、ベルリンオフィスの小西です。
Cloudflare Pages で新規プロジェクトを立ち上ると、外部からアクセス可能な .pages.dev
ドメインが発行されます。
例えば site-name.pages.dev
や、ビルドごとに生成されるユニークIDを含む a582c647.site-name.pages.dev
などです。
各 Pages サイトには独自ドメインを当てることができますが、その場合上記のエンドポイントにアクセス制限をかけたくなるケースがあるかと思いますので、その方法を紹介します。
1. Cloudflare Access を使う
a582c647.site-name.pages.dev
のようなビルドごとに生成されるドメインは Access Policy 機能からアクセス制御が可能です。
有効化すると、該当ドメインにアクセスした場合に、メールアドレスの入力とその後に送られるワンタイムパスワードの入力が求められるようになります。許可されていないメールアドレスにはパスワードは送られません。
なお、[Manage Policies] から Zero Trust 側のダッシュボードに移動して、より詳細なアクセス権限が可能です。デフォルトでは アカウントに所属するメンバー全員のメールアドレスが許可されます。
以上はあくまで *.site-name.pages.dev
に対するアクセス制限となり、 site-name.pages.dev
自体は保護されない点にご注意ください。
Zero Trust 側で site-name.pages.dev
自体にアクセス制限を適用することはできるはできるのですが、付与されたカスタムドメインからもサイトアクセスができなくなってしまいます。。
そのため次に紹介するバルクリダイレクトも併用します。
(備考)DNS-Only なら Access で一括アクセス制限が可能
なお Pages サイトに充てたカスタムドメインが Cloudflare 上で DNS-Only にて運用されている場合に限り、 site-name.pages.dev
も Zero Trust 側で設定が可能です。
2. バルクリダイレクト
通常は大量のURLリダイレクトの登録/処理に使う機能ですが、ここでは site-name.pages.dev
へのアクセスをリダイレクトさせるために使います。
まずは [Create Bulk Redirect List] からリダイレクトリストを作成します。
手動でリダイレクト元/先のURLを入力します。
- [Source URL] には Pages ドメインを入力
- [Target URL] には 充てている独自ドメインを入力
その後 [Create Bulk Redirect Rule] から、先ほど作成したリダイレクトリストをデプロイします。
以上が記事執筆時点で Pages サイトに設定できるアクセス制限です(他にもあればお教えください!)。
最後に
クラスメソッドは Cloudflare のパートナーになっています。Cloudflare のご利用に興味のある方は是非一度クラスメソッドにご相談ください。