hashicorp vault递归删除



从Vault中递归删除机密的最干净方法是什么?我在2015年发现了一个关于这方面的git问题,2018年的最新答案是,但没有一个解决方案是本地的。还是没有本地的方法吗?

我试图删除的路径是直接机密和嵌套目录的混合,类似于

foo/bar/
baz/
secret1
keypair1
secret2
keypair2
keypair3
secret3
keypair4

我现在能想到的最好的解决方案是嵌套一堆for x in vault kv list...来捕获所有内容,但这似乎太不雅了。我是不是错过了更好的解决方案?

不幸的是,目前vault中没有递归删除。你会受到你提到的解决方案的限制(列出内容并删除手册(。

我使用python库https://hvac.readthedocs.io/en/stable/index.html

import hvac
client = hvac.Client(url=server_url)
login_response = client.auth.ldap.login(
username="xxxx",
password="xxxx",
)
def list_kv(path: str, mount_point: str) -> List[str]:
resp = []
list_secrets_result = client.secrets.kv.v1.list_secrets(path=path, mount_point=mount_point)
for i in list_secrets_result['data']['keys']:
resp.append(path+i)
return resp

def delete_kv(path: str, mount_point: str) -> None:
ls = list_kv(path, mount_point=mount_point)
for i in ls:
if i.endswith("/"):
delete_kv(i, mount_point=mount_point)
else:
print(i)
response = client.secrets.kv.v1.delete_secret(path=i, mount_point=mount_point)
print(response)

你只需要调用这个函数

delete_kv(path='foo/bar/', mount_point='secret')

最新更新