Kubernetes External Secret Operator
本页面的原始作者是 Fares
本页面提供了一些指针,说明您如何可以实现从配置错误的ESO或使用ESO同步其秘密的应用程序中窃取秘密。
免责声明
下面展示的技术只有在满足某些情况时才能起作用。例如,它取决于允许在您拥有/受损的命名空间上同步秘密所需的要求。您需要自己弄清楚。
先决条件
在具有对命名空间的管理员特权的kubernetes / openshift集群中立足
至少在集群级别对ExternalSecret具有读取权限
弄清楚是否需要任何标签/注释或组成员资格,以允许ESO同步您的秘密。如果您很幸运,您可以自由窃取任何已定义的秘密。
收集有关现有ClusterSecretStore的信息
假设您有足够权限读取此资源的用户;首先列出现有的 ClusterSecretStores。
外部秘密枚举
假设您找到了一个名为 mystore 的 ClusterSecretStore。继续枚举其关联的外部秘密。
这个资源是命名空间范围的,所以除非你已经知道要查找哪个命名空间,否则请添加 -A 选项以跨所有命名空间查找。
你应该获得一个已定义的 externalsecret 列表。假设你找到了一个名为 mysecret 的 externalsecret 对象,并且被 mynamespace 命名空间使用。收集更多关于它保存了什么类型秘密的信息。
组装碎片
从这里,您可以获取一个或多个秘密名称(如在秘密资源中定义)。您将获得类似于以下输出:
现在我们已经准备好了:
命名一个 ClusterSecretStore
命名一个 ExternalSecret
密钥的名称
现在我们已经拥有所有需要的信息,您可以创建一个 ExternalSecret(并最终修补/创建一个新的命名空间,以符合同步新密钥所需的先决条件):
在几分钟后,如果同步条件得到满足,您应该能够在您的命名空间内查看泄露的秘密。
参考
Last updated