如何解决python hvac库-如何从库中读取机密
我正在尝试使用hvac lib从Vault中读取一个秘密。 我已成功通过令牌认证。 我的代码:
import hvac
import os
f = open('/var/run/secrets/kubernetes.io/serviceaccount/token')
jwt = f.read()
client = hvac.Client(url='https://vault.domain.com',verify='/etc/ssl/certs/ca-certificates.crt')
client.auth_kubernetes("namespace1",jwt)
print(client.is_authenticated())
收益不错:
True
但是如果我添加了阅读秘诀的部分:
response = client.kv.v1.read_secret(path='path/admin_pass')
我被禁止了403
raise exceptions.Forbidden(message,errors=errors,method=method,url=url)
hvac.exceptions.Forbidden: 1 error occurred:
* permission denied,on get https://vault.domain.com/v1/secret/path/admin_pass
我想知道为什么,因为这条路被赋予了权利
path "path/admin_pass" {
capabilities = ["read","list"]
}
hvac使用的网址与Vault的WebUI中的网址有些不同是有点奇怪的:
WebUI:
https://vault.domain.com/ui/vault/path/show/admin_pass
Python HVAC:
https://vault.domain.com/v1/secret/path/admin_pass
有什么想法吗?
解决方法
您的 acl 需要包含秘密引擎路径:secret/
,假设您的键/值秘密引擎安装到 secret
(这是默认值)
path "secret/path/admin_pass" {
capabilities = ["read","list"]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。