Kubernetes 如何保护库伯尼特斯的秘密?
我试图避免任何用户都无法查看库伯内特的秘密。 我尝试了密封的秘密,但那只是隐藏秘密以存储在版本控制中。 一旦我应用了这个秘密,我就可以使用下面的命令查看这个秘密Kubernetes 如何保护库伯尼特斯的秘密?,kubernetes,kubernetes-secrets,Kubernetes,Kubernetes Secrets,我试图避免任何用户都无法查看库伯内特的秘密。 我尝试了密封的秘密,但那只是隐藏秘密以存储在版本控制中。 一旦我应用了这个秘密,我就可以使用下面的命令查看这个秘密 kubectl get secret mysecret -o yaml 上述命令仍显示base64编码形式的机密 如何使用上述简单命令避免有人看到秘密(即使是base64格式)。您可以通过Init容器将Hashcrop Vault秘密注入Kubernetes吊舱,并使用sidecar容器使其保持最新 此处有更多详细信息您可以使用Has
kubectl get secret mysecret -o yaml
上述命令仍显示base64编码形式的机密
如何使用上述简单命令避免有人看到秘密(即使是base64格式)。您可以通过Init容器将Hashcrop Vault秘密注入Kubernetes吊舱,并使用sidecar容器使其保持最新
此处有更多详细信息您可以使用Hashcrop Vault或kubernetes external secrets() 或者,如果只想限制,则应创建只读用户,并使用角色&角色绑定限制只读用户对机密的访问 然后,如果有人试图描述这个秘密,它就会抛出拒绝访问错误 示例代码:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: test-secrets
namespace: default
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- create
- delete
- apiGroups:
- ""
resources:
- pods/exec
verbs:
- create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: test-secrets
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: test-secrets
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: demo
上述角色无法访问机密。因此,演示用户的访问被拒绝。使用Kubernetes内部工具无法实现这一点。您必须始终依赖第三方工具 Hashicorps Vault是一个非常常用的解决方案,它非常强大,支持一些非常好的功能,如动态机密或信封加密。但它也可能在配置方面变得非常复杂。所以你需要自己决定你需要什么样的解决方案 我建议你使用。它会加密您的机密,您可以将加密的机密安全地推送到存储库中。它没有这么大的功能列表,但它完全符合您所描述的