ネットワークポリシー
ネットワークポリシーは、クライアント IP に基づいて TiDB Cloud Lake にログインできるユーザーを制御します。認証情報が正しくても、IP がポリシーを満たさない場合は接続要求が拒否されるため、ユーザー名とパスワードに加えて追加のセキュリティレイヤーを提供します。
仕組み
ALLOWED_IP_LISTには、単一の IPv4 アドレスまたは10.0.0.0/24のような CIDR ブロックを指定できます。リスト内のアドレスのみがログインを許可されます。BLOCKED_IP_LIST(任意)を使用すると、許可された範囲の中から明示的な拒否ルールを切り出して定義できます。TiDB Cloud Lake は最初に拒否リストを確認するため、両方のリストに存在する IP は拒否されます。- 1 人のユーザーが同時に参照できるネットワークポリシーは最大 1 つですが、同じポリシーを複数のユーザーで共有できるため、管理が容易になります。
- サーバーがクライアント IP を判定できない場合、または IP が許可リストに一致しない場合、TiDB Cloud Lake は直ちに
AuthenticateFailureを返します。
エンドツーエンドの例
以下の手順では、一般的なライフサイクルを説明します。ポリシーを作成し、ユーザーに関連付け、状態を確認し、一元的に更新し、最後に関連付けを解除して削除します。
1. ポリシーを作成して確認する
CREATE NETWORK POLICY corp_vpn_policy
ALLOWED_IP_LIST=('10.1.0.0/16', '172.16.8.12/32')
BLOCKED_IP_LIST=('10.1.10.25')
COMMENT='Only VPN ranges';
SHOW NETWORK POLICIES;
Name |Allowed Ip List |Blocked Ip List|Comment |
----------------+--------------------------+---------------+-----------------+
corp_vpn_policy |10.1.0.0/16,172.16.8.12/32|10.1.10.25 |Only VPN ranges |
2. ユーザーにポリシーを関連付ける
CREATE USER alice IDENTIFIED BY 'Str0ngPass!' WITH SET NETWORK POLICY='corp_vpn_policy';
CREATE USER bob IDENTIFIED BY 'An0therPass!';
-- Apply the policy to an existing user
ALTER USER bob WITH SET NETWORK POLICY='corp_vpn_policy';
3. 適用を確認する
DESC USER alice;
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ name │ hostname │ auth_type │ default_role │ roles │ disabled │ network_policy │ password_policy │ must_change_password │
├────────┼──────────┼──────────────────────┼──────────────┼───────┼──────────┼───────────────────┼─────────────────┼──────────────────────┤
│ alice │ % │ double_sha1_password │ │ │ false │ corp_vpn_policy │ │ NULL │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
DESC NETWORK POLICY corp_vpn_policy;
Name |Allowed Ip List |Blocked Ip List|Comment |
----------------+--------------------------+---------------+----------------+
corp_vpn_policy |10.1.0.0/16,172.16.8.12/32|10.1.10.25 |Only VPN ranges |
4. ポリシーを更新して再利用する
各ユーザーに手を加えることなく、許可または拒否する IP を調整するには、ALTER NETWORK POLICY を使用します。
ALTER NETWORK POLICY corp_vpn_policy
SET ALLOWED_IP_LIST=('10.1.0.0/16', '10.2.0.0/16')
BLOCKED_IP_LIST=('10.1.10.25', '10.2.5.5')
COMMENT='VPN + DR site';
DESC NETWORK POLICY corp_vpn_policy;
Name |Allowed Ip List |Blocked Ip List |Comment |
----------------+----------------------------+-------------------------+-----------------+
corp_vpn_policy |10.1.0.0/16,10.2.0.0/16 |10.1.10.25,10.2.5.5 |VPN + DR site |
このポリシーを参照しているすべてのユーザーに、新しい IP 範囲が自動的に適用されます。
5. 関連付けを解除してクリーンアップする
ALTER USER bob WITH UNSET NETWORK POLICY;
DROP NETWORK POLICY corp_vpn_policy;
ポリシーを削除する前に、そのポリシーに依存しているユーザーがいないことを確認してください。そうしないと、それらのユーザーはログインに失敗します。
完全な構文の詳細については、ネットワークポリシーの SQL リファレンス を参照してください。CREATE、ALTER、SHOW、DESC、DROP を扱っています。