我有部署到Kubernetes集群的pods (由Google Cloud Kubernetes托管)。这些pods正在使用一些secret,它们是纯文本文件。我将密码添加到yaml文件中并部署了部署。应用程序运行正常。
现在,假设有人攻破了我的代码,并以某种方式访问了我在容器上的所有文件。在这种情况下,攻击者可以找到secrets目录并打印其中写入的所有秘密。这是一个纯文本。
问题:
为什么使用kubernetes-secrets比使用纯文本更安全?
发布于 2018-07-24 19:48:18
有不同的安全级别,正如@Vishal Biyani在评论中所说,听起来你正在寻找一个像Sealed这样的项目所提供的安全级别。
正如您所说,开箱即用的秘密不会给您提供容器级别的加密。但它确实提供了通过kubectl和kubernetes API访问的控制。例如,您可以使用基于角色的访问控制,这样特定用户就可以看到秘密的存在,而不会看到(通过k8s API)它的值是什么。
发布于 2020-01-21 15:38:25
如果您可以使用命令创建秘密,而不是将其放在yaml文件中:示例:
kubectl create secret generic cloudsql-user-credentials --from-literal=username=[your user]--from-literal=password=[your pass]您也可以将其理解为
kubectl get secret cloudsql-user-credentials -o yaml 我还使用了两个级别的秘密,一个是kubernetes:
env:
- name: SECRETS_USER
valueFrom:
secretKeyRef:
name: cloudsql-user-credentials
key: usernameSECRETS_USER是一个env变量,我在jasypt上使用这个值
spring:数据源:密码: ENC(${SECRETS_USER})
在应用程序启动时,您可以使用参数:-Djasypt.encryptor.password=encryptKeyCode
/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="encryptKeyCode" password=[pass user] algorithm=PBEWithMD5AndDEShttps://stackoverflow.com/questions/51496444
复制相似问题