【问题标题】:hashicorp vault delete recursivelyhashcorp Vault 递归删除
【发布时间】:2021-12-08 13:54:11
【问题描述】:

从 Vault 中递归删除机密的最干净的方法是什么?我从 2015 年找到了一个关于此的 git issue,其中包含 2018 年的最新答案,但没有一个解决方案是原生的。还是没有原生的办法吗?

我要删除的路径是直接机密和嵌套目录的混合,如下所示:

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

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

【问题讨论】:

    标签: bash hashicorp-vault


    【解决方案1】:

    不幸的是,目前保险库中没有递归删除。您将受限于您提到的解决方案(列出内容并删除手册)。

    【讨论】:

      【解决方案2】:

      我使用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')
      

      【讨论】:

        猜你喜欢
        • 2020-01-24
        • 2020-01-23
        • 1970-01-01
        • 2021-11-06
        • 2021-07-29
        • 1970-01-01
        • 2021-11-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多