Nacos 官方标准AES配置加密

发布时间:2026/6/26 8:52:04
Nacos 官方标准AES配置加密 一、功能定义官方原文配置加密用于保护存储在 Nacos 中的敏感配置内容。开启后符合命名规则的配置会以密文写入数据库并通过encrypted_data_key保存解密所需的数据密钥。边界说明重点配置加密不替代鉴权、网络隔离、TLS 或企业密钥管理系统。仅解决Nacos存储层、传输链路配置明文泄露问题。二、官方标准工作机制核心解决你明文不加密问题2.1 DataId 强制命名规则不可修改统一格式cipher-${algorithmName}-${真实配置名}适配本次AES插件固定格式cipher-aes-xxx.yaml/yml示例合规DataIdcipher-aes-application-secret.yml2.2 完整加解密流程发布配置Nacos识别cipher-aes-前缀 → 匹配加载的aes加密插件 → 插件自动生成专属数据密钥、加密配置明文 → 密文存入content、密钥存入数据库encrypted_data_key读取配置识别前缀 → 调取同名AES插件 → 读取库内encrypted_data_key密钥 → 自动解密返回业务明文兜底规则无前缀普通明文配置有前缀、无对应AES插件告警日志、原样返回明文不加密不解密三、数据库前置要求必执行缺失直接加密失效加密功能依赖4张核心表encrypted_data_key密钥字段低版本Nacos需手动执行SQL新增字段高版本新建集群自带字段MySQL标准化补齐SQL直接复制执行ALTERTABLEconfig_infoADDCOLUMNencrypted_data_keyvarchar(1024)NOTNULLDEFAULTCOMMENT密钥;ALTERTABLEconfig_info_betaADDCOLUMNencrypted_data_keyvarchar(256)NOTNULLDEFAULTCOMMENTencrypted_data_key;ALTERTABLEconfig_info_grayADDCOLUMNencrypted_data_keyvarchar(256)NOTNULLDEFAULTCOMMENTencrypted_data_key;ALTERTABLEhis_config_infoADDCOLUMNencrypted_data_keyvarchar(1024)NOTNULLDEFAULTCOMMENT密钥;校验标准加密配置入库后此字段非空为空则加密完全不生效你当前环境核心问题四、适配你环境AES加密插件全流程部署贴合你本地编译Docker Nacos4.1 插件源码说明官方源码仓库https://github.com/nacos-group/nacos-plugin/releases本次使用模块nacos-encryption-plugin-ext/nacos-aes-encryption-plugin插件算法标识aes对应前缀cipher-aes-4.2 本地编译插件你已执行归档标准命令目录C:\Users\fei\Downloads\nacos-plugin-2.3.x.1\nacos-aes-encryption-plugin打包命令跳过测试mvn clean package-Dmaven.test.skiptrue打包产物target/nacos-aes-encryption-plugin-1.0.0-SNAPSHOT.jar4.3 本地Maven安装Jar供SpringBoot客户端依赖进入target目录Windows CMD执行安装命令打入本地maven仓库mvn install:install-file-Dfilenacos-aes-encryption-plugin-1.0.0-SNAPSHOT.jar-DgroupIdcom.alibaba.nacos-DartifactIdnacos-aes-encryption-plugin-Dversion1.0.0-SNAPSHOT-Dpackagingjar坐标固定后续项目依赖必须完全一致不可改动4.4 Docker Nacos服务端部署插件本地Jar拷贝至Nacos容器plugins目录替换你的容器ID45ab5bd968ef# 本地windows拷贝到docker nacos容器plugins目录 docker cp C:\Users\fei\Downloads\nacos-plugin-2.3.x.1\nacos-plugin-2.3.x.1\nacos-encryption-plugin-ext\nacos-aes-encryption-plugin\target\nacos-aes-encryption-plugin-1.0.0-SNAPSHOT.jar 45ab5bd968ef:/home/nacos/plugins/容器内授权Jar可读权限防止插件加载失败docker exec -it 45ab5bd968ef bash chmod 644 /home/nacos/plugins/nacos-aes-encryption-plugin-1.0.0-SNAPSHOT.jar重启Nacos加载插件单机模式cd /home/nacos/bin sh shutdown.sh sh startup.sh -m standalone校验插件加载日志检索 aes 关键字出现load aes插件即为生效4.5 SpringBoot客户端引入依赖固定坐标不可修改pom.xml依赖客户端必须加载同一份编译插件否则无法解密、只能读取密文dependencygroupIdcom.alibaba.nacos/groupIdartifactIdnacos-aes-encryption-plugin/artifactIdversion1.0.0-SNAPSHOT/version/dependency硬性要求服务端plugins Jar包、客户端maven依赖Jar包必须为同一编译包版本、字节码完全一致