添加:ZHub 管理接口文档和客户端使用指南
This commit is contained in:
132
docs/tutorial-extras/security-best-practices.md
Normal file
132
docs/tutorial-extras/security-best-practices.md
Normal file
@@ -0,0 +1,132 @@
|
||||
---
|
||||
sidebar_position: 8
|
||||
title: 安全最佳实践
|
||||
description: ZHub 安全配置和最佳实践指南
|
||||
---
|
||||
|
||||
# 安全最佳实践
|
||||
|
||||
ZHub 安全配置和最佳实践指南,帮助您构建安全的分布式系统。
|
||||
|
||||
## 认证和授权
|
||||
|
||||
### 启用权限验证
|
||||
|
||||
**服务端配置**:
|
||||
```ini
|
||||
# app.ini - 生产环境配置
|
||||
[service]
|
||||
auth=1 # 生产环境必须开启连接授权
|
||||
```
|
||||
|
||||
:::warning 重要安全提醒
|
||||
**生产环境强烈建议开启权限验证**:
|
||||
- 关闭权限验证 (`auth=0`) 意味着任何客户端都可以无限制访问所有主题
|
||||
- 即使在内网环境,也存在内部威胁、误操作、配置错误等风险
|
||||
- 仅在完全隔离的开发测试环境可考虑关闭权限验证
|
||||
:::
|
||||
|
||||
**客户端配置**:
|
||||
```java
|
||||
// 使用认证令牌连接
|
||||
ZHubClient zhub = new ZHubClient(
|
||||
"127.0.0.1:1216",
|
||||
"group1",
|
||||
"app1",
|
||||
"your-secure-token"
|
||||
);
|
||||
```
|
||||
|
||||
### 权限配置
|
||||
|
||||
**最小权限原则**:
|
||||
```yaml
|
||||
# auth.yml
|
||||
users:
|
||||
- id: 1
|
||||
username: "user-service"
|
||||
password: "secure-password"
|
||||
status: "active"
|
||||
groups: ["user-service"]
|
||||
reads: ["user.*"] # 只读用户相关主题
|
||||
writes: ["user.*"] # 只写用户相关主题
|
||||
|
||||
- id: 2
|
||||
username: "order-service"
|
||||
password: "secure-password"
|
||||
status: "active"
|
||||
groups: ["order-service"]
|
||||
reads: ["order.*", "user.basic.*"] # 只读订单和用户基础信息
|
||||
writes: ["order.*"] # 只写订单相关主题
|
||||
```
|
||||
|
||||
**权限隔离**:
|
||||
```yaml
|
||||
# 不同团队权限隔离
|
||||
groups:
|
||||
- name: "user-team"
|
||||
description: "用户服务团队"
|
||||
reads: ["user.*"]
|
||||
writes: ["user.*"]
|
||||
|
||||
- name: "order-team"
|
||||
description: "订单服务团队"
|
||||
reads: ["order.*", "user.basic.*"]
|
||||
writes: ["order.*"]
|
||||
|
||||
- name: "admin-team"
|
||||
description: "管理员团队"
|
||||
reads: ["*"]
|
||||
writes: ["*"]
|
||||
```
|
||||
|
||||
## 网络安全
|
||||
|
||||
### 网络隔离
|
||||
|
||||
**内网部署**:
|
||||
```ini
|
||||
# app.ini - 只监听内网地址
|
||||
[service]
|
||||
watch=192.168.1.100:711 # 管理端口只监听内网
|
||||
addr=192.168.1.100:1216 # 服务端口只监听内网
|
||||
```
|
||||
|
||||
**防火墙配置**:
|
||||
```bash
|
||||
# 只允许内网访问
|
||||
iptables -A INPUT -p tcp --dport 1216 -s 192.168.1.0/24 -j ACCEPT
|
||||
iptables -A INPUT -p tcp --dport 711 -s 192.168.1.0/24 -j ACCEPT
|
||||
iptables -A INPUT -p tcp --dport 1216 -j DROP
|
||||
iptables -A INPUT -p tcp --dport 711 -j DROP
|
||||
```
|
||||
|
||||
|
||||
## 监控
|
||||
|
||||
### 基础监控
|
||||
|
||||
**服务状态监控**:
|
||||
```bash
|
||||
# 检查服务状态
|
||||
curl http://127.0.0.1:711/_/info
|
||||
|
||||
# 检查权限配置
|
||||
curl http://127.0.0.1:711/auth/reload
|
||||
```
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 安全配置检查清单
|
||||
|
||||
- [ ] 启用认证和授权 (`auth=1`)
|
||||
- [ ] 配置最小权限原则
|
||||
- [ ] 实施网络隔离
|
||||
- [ ] 启用访问日志
|
||||
- [ ] 定期安全审计
|
||||
|
||||
### 定期维护
|
||||
|
||||
- 定期检查权限配置
|
||||
- 定期更新认证令牌
|
||||
- 监控服务状态和连接情况
|
||||
Reference in New Issue
Block a user