Skip to main content
Version: v3&v6

配置文件加密

1. 背景

CN部分客户要求配置文件(private.yaml)不允许存在明文密码。

2. 版本要求:

ONES标品版本(6.18以上)已提供标准方案,支持国密SM4或者AES256算法来加解密,任选其一即可。

3. 操作前提

(1) ONES前端页面上的基本业务正常, 无报错。

(2) ONES后端各个pod状态状态,如下命令输出为空

kubectl get pod -A|grep -vE  'Running|Completed'

4. 加密操作

支持国密SM4或者AES256算法来加解密,任选其一、加解密保持一致即可。

# 4.1 进入配置文件所在默认目录,下载版本
cd /data/ones/ones-installer-pkg/config/
curl -O https://res.ones.pro/script/encrypt
chmod a+x encrypt
cp private.yaml private.yaml.2025bak

# 4.2 生成密钥方法1,国内客户推荐使用国密SM4算法(秘钥长度16字节),并保留输出结果,供后续加解密使用
openssl rand -hex 16

# 生成密钥方法2,使用AES256算法(秘钥长度32字节),并保留输出结果,供后续加解密使用
# openssl rand -hex 32

# 4.3 密码加密方法1,加密所有包含password的key,采用4.2生成的密钥及国密SM4算法
cat private.yaml |grep -iE 'password|pwd' |sed -n s/:.*//p|xargs -n 1 ./encrypt -algo sm4cbc -key {HEX形式的密钥} -file private.yaml -encrypt

# 4.3 密码加密方法2,加密所有包含password的key,采用4.2生成的密钥及AES256算法
# cat private.yaml |grep -i password|sed -n s/:.*//p|xargs -n 1 ./encrypt -algo aes256cbc -key {HEX形式的密钥} -file private.yaml -encrypt


# 4.4 修改private.yaml配置并下发
ones-ai-k8s.sh

vi config/private.yaml
configEncryptionKey: 'xxxxx' # 增加或修改配置项,保存HEX形式的密钥

make setup-ones


# 4.5 如需查看配置信息,可参照如下方式用同样的算法和密钥来解密文件,事后再参照4.4加密
# 密码解密方法1,采用4.2生成的密钥及国密SM4算法
./encrypt -algo sm4cbc -key {HEX形式的密钥} -file private.yaml -decrypt

# 密码解密方法2,采用4.2生成的密钥及AES256算法
# ./encrypt -algo aes256cbc -key {HEX形式的密钥} -file private.yaml -decrypt

5. 验证

(1)查看 project-api、wiki-api 是否重启

(2) ONES后段各个pod状态状态,如下命令输出为空

kubectl get pod -A|grep -vE  'Running|Completed'

(3) ONES前端页面上的基本业务正常, 无报错。