4.10.2. 启用 etcd 加密
您可以启用 etcd 加密来加密集群中的敏感资源。
不建议在初始加密过程完成前备份 etcd。如果加密过程还没有完成,则备份可能只被部分加密。
使用具有
cluster-admin
角色的用户访问集群。
修改
APIServer
对象:
$ oc edit apiserver
把
encryption
项类型设置为
aescbc
:
spec:
encryption:
type: aescbc 1
- 1
-
aescbc
类型表示 AES-CBC 使用 PKCS#7 padding 和 32 字节密钥来执行加密。 保存文件以使改变生效。 加密过程开始。根据集群的大小,这个过程可能需要 20 分钟或更长的时间才能完成。 验证 etcd 加密是否成功。 查看 OpenShift API 服务器的Encrypted
状态条件,以验证其资源是否已成功加密:$ oc get openshiftapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
在成功加密后输出显示
EncryptionCompleted
:EncryptionCompleted All resources encrypted: routes.route.openshift.io
如果输出显示
EncryptionInProgress
,加密仍在进行中。等待几分钟后重试。 查看 Kubernetes API 服务器的Encrypted
状态条件,以验证其资源是否已成功加密:$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'
在成功加密后输出显示
EncryptionCompleted
:EncryptionCompleted All resources encrypted: secrets, configmaps
如果输出显示
EncryptionInProgress
,加密仍在进行中。等待几分钟后重试。 查看 OpenShift OAuth API 服务器的Encrypted
状态条件,以验证其资源是否已成功加密:$ oc get authentication.operator.openshift.io -o=jsonpath='{range .items[0].status.conditions[?(@.type=="Encrypted")]}{.reason}{"\n"}{.message}{"\n"}'