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是一个非常常用的解决方案,它非常强大,支持一些非常好的功能,如动态机密或信封加密。但它也可能在配置方面变得非常复杂。所以你需要自己决定你需要什么样的解决方案

我建议你使用。它会加密您的机密,您可以将加密的机密安全地推送到存储库中。它没有这么大的功能列表,但它完全符合您所描述的