使用Hashicorp的Vault做一些探索。当我偶然发现Vault时,正在寻找一种安全地获取应用程序配置的方法。他们使用JWT进行自动身份验证的前景很好,但是在浏览了文档之后,我仍然不知道如何设置它。
任何有保险柜经验的人都可以指导我入门吗?
答案 0 :(得分:0)
Ok了解了如何设置JWT身份验证和自动验证。步骤如下:
使用openssl生成私钥。输入以下命令:
openssl genrsa -aes256 -out private_key.pem 2048
使用openssl生成公钥。键入以下命令:
openssl rsa -pubout -in private_key.pem -out public_key.pem
在终端/命令提示符中使用以下命令来启用jwt身份验证:
vault auth enable jwt
使用以下命令配置JWT身份验证。角色名称演示仅用作示例。任何名称都可以用作角色名称:
vault write auth/jwt/config default_role="demo"
在步骤4中创建命名角色:
vault write auth/jwt/role/demo \
bound_subject="jwt subject" \
user_claim="some claim" \
policies=webapps \
ttl=1h
现在将生成用于身份验证的JWT。生成时,请确保JWT主体中包含以下内容。值基于我们使用的示例,因此请根据需要进行更改:
{
"sub" : "jwt subject",
"iat" : 1605166067,
"nbf": 1605166068,
"exp": 1605266067,
"some claim": "some claim"
}
通过尝试登录来测试JWT身份验证:
vault write auth/jwt/login role=demo jwt=<your token>
按如下所示创建agent-client.hcl:
exit_after_auth = false
pid_file = "./pidfile"
auto_auth {
method "jwt" {
mount_path = "auth/jwt"
config = {
path = "C:\\Program Files\\vault\\agent\\token\\jwt.txt"
role = "demo"
}
}
sink "file" {
config = {
path = "jwtToken"
}
}
}
vault {
address = "http://127.0.0.1:8200"
}
使用在步骤6中生成的JWT创建文本文件,并将其保存到agent-client.hcl中指定的路径。
运行以下命令以启动代理:
vault agent -config=agent-config.hcl -log-level=debug