k8s Secret base64 configMap

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s Secret base64 configMap相关的知识,希望对你有一定的参考价值。

参考技术A kubectl get --help|grep api

Use "kubectl api-resources" for a complete list of supported resources.

Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者 Pod Spec 中。Secret 可以以 Volume 或者以环境变量的方式使用。

Secret 类型:

1 kubernetes.io/service-account-token

Service Account :用来访问 Kubernetes API,由 Kubernetes 自动创建,

并且会自动挂载到 Pod 的 /var/run/secrets/kubernetes.io/serviceaccount 目录中;

2 Opaque :base64 编码格式的 Secret,用来存储密码、密钥等;

今天说下第二个这种有坑,base64加密的时候结尾换行问题

Opaque 类型的数据是一个 map 类型,要求 value 是 base64 编码格式

查看下

kubectl get secrets my-secret -n alex -o yaml

metadata:

annotations:

kubectl.kubernetes.io/last-applied-configuration: |

"apiVersion":"v1","data":"test-pw.p12":"YWRtaW4=","test-pw.p12.pwd":"cGFzc3dvcmQ=","kind":"Secret","metadata":"annotations":,"name":"my-secret","namespace":"alex","type":"Opaque"

Mandatory arguments to long options are mandatory for short options too.

shell kubectl get cm -n alex

NAME DATA AGE

test-common-sb-conf 1 8m32s

3

kubernetes.io/dockerconfigjson :用来存储私有 docker registry 的认证

详细可以参考

https://docs.docker.com/registry/introduction/

我推送的的测试脚本

Rails 6 secret_key_base 与 secret_token

【中文标题】Rails 6 secret_key_base 与 secret_token【英文标题】:Rails 6 secret_key_base vs secret_token 【发布时间】:2021-12-06 21:00:55 【问题描述】:

这可能是一个幼稚的问题,但我是 Ruby 新手,感谢任何指导。 我正在升级我的应用程序以使用 Rails 6

我的 secret_token.rb 目前有

MyApp::Application.config.secret_token = ENV['SECRET_TOKEN'] || SecureRandom.hex(128)

https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml 说“使用你现有的 secret_token.rb 初始化程序中的 secret_key_base 为在生产中运行 Rails 应用程序的任何用户设置 SECRET_KEY_BASE 环境变量。”

我没有看到在任何地方设置了 secret_key_base。 config.secret_key_base 是否只是重命名了 config.secret_token 的版本,我可以像这样在 secrets.yml 文件中设置 ENV['SECRET_TOKEN']

production:
   secret_key_base: ENV['SECRET_TOKEN']

【问题讨论】:

【参考方案1】:

您的 secrets.yml 文件在 Rails 6 中将不再有效。相反,您将拥有一个加密的凭据文件。

您可以使用rails credentials:edit 创建文件。您将看到一条错误消息,其中包含基于您的编辑软件的建议命令。剪切并粘贴建议。

您将在这里存储所有密钥/令牌/等。

您可以通过Rails.application.credentials.secret_tokenRails.application.credentials.aws[:secret_access_token] 访问它们

根据您上面的 cmets,听起来您需要将 config.secret_token 更改为 config.secret_key_base,并将其设置为等于您的 secret_key_base 变量,如下所示:

YourApp::Application.config.secret_key_base = Rails.application.credentials.dig(Rails.env.to_sym, :secret_key_base)

这假设您的 credentials.yml.enc 文件具有以下设置:

production:
  secret_key_base: a;sodkfjas;odkjfa;sodkjf

development:
  secret_key_base: pqweiurwoeiurwopeiruowu

aws:
  secret_access_token: mncMXncXMnc>KMXnc>KNc

【讨论】:

以上是关于k8s Secret base64 configMap的主要内容,如果未能解决你的问题,请参考以下文章

K8S之Secret

5.2.k8s.Secret

精品k8s配置存储-SecretConfigMap

精品k8s配置存储-SecretConfigMap

解决base64-encoded secret key cannot be null or empty问题

解决base64-encoded secret key cannot be null or empty问题