如何通过Vault CLI创建具备全只读权限的UI登录用户
如何通过Vault CLI创建只读UI登录用户(可集成到BASH脚本)
以下是针对全新安装的HashiCorp Vault,通过CLI创建用户名密码登录的UI只读用户的操作步骤,所有命令可直接集成到BASH脚本中:
操作步骤
1. 启用Userpass认证引擎
全新Vault默认未启用用户名密码认证,需先开启userpass认证方法:
vault auth enable userpass
2. 创建并加载完全只读策略
创建覆盖所有路径的只读策略,允许用户读取和列出所有Vault资源:
# 生成临时策略文件 cat > /tmp/readonly-policy.hcl << EOF path "*" { capabilities = ["read", "list"] } EOF # 将策略写入Vault vault policy write readonly /tmp/readonly-policy.hcl # 清理临时文件 rm /tmp/readonly-policy.hcl
3. 创建关联只读策略的UI用户
创建用户并绑定上述只读策略,设置登录密码:
# 定义用户名和密码(建议通过环境变量传递密码,避免硬编码) VAULT_USER="readonly-ui-user" VAULT_USER_PASSWORD="your-secure-password" # 创建用户 vault write auth/userpass/users/$VAULT_USER password="$VAULT_USER_PASSWORD" policies=readonly
完整可复用BASH脚本
#!/bin/bash # 配置Vault连接参数(根据实际环境修改) export VAULT_ADDR="http://localhost:8200" export VAULT_TOKEN="your-root-token" # 1. 启用userpass认证引擎 echo "Enabling userpass authentication method..." vault auth enable userpass # 2. 创建只读策略 echo "Creating and loading readonly policy..." cat > /tmp/readonly-policy.hcl << EOF path "*" { capabilities = ["read", "list"] } EOF vault policy write readonly /tmp/readonly-policy.hcl rm /tmp/readonly-policy.hcl # 3. 创建UI登录用户 VAULT_USER="readonly-ui-user" # 安全提示:生产环境建议通过交互式输入或环境变量传递密码 read -s -p "Enter password for $VAULT_USER: " VAULT_USER_PASSWORD echo echo "Creating user $VAULT_USER with readonly permissions..." vault write auth/userpass/users/$VAULT_USER password="$VAULT_USER_PASSWORD" policies=readonly echo "Success! You can now log into Vault UI using username: $VAULT_USER"
注意事项
- 确保
VAULT_ADDR和VAULT_TOKEN已正确设置,对应你的Vault服务器地址和root令牌 - 生产环境不要硬编码密码,建议使用环境变量(如
export VAULT_USER_PASSWORD="xxx")或交互式输入(脚本中已包含read -s方式) - 该策略赋予用户所有路径的
read和list权限,符合"完全只读"的需求 - 执行脚本前需确认Vault CLI已正确安装并能连接到Vault服务
内容的提问来源于stack exchange,提问作者Traiano Welcome
相关产品推荐
相关产品推荐

