0

We are seeing the plain credentials as part of k8s pull secrets file. Is there any way to safely secure them so that admin/user who have full rights cannot misuse them?

Pull-Secret Example:

.dockercfg: 
   {"dockercentral.test.com:5050":
      {"username": "test.it.com",
       "password":"dwew32",
       "email":"mark.test@yahoo.com",
       "auth":"br23231fsdfdfsdfs3211"
      }
   }

Above is the Pull-secrets file, where we see the user name and password values as plain text. Please help on safely securing them in k8s!

4

2 回答 2

0

正如马修目前指出的那样,主要问题是您要保护什么:

  • 如果您试图在集群内保护它,您可以使用Kubernetes RBAC并限制特定用户对包含这些凭证的密钥的访问 - 只需创建一个Role/ClusterRole拒绝在特定命名空间(或所有命名空间)中获取密钥的权限. RoleBinding然后,将此角色(使用/ )绑定ClusterRoleBinding到相关用户 - 有关更多详细信息,请参阅文档
  • 如果您要问“如何安全地存储它”,那么 Secrets 就是要走的路(正如 Piotr 指出的那样)。这就提出了“如何存储秘密”的问题——我在这篇文章中介绍了一些选项。

希望能回答你的问题:)

于 2019-10-02T06:36:47.903 回答
0

您可以按照kubernetes 文档中的docker-registry指南创建类型的机密以使用容器注册表进行身份验证。

docker-registry秘密示例:

apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
namespace: awesomeapps
data:
.dockerconfigjson: UmVhbGx5IHJlYWxseSByZWVlZWVlZWVlZWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGx5eXl5eXl5eXl5eXl5eXl5eXl5eSBsbGxsbGxsbGxsbGxsbG9vb29vb29vb29vb29vb29vb29vb29vb29vb25ubm5ubm5ubm5ubm5ubm5ubm5ubm5ubmdnZ2dnZ2dnZ2dnZ2dnZ2dnZ2cgYXV0aCBrZXlzCg==
type: kubernetes.io/dockerconfigjson

如您所见,这种秘密没有纯文本凭据。

但是,具有集群管理员权限的用户仍然可以轻松解码它们。

于 2019-10-01T14:13:05.783 回答