# Vault开发环境指南

## 1. 概述

本文档介绍了如何在开发环境中使用Vault，包括初始化、密钥管理和基本操作。

## 2. 开发环境特点

- 使用1个解封密钥（简化操作）
- 所有密钥存储在本地开发目录
- 适用于快速测试和开发

**注意**：此配置仅用于开发环境，生产环境请遵循安全策略文档。

## 3. 初始化Vault

### 3.1 运行初始化脚本
```bash
/root/mgmt/deployment/scripts/init_vault_dev.sh
```

脚本将：
1. 初始化Vault集群
2. 生成1个解封密钥和根令牌
3. 自动解封所有节点
4. 保存环境变量配置

### 3.2 查看密钥信息
```bash
/root/mgmt/deployment/scripts/show_vault_dev_keys.sh
```

## 4. 使用Vault

### 4.1 设置环境变量
```bash
source /root/mgmt/security/secrets/vault/dev/vault_env.sh
```

### 4.2 基本操作示例
```bash
# 检查状态
vault status

# 写入密钥值
vault kv put secret/myapp/config username="devuser" password="devpassword"

# 读取密钥值
vault kv get secret/myapp/config
```

### 4.3 运行完整示例
```bash
/root/mgmt/deployment/scripts/vault_dev_example.sh
```

## 5. 目录结构

```
/root/mgmt/security/secrets/vault/dev/
├── init_keys.json      # 初始化密钥（解封密钥和根令牌）
├── vault_env.sh        # 环境变量配置
```

## 6. 重要提醒

### 6.1 开发环境限制
- 仅使用1个解封密钥（生产环境应使用5个密钥中的3个阈值）
- 密钥存储在本地文件系统（生产环境应分散存储）
- 适用于单人开发测试

### 6.2 生产环境迁移
当从开发环境迁移到生产环境时：
1. 重新初始化Vault集群
2. 使用5个解封密钥中的3个阈值
3. 将密钥分发给不同管理员
4. 遵循安全策略文档

## 7. 故障排除

### 7.1 Vault未初始化
运行初始化脚本：
```bash
/root/mgmt/deployment/scripts/init_vault_dev.sh
```

### 7.2 Vault已初始化但被密封
使用解封密钥解封：
```bash
export VAULT_ADDR='http://<节点IP>:8200'
vault operator unseal <解封密钥>
```

### 7.3 无法连接到Vault
检查Vault服务状态：
```bash
curl -v http://<节点IP>:8200/v1/sys/health
```

## 8. 清理环境

如需重新开始，可以删除密钥文件并重新初始化：
```bash
rm -f /root/mgmt/security/secrets/vault/dev/init_keys.json
/root/mgmt/deployment/scripts/init_vault_dev.sh
```

## 9. 相关文档

- [Vault安全策略](vault-security-policy.md) - 生产环境安全指南
- [Vault官方文档](https://www.vaultproject.io/docs)
- [Vault API文档](https://www.vaultproject.io/api)