Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

34.3. 了解加密配置

使用所有可用供应商的加密配置文件

kind: EncryptionConfig
apiVersion: v1
resources: 1
  - resources: 2
    - secrets
    providers: 3
    - aescbc: 4
        keys:
        - name: key1 5
          secret: c2VjcmV0IGlzIHNlY3VyZQ== 6
        - name: key2
          secret: dGhpcyBpcyBwYXNzd29yZA==
    - secretbox:
        keys:
        - name: key1
          secret: YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoxMjM0NTY=
    - aesgcm:
        keys:
        - name: key1
          secret: c2VjcmV0IGlzIHNlY3VyZQ==
        - name: key2
          secret: dGhpcyBpcyBwYXNzd29yZA==
    - identity: {}

1
每个 资源 数组项都是单独的配置,包含完整的配置。
2
resources.resources 字段是一个应加密的 Kubernetes 资源名称(资源或resource .group)数组。
3
provider 数组 是可能的加密供应商的有序列表。每个条目只能指定 一种提供程序类型(身份 或esccc,但不能在同一项目中提供)。
4
列表中的第一个提供程序用于加密进入存储的资源。
5
secret 的任意名称。
6
Base64 编码的随机密钥。不同的提供程序具有不同的密钥长度。请参阅 有关如何生成密钥的说明

当从存储读取资源时,与存储的数据匹配的每个提供商都会尝试按顺序解密数据。如果没有供应商因为格式或机密密钥不匹配而无法读取存储的数据,则会返回错误,这会阻止客户端访问该资源。

重要

如果任何资源无法通过加密配置读取(因为密钥已被更改),唯一的方法是直接从底层 etcd 中删除该密钥。尝试读取该资源的调用将失败,直到它被删除或提供了有效的解密密钥。

34.3.1. 可用的供应商

名称Encryption强度速度密钥长度其他注意事项

身份

N/A

N/A

N/A

按原样编写的资源,不进行加密.当设置为第一个提供程序时,资源将在写入新值时解密。

aescbc

使用 PKCS#7 padding 的 AES-CBC

strongest

速度快

32-byte

推荐的加密选择,但可能比 secretbox 慢

secretbox

XSalsa20 and Poly1305

更快

32-byte

较新的标准在需要进行高级别审查的环境中不可接受。

aesgcm

带有随机初始化向量(IV)的 AES-GCM

必须每 200,000次写入轮转一次

速度最快

16、24 或 32 字节

不建议使用,除非实施了自动化密钥轮转方案。

每个提供程序支持多个密钥。尝试密钥是为了解密。如果提供程序是第一个提供程序,则第一个密钥用于加密。

注意

Kubernetes 没有正确的非ce 生成器,且对 AES-GCM 使用随机四。由于 AES-GCM 需要安全的不正确,因此不建议使用 AES-GCM。200,000的写限制只是将误用性滥用的可能性限制为合理的低利润。