Information in this document may be out of date

This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: kube-apiserver Encryption Configuration (v1)

kube-apiserver 加密配置 (v1)

包 v1 是 API 的 v1 版本。

资源类型

EncryptionConfiguration

' to encrypt all resources within a group or '.' to encrypt all resources.

'.' can be used to encrypt all resource in the core group. '.' will encrypt all resources, even custom resources that are added after API server start. Use of wildcards that overlap within the same resource list or across multiple entries are not allowed since part of the configuration would be ineffective. Resource lists are processed in order, with earlier lists taking precedence. -->

EncryptionConfiguration 为加密驱动保存完整的配置信息。 它还允许使用通配符指定应加密的资源。 使用 *.<group> 加密组内的所有资源,或使用 *.* 加密所有资源。 *. 可用于加密核心组内的所有资源。 *.* 将加密所有资源,甚至是 API 服务器启动后添加的自定义资源。 不允许在同一资源列表内或跨多个条目中使用重叠的通配符,因为部分配置将无效。 按顺序处理资源列表,列在前面的被优先处理。

例如:

kind: EncryptionConfiguration
apiVersion: apiserver.config.k8s.io/v1
resources:
- resources:
  - events
  providers:
  - identity: {}  # do not encrypt events even though *.* is specified below
- resources:
  - secrets
  - configmaps
  - pandas.awesome.bears.example
  providers:
  - aescbc:
      keys:
      - name: key1
        secret: c2VjcmV0IGlzIHNlY3VyZQ==
- resources:
  - '*.apps'
  providers:
  - aescbc:
      keys:
      - name: key2
        secret: c2VjcmV0IGlzIHNlY3VyZSwgb3IgaXMgaXQ/Cg==
- resources:
  - '*.*'
  providers:
  - aescbc:
      keys:
      - name: key3
        secret: c2VjcmV0IGlzIHNlY3VyZSwgSSB0aGluaw==
字段描述
apiVersion
string
apiserver.config.k8s.io/v1
kind
string
EncryptionConfiguration
resources [必需]
[]ResourceConfiguration

resources 是一个包含资源及其对应的加密驱动的列表。

AESConfiguration

出现在:

AESConfiguration 包含 AES 转换器的 API 配置信息。

字段描述
keys [必需]
[]Key

keys 是一组用于创建 AES 转换器的密钥。 对于 AES-CBC,每个密钥必须是 32 字节长;对于 AES-GCM,每个密钥可以是 16、24、32 字节长。

IdentityConfiguration

出现在:

IdentityConfiguration 是一个空的结构,用来支持在驱动配置中支持标识转换器。

KMSConfiguration

出现在:

KMSConfiguration 包含基于 KMS 的封套转换器的名称、缓存大小以及配置文件路径信息。

字段描述
apiVersion
string

KeyManagementService 的 apiVersion

name [必需]
string

name 是要使用的 KMS 插件名称。

cachesize
int32

cachesize 是可在内存中缓存的 Secret 数量上限。默认值是 1000。 将此字段设置为负值会禁用缓存。此字段仅允许用于 KMS v1 驱动。

endpoint [必需]
string

endpoint 是 gRPC 服务器的监听地址,例如 "unix:///var/run/kms-provider.sock"。

timeout
meta/v1.Duration

对 KMS 插件执行 gRPC 调用的超时时长(例如,'5s')。默认值为 3 秒。

Key

出现在:

Key 中包含为某转换器所提供的键名和对应的私密数据。

字段描述
name [必需]
string

name 是在向磁盘中存储数据时使用的键名。

secret [必需]
string

secret 是实际的密钥,用 base64 编码。

ProviderConfiguration

出现在:

ProviderConfiguration 为加密驱动存储配置信息。

字段描述
aesgcm [必需]
AESConfiguration

aesgcm 是用于 AES-GCM 转换器的配置。

aescbc [必需]
AESConfiguration

aescbc 是用于 AES-CBC 转换器的配置。

secretbox [必需]
SecretboxConfiguration

secretbox 是用于基于 Secretbox 的转换器的配置。

identity [必需]
IdentityConfiguration

identity 是用于标识转换器的配置(空)。

kms [必需]
KMSConfiguration

kms 中包含用于基于 KMS 的封套转换器的名称、缓存大小以及配置文件路径信息。

ResourceConfiguration

出现在:

ResourceConfiguration 中保存资源配置。

字段描述
resources [必需]
[]string

resources 是必须要加密的 Kubernetes 资源的列表。 资源名称来自于组/版本/资源的 resourceresource.group。 例如:pandas.awesome.bears.example 是一个自定义资源, 具有 'group': awesome.bears.example、'resource': pandas。 使用 *.* 加密所有资源,使用 *.<group> 加密特定组中的所有资源。 例如:*.awesome.bears.example 将加密组 awesome.bears.example 中的所有资源。 例如:*. 将加密核心组中的所有资源(如 Pod、ConfigMap 等)。

providers [必需]
[]ProviderConfiguration

providers 是一个转换器列表,用来将资源写入到磁盘或从磁盘上读出。 例如:'aesgcm'、'aescbc'、'secretbox'、'identity'、'kms'。

SecretboxConfiguration

出现在:

SecretboxConfiguration 包含用于某 Secretbox 转换器的 API 配置。

字段描述
keys [必需]
[]Key

keys 是一个密钥列表,用来创建 Secretbox 转换器。每个密钥必须是 32 字节长。

该页面是自动生成的。

如果你打算报告此页面的问题,请在问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

最后修改 August 20, 2023 at 10:40 PM PST: [zh-cn] sync config-api/apiserver-* client-* imagepolicy (02e02b5be6)