コンテンツにスキップ

第9章: 自宅PC・開発サーバーのZero Trust保護

9.1 自分だけの管理画面にセキュアな認証壁を作る

個人開発アプリの管理画面(Admin画面)や、自宅で動かしている検証用サーバー、NASなどを外部公開したい場合、Basic認証やIP制限だけでは不安が残ります。

Cloudflare Access(Zero Trust) を適用すると、アプリケーション本体に認証コードを1行も書かずに、手前に以下のような認証画面を配置できます。

  • Googleアカウント / GitHubアカウント認証
  • ワンタイムPINメール送信
  • 許可したメールアドレス(自分のGmailのみ等)にアクセス制限

9.2 CLIからAccess保護トンネルを起動する

cloudflared はCLI上でAccessトークンを使ったSSH接続やHTTP通信の仲介が可能です。

Terminal window
# SSH接続をCloudflare Access経由で安全に行う例(~/.ssh/config 設定時)
ssh dev-server.my-domain.com

SSH設定例(~/.ssh/config

Host dev-server.my-domain.com
ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h

9.3 サービス間認証(Service Token)

Cronバッチスクリプトや外部連携プログラムからAccess保護されたエンドポイントを叩く場合は、Service Token をHTTPヘッダーに付与します。

Terminal window
curl -H "CF-Access-Client-Id: <CLIENT_ID>" \
-H "CF-Access-Client-Secret: <CLIENT_SECRET>" \
https://admin.my-domain.com/api/data

次章からは、個人開発をさらにスケール・実務化させるための 「マルチ環境設計」「Terraform IaC」「CI/CD」 に進みます。


💡 用語解説コラム

[!NOTE] Zero Trust (ゼロトラスト)
「社内LANにいるから安全」という従来の境界型防御を捨て、「すべての通信・すべてのアクセスを毎回疑って認証・認可する」現代のセキュリティ思想。

[!NOTE] Service Token (サービストークン)
人間ではなくプログラムやバッチ処理が、Zero Trustで保護されたエンドポイントへ認証ヘッダーを付けて自動アクセスするための専用トークン。