92 lines
2.7 KiB
Markdown
92 lines
2.7 KiB
Markdown
# Security 目录说明
|
||
|
||
## 目录结构
|
||
```
|
||
security/
|
||
├── secrets/ # 敏感配置文件
|
||
│ ├── vault-unseal-keys.txt # Vault解封密钥
|
||
│ ├── vault-root-token.txt # Vault根令牌
|
||
│ ├── vault-cluster-info.txt # Vault集群信息
|
||
│ └── *.hcl # 其他配置文件
|
||
├── scripts/ # 批量部署脚本
|
||
├── templates/ # 配置模板
|
||
└── README.md # 本文件
|
||
```
|
||
|
||
## Vault密钥管理
|
||
|
||
### 密钥文件说明
|
||
- `vault-unseal-keys.txt`: 包含5个Vault解封密钥,需要至少3个才能解封Vault
|
||
- `vault-root-token.txt`: Vault根令牌,拥有完全管理权限
|
||
- `vault-cluster-info.txt`: Vault集群的基本信息和配置
|
||
|
||
### 使用Vault密钥
|
||
```bash
|
||
# 解封Vault(需要3个密钥)
|
||
vault operator unseal -address=http://warden.tailnet-68f9.ts.net:8200 <key1>
|
||
vault operator unseal -address=http://warden.tailnet-68f9.ts.net:8200 <key2>
|
||
vault operator unseal -address=http://warden.tailnet-68f9.ts.net:8200 <key3>
|
||
|
||
# 使用根令牌认证
|
||
export VAULT_TOKEN=hvs.TftK5zfANuPWOc7EQEvjipCE
|
||
vault auth -address=http://warden.tailnet-68f9.ts.net:8200
|
||
```
|
||
|
||
### 安全注意事项
|
||
1. **密钥保护**: 所有Vault密钥文件权限设置为600,仅所有者可读写
|
||
2. **备份策略**: 定期备份密钥文件到安全位置
|
||
3. **访问控制**: 限制对security目录的访问权限
|
||
4. **版本控制**: 不要将密钥文件提交到Git仓库
|
||
|
||
## 使用说明
|
||
|
||
### 1. 配置文件管理
|
||
- 将需要上传的敏感配置文件放在 `secrets/` 目录下
|
||
- 文件名格式:`{节点名}-{配置类型}.{扩展名}`
|
||
- 例如:`ch4-nomad.hcl`、`ash3c-consul.json`
|
||
|
||
### 2. 批量部署脚本
|
||
使用 `scripts/deploy-security-configs.sh` 脚本批量部署:
|
||
|
||
```bash
|
||
# 部署所有配置
|
||
./scripts/deploy-security-configs.sh
|
||
|
||
# 部署特定节点
|
||
./scripts/deploy-security-configs.sh ch4
|
||
|
||
# 部署特定类型
|
||
./scripts/deploy-security-configs.sh all nomad
|
||
```
|
||
|
||
### 3. 配置模板
|
||
- `templates/` 目录存放配置模板
|
||
- 支持变量替换
|
||
- 使用 Jinja2 语法
|
||
|
||
## 安全注意事项
|
||
|
||
1. **本地备份**:所有配置文件在上传前都会在本地保存备份
|
||
2. **权限控制**:确保配置文件权限正确(600 或 644)
|
||
3. **敏感信息**:不要在配置文件中硬编码密码或密钥
|
||
4. **版本控制**:使用 Git 跟踪配置变更,但排除密钥文件
|
||
|
||
## 部署流程
|
||
|
||
1. 将配置文件放入 `secrets/` 目录
|
||
2. 检查配置文件格式和内容
|
||
3. 运行批量部署脚本
|
||
4. 验证部署结果
|
||
5. 清理临时文件
|
||
|
||
## 故障恢复
|
||
|
||
如果部署失败:
|
||
1. 检查 `logs/` 目录下的错误日志
|
||
2. 使用备份文件恢复
|
||
3. 重新运行部署脚本
|
||
|
||
## 联系方式
|
||
|
||
如有问题,请联系系统管理员。
|