第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通信の仲介が可能です。
# SSH接続をCloudflare Access経由で安全に行う例(~/.ssh/config 設定時)ssh dev-server.my-domain.comSSH設定例(~/.ssh/config)
Host dev-server.my-domain.com ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h9.3 サービス間認証(Service Token)
Cronバッチスクリプトや外部連携プログラムからAccess保護されたエンドポイントを叩く場合は、Service Token をHTTPヘッダーに付与します。
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で保護されたエンドポイントへ認証ヘッダーを付けて自動アクセスするための専用トークン。