0


【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位

在这里插入图片描述

目前项目当中使用的Nacos版本为2.0.2,该版本可能存在一定的安全风险。软件的安全性是一个持续关注的问题,尤其是对于像Nacos这样的服务发现与配置管理平台,它在微服务架构中扮演着核心角色。随着新版本的发布,开发团队会修复已知的安全漏洞,并增强系统的整体安全性。因此要及时升级Nacos,避免因为安全问题,对项目造成影响。

关于Nacos配置不当导致的身份认证绕过漏洞的风险预警

漏洞描述

​ Nacos存在身份认证绕过漏洞,若用户Nacos未修改 secret.key,则攻击者可利用默认secret.key生成JWT Token,从而造成权限绕过访问到相关API接口。

受影响的版本

​ 0.1.0 <= Nacos <= 2.2.0

整改措施

​ 升级到安全版本,开启鉴权并修改token.secret.key和nacos用户的密码,同时避免在公网环境使用

升级Nacos

下载2.2.1版本的nacos
docker pull nacos/nacos-server:v2.2.1
Docker 环境启动 Nacos

参考连接:

https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
使用官方镜像,请在启动docker容器时,添加如下环境变量
NACOS_AUTH_ENABLE=true

修改客户端配置

spring:cloud:nacos:discovery:username: ${NACOS_USERNAME:nacos_user}# nacos用户名password: ${NACOS_PASSWORD:nacos_password}# nacos密码config:username: ${spring.cloud.nacos.discovery.username}password: ${spring.cloud.nacos.discovery.password}

Nacos 页面配置

  1. 权限控制-用户列表-创建用户
  2. 权限控制-权限管理-添加权限
  3. 权限控制-角色管理-绑定角色

错误信息

客户端403提示

修改配置nacos.core.auth.enabled=true后,注册服务时提示

failed to req API:127.0.0.1:8848/nacos/v1/ns/instance. code:403

参考连接:

https://github.com/alibaba/nacos/issues/2426

解决办法:

重新启动客户端

Mysql 提示缺少字段

Unknown column 'encrypted_data_key' in 'field list'

看提示是数据表缺少encrypted_data_key字段,那就手动为据表添加该字段

为保证用户敏感配置数据的安全,Nacos 提供了配置加密的新特性。降低了用户使用的风险,也不需要再对配置进行单独的加密处理。

数据库表 config_info、config_info_beta、his_config_info中需要新增字段 encrypted_data_key ,用来存储每一个配置项加密使用的秘钥。新版本的默认创建表的sql中已经添加该字段。

config数据库的这三张表变一下,就OK了

ALTER TABLE config_info ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
ALTER TABLE config_info_beta ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
ALTER TABLE his_config_info ADD COLUMN `encrypted_data_key` text NOT NULL COMMENT '秘钥' ;
标签: docker 安全 容器

本文转载自: https://blog.csdn.net/aaalk1001/article/details/140634689
版权归原作者 IT后浪 所有, 如有侵权,请联系我们删除。

“【技术升级】Docker环境下Nacos平滑升级攻略,安全配置一步到位”的评论:

还没有评论