Cloudflare Tunnelとネットワークポリシーを使用してMySQLデータベースにアクセスし、セキュリティを確保する
Cloudflare Tunnelのプライベートネットワークを使用することで、ユーザーはデータベースのような任意の非ブラウザベースのTCP/UDPアプリケーションに接続できます。WARPクライアントを使用して、これらのアプリケーションにアクセスできるユーザーや内容を定義するゼロトラスト制御を実装するネットワークポリシーを設定できます。
このチュートリアルの終わりまでに、ネットワークポリシーを通過したユーザーは、TCPポート3306でCloudflare Tunnelを介して利用可能なリモートMySQLデータベースにアクセスできるようになります。
以下を確認してください:
- リモート接続をリッスンし、リモートで接続できるユーザーが設定されたMySQLデータベース
- (オプション)アカウントで有効になっているリゾルバポリシー
プライベートネットワーク内のサーバーにcloudflaredをインストールします。このサーバーはMySQLデータベースに接続できる必要があります。
-
Log in to Zero Trust ↗ and go to Networks > Tunnels.
-
Select Create a tunnel.
-
Choose Cloudflared for the connector type and select Next.
-
Enter a name for your tunnel. We suggest choosing a name that reflects the type of resources you want to connect through this tunnel (for example,
enterprise-VPC-01). -
Select Save tunnel.
-
Next, you will need to install
cloudflaredand run it. To do so, check that the environment under Choose an environment reflects the operating system on your machine, then copy the command in the box below and paste it into a terminal window. Run the command. -
Once the command has finished running, your connector will appear in Zero Trust.

-
Select Next.
- プライベートネットワークタブで、以下のIPアドレスを追加します:
- MySQLサーバーのプライベートIP/CIDR(例:
10.128.0.175/32) - (オプション)内部DNSサーバーのプライベートIP/CIDR
- トンネルを保存を選択します。
アプリケーションと(オプションの)DNSサーバーは、Cloudflareに接続されました。
- ゲートウェイ > ファイアウォールポリシー > ネットワークに移動します。
- MySQLデータベースのプライベートIPアドレスとポート(デフォルトでポート3306)をターゲットにするネットワークポリシーを追加します。以下の例では、
@example.comのメールアドレスを使用してWARPに登録したユーザーにデータベースへのアクセスを許可します。ネットワークポリシーは、デバイスポスチャーチェックも考慮できます。
| セレクター | 演算子 | 値 | 論理 | アクション |
|---|---|---|---|---|
| 宛先IP | in | 10.128.0.175 | And | Allow |
| 宛先ポート | in | 3306 | And | |
| ユーザーのメール | 正規表現に一致 | .*example.com |
上記のAllowルールに加えて、Cloudflareは、デフォルトの拒否モデルを強制するために、ネットワークポリシーリストの下部にキャッチオールブロックポリシーを追加することを推奨します。
許可されたWARPユーザーは、選択したMySQLクライアントを使用して10.128.0.175のMySQLサーバーに接続できるようになります。
内部ホスト名を使用してMySQLデータベースにアクセスできるようにするために、ゲートウェイリゾルバポリシーを構成します。
-
ゲートウェイ > リゾルバポリシーに移動します。
-
ポリシーを追加を選択します。
-
アプリケーションのプライベートドメインまたはホスト名に対して一致する式を作成します。以下の例のように:
セレクター 演算子 値 ドメイン in internalrecord.com -
DNSリゾルバを選択で、カスタムDNSリゾルバを構成を選択します。
-
DNSサーバーのプライベートIPアドレスを入力します。
-
ドロップダウンメニューで、*
<IP-address> - Private*を選択します。 -
(オプション)カスタムポートを入力します。
-
ポリシーを作成を選択します。
内部DNSサーバーにMySQLデータベースのAレコードがある場合、ユーザーはこのレコードを使用してサーバーに接続できます。たとえば、BINDサーバーに以下のエントリが含まれていると仮定します:
mysql IN A 10.128.0.175
許可されたWARPユーザーは、選択したMySQLクライアントを使用してmysql.internalrecord.comのMySQLデータベースに接続できます。