Cloudflare Tunnelを使った自宅ネットワークへのアクセス方法の変更

注意事項

この記事は、Notion AIに対して

  • 問題と解決策の概要
  • 例示用のコード

を渡して生成した実験的な記事になります。

はじめに

最近、Cloudflare Tunnelを使って自宅ネットワークへのアクセス方法を変更しました。
今回はその方法についてご紹介します。

旧構成

以前は、VPN接続を使用して自宅クラスタの各サービスにアクセスしていました。以下がその構成図です。

新構成

Cloudflare Tunnelを使用することで、VPN接続を不要にし、直接的な外部公開を行わずに自宅ネットワークへのアクセスを可能にしました。

Pros/Cons

  • Pros
    • サーバー/自宅ネットワークを外部公開する必要はない
    • Cloudflare CDNの恩恵を受けられる(セキュリティやIPv6対応など)
    • 特定のドメインやパスに対してアクセス制限をかけられる
    • (旧構成と比べて)外部からサービスにアクセスできる
    • (旧構成と比べて)VPN Serverを用意する必要がない
  • Cons
    • 移管する必要はないがApex Domainの管理をClouflareにする必要がある

k8sクラスタ内の構成変更

新しい構成には、いくつかの変更が必要でした。

  • 追加
    • cloudflared ... CloudflareからのアクセスをTunnelするために必要
  • 廃止
    • MetalLB ... cloudflaredから各Serviceへ直接アクセスしているので不要
    • Nginx Ingress ... 同上

Cloudflare Tunnelをおうちクラスタにセットアップするのは、以下の記事が参考になりました。

zenn.dev

特定のドメインやパスに対してアクセス制限をかける

特定のドメインやパスに対してアクセス制限をかけることができるため、セキュリティを向上できます。
例えば、WordPressKubernetesクラスタ内に構成して外部からアクセス可能にした場合を考えます。

この場合、通常のリクエストは認証をかけてほしくなく、/wp-login もしくは /wp-admin から始まるパスに対してCloudflare Zero Trustのみ認証をかけるといったことが可能です。

おわりに

今回は、Cloudflare Tunnelを使った自宅ネットワークへのアクセス方法の変更についてご紹介しました。
この新しい構成には、セキュリティの向上やIPv6対応などのメリットがあります。
また、特定のドメインやパスに対してアクセス制限をかけることができるため、セキュリティに配慮した構成が可能です。

github.com