Skip to content

Commit 88e62cf

Browse files
authored
docs: improve network policy guide (#2975)
* docs: improve network policy guide * docs: improve password policy guide * docs: sync cn security guides
1 parent ac2ff36 commit 88e62cf

File tree

4 files changed

+300
-146
lines changed

4 files changed

+300
-146
lines changed

docs/cn/guides/56-security/network-policy.md

Lines changed: 75 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,90 @@
22
title: 网络策略
33
---
44

5-
Databend 中的网络策略是一种配置机制,旨在管理和实施系统中用户的网络访问控制。它允许您定义一组规则,用于管理特定用户允许和阻止的 IP 地址范围,从而有效地控制其网络级访问
5+
网络策略用于基于客户端 IP 地址控制 Databend 的登录权限。即使提供了正确的凭证,如果连接请求的来源 IP 不符合策略要求,该请求也会被拒绝。这为用户名和密码认证之外增加了一层额外的安全保障
66

7-
例如,假设您希望定义一个特定用户可用于访问 Databend 的不同 IP 地址范围。在这种情况下,如果用户尝试从超出预定义范围的 IP 地址与 Databend 建立连接,即使具有准确的登录凭据,Databend 也会拒绝该连接。这种机制保证了访问权限保持在指定的 IP 范围内,从而提高了安全性并在网络级别强制实施控制。
7+
## 工作方式
88

9-
### 实施网络策略
9+
- `ALLOWED_IP_LIST` 接受单个 IPv4 地址或 CIDR 网段(例如 `10.0.0.0/24`)。只有在列表中的地址才允许登录。
10+
- `BLOCKED_IP_LIST`(可选)用于在允许的范围内明确排除某些 IP。Databend 会优先检查阻止列表,因此如果一个 IP 同时存在于两个列表中,它仍会被拒绝。
11+
- 一个用户同一时间只能关联一个网络策略,但同一个策略可以被多个用户共享,便于统一管理。
12+
- 如果服务器无法获取客户端 IP,或者 IP 不在允许列表里,Databend 会直接返回 `AuthenticateFailure` 并拒绝连接。
1013

11-
要在 Databend 中实施网络策略,您需要创建一个网络策略,在其中指定要允许或限制的 IP 地址。之后,使用 [ALTER USER](/sql/sql-commands/ddl/user/user-alter-user) 命令将此网络策略与特定用户关联。重要的是要注意,单个网络策略可以与多个用户关联,只要它们符合相同的策略标准即可。有关用于管理 Databend 中掩码策略的命令,请参阅 [网络策略](/sql/sql-commands/ddl/network-policy/)
14+
## 操作示例
1215

13-
### 使用示例
16+
本示例将涵盖网络策略的典型生命周期:创建策略、绑定到用户、验证状态、集中更新以及最终的解绑和删除。
1417

15-
此示例演示了如何创建具有指定允许和阻止的 IP 地址的网络策略,然后将此策略与用户关联以控制网络访问。该网络策略允许 192.168.1.0 到 192.168.1.255 范围内的所有 IP 地址,但特定 IP 地址 192.168.1.99 除外。
18+
### 1. 创建并查看策略
1619

1720
```sql
18-
-- 创建网络策略
19-
CREATE NETWORK POLICY sample_policy
20-
ALLOWED_IP_LIST=('192.168.1.0/24')
21-
BLOCKED_IP_LIST=('192.168.1.99')
22-
COMMENT='Sample';
21+
CREATE NETWORK POLICY corp_vpn_policy
22+
ALLOWED_IP_LIST=('10.1.0.0/16', '172.16.8.12/32')
23+
BLOCKED_IP_LIST=('10.1.10.25')
24+
COMMENT='Only VPN ranges';
2325

2426
SHOW NETWORK POLICIES;
2527

26-
Name |Allowed Ip List |Blocked Ip List|Comment |
27-
-------------+-------------------------+---------------+-----------+
28-
sample_policy|192.168.1.0/24 |192.168.1.99 |Sample |
28+
Name |Allowed Ip List |Blocked Ip List|Comment |
29+
----------------+--------------------------+---------------+-----------------+
30+
corp_vpn_policy |10.1.0.0/16,172.16.8.12/32|10.1.10.25 |Only VPN ranges |
31+
```
2932

30-
-- 创建用户
31-
CREATE USER sample_user IDENTIFIED BY 'databend';
33+
### 2. 绑定策略到用户
3234

33-
-- 将网络策略与用户关联
34-
ALTER USER sample_user WITH SET NETWORK POLICY='sample_policy';
35-
```
35+
```sql
36+
CREATE USER alice IDENTIFIED BY 'Str0ngPass!' WITH SET NETWORK POLICY='corp_vpn_policy';
37+
CREATE USER bob IDENTIFIED BY 'An0therPass!';
38+
39+
-- 给已存在的用户补充策略
40+
ALTER USER bob WITH SET NETWORK POLICY='corp_vpn_policy';
41+
```
42+
43+
### 3. 验证策略执行情况
44+
45+
```sql
46+
DESC USER alice;
47+
48+
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
49+
│ name │ hostname │ auth_type │ default_role │ roles │ disabled │ network_policy │ password_policy │ must_change_password │
50+
├────────┼──────────┼──────────────────────┼──────────────┼───────┼──────────┼───────────────────┼─────────────────┼──────────────────────┤
51+
│ alice │ % │ double_sha1_password │ │ │ false │ corp_vpn_policy │ │ NULL
52+
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
53+
54+
DESC NETWORK POLICY corp_vpn_policy;
55+
56+
Name |Allowed Ip List |Blocked Ip List|Comment |
57+
----------------+--------------------------+---------------+----------------+
58+
corp_vpn_policy |10.1.0.0/16,172.16.8.12/32|10.1.10.25 |Only VPN ranges |
59+
```
60+
61+
### 4. 更新并复用策略
62+
63+
借助 [ALTER NETWORK POLICY](/sql/sql-commands/ddl/network-policy/ddl-alter-policy) 可以直接修改允许或阻止的 IP 而无需逐个更新用户:
64+
65+
```sql
66+
ALTER NETWORK POLICY corp_vpn_policy
67+
SET ALLOWED_IP_LIST=('10.1.0.0/16', '10.2.0.0/16')
68+
BLOCKED_IP_LIST=('10.1.10.25', '10.2.5.5')
69+
COMMENT='VPN + DR site';
70+
71+
DESC NETWORK POLICY corp_vpn_policy;
72+
73+
Name |Allowed Ip List |Blocked Ip List |Comment |
74+
----------------+----------------------------+-------------------------+-----------------+
75+
corp_vpn_policy |10.1.0.0/16,10.2.0.0/16 |10.1.10.25,10.2.5.5 |VPN + DR site |
76+
```
77+
78+
所有引用该策略的用户都会自动应用新的 IP 范围设置。
79+
80+
### 5. 解除绑定并清理
81+
82+
```sql
83+
ALTER USER bob WITH UNSET NETWORK POLICY;
84+
DROP NETWORK POLICY corp_vpn_policy;
85+
```
86+
87+
在删除策略之前,请确认没有用户正在使用该策略;否则,相关用户的登录将会失败。
88+
89+
---
90+
91+
完整语法与更多命令请参阅 [网络策略 SQL 参考](/sql/sql-commands/ddl/network-policy/),其中涵盖 `CREATE``ALTER``SHOW``DESC``DROP`

0 commit comments

Comments
 (0)