security - 在kubernetes etcd存储中加密 secret 数据

标签 security encryption kubernetes etcd confidentiality

默认情况下,存储在etcd中的所有数据都不加密,对于生产部署,存储在etcd中的某些数据需要加密,例如 secret 。是否可以通过加密方式在etcd中存储 secret ,方法是:默认。

最佳答案

要进行加密,您需要使用以下参数指示apiserver服务:
--experimental-encryption-provider-config=/var/lib/kubernetes/encryption-config.yaml
yaml文件包含以下内容:

kind: EncryptionConfig
apiVersion: v1
resources:
  - resources:
      - secrets
    providers:
      - aescbc:
          keys:
            - name: key1
              secret: ${ENCRYPTION_KEY}
      - identity: {}

这里的提供者是aescbc(最强的加密),并且变量是在之前生成的:
ENCRYPTION_KEY=$(head -c 32 /dev/urandom | base64)

看一下这些文件:
  • https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/
  • https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/06-data-encryption-keys.md(和以下md文件)
  • 关于security - 在kubernetes etcd存储中加密 secret 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910971/

    相关文章:

    sql-server - Windows 身份验证不适用于 SQL Server

    go - 如何应用 kubernetes 工作负载

    database - 半透明数据库

    security - Cakephp 安全性

    c# - 不使用 key 的加密算法

    qt - Qt 支持 RSA 加密吗?

    c# - 自定义非对称密码算法

    bash - kubectl 或 bash 忽略 KUBECONFIG 环境变量

    java - spring boot如何在k8s中连接localhost mysql?

    java - 创建包含用户特定数据的 WebSocket session 的最安全方法