首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes密钥加密

Kubernetes密钥加密
EN

Stack Overflow用户
提问于 2018-07-24 18:35:04
回答 2查看 844关注 0票数 3

我有部署到Kubernetes集群的pods (由Google Cloud Kubernetes托管)。这些pods正在使用一些secret,它们是纯文本文件。我将密码添加到yaml文件中并部署了部署。应用程序运行正常。

现在,假设有人攻破了我的代码,并以某种方式访问了我在容器上的所有文件。在这种情况下,攻击者可以找到secrets目录并打印其中写入的所有秘密。这是一个纯文本。

问题:

为什么使用kubernetes-secrets比使用纯文本更安全?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-24 19:48:18

有不同的安全级别,正如@Vishal Biyani在评论中所说,听起来你正在寻找一个像Sealed这样的项目所提供的安全级别。

正如您所说,开箱即用的秘密不会给您提供容器级别的加密。但它确实提供了通过kubectl和kubernetes API访问的控制。例如,您可以使用基于角色的访问控制,这样特定用户就可以看到秘密的存在,而不会看到(通过k8s API)它的值是什么。

票数 3
EN

Stack Overflow用户

发布于 2020-01-21 15:38:25

如果您可以使用命令创建秘密,而不是将其放在yaml文件中:示例:

代码语言:javascript
复制
kubectl create secret generic cloudsql-user-credentials --from-literal=username=[your user]--from-literal=password=[your pass]

您也可以将其理解为

代码语言:javascript
复制
kubectl get secret  cloudsql-user-credentials -o yaml 

我还使用了两个级别的秘密,一个是kubernetes:

代码语言:javascript
复制
  env:
    - name: SECRETS_USER
      valueFrom:
        secretKeyRef:
          name: cloudsql-user-credentials
          key: username

SECRETS_USER是一个env变量,我在jasypt上使用这个值

spring:数据源:密码: ENC(${SECRETS_USER})

在应用程序启动时,您可以使用参数:-Djasypt.encryptor.password=encryptKeyCode

代码语言:javascript
复制
/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar  org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="encryptKeyCode" password=[pass user] algorithm=PBEWithMD5AndDES
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51496444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档