当前位置: 首页 > news >正文

【技术升级】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 '秘钥' ;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 论文阅读:(DETR)End-to-End Object Detection with Transformers
  • B端系统UI个性化设计:感受定制之美
  • 微信小游戏之 三消(一)
  • C#华为OD笔试题*3
  • Spring Core——资源加载与访问(Resource)
  • 优思学院|如何透过客户忠诚度分析决定六西格玛改善项目?
  • 01、爬虫学习入门
  • C语言数组练习--扫雷
  • 【目标检测】Yolo5基本使用
  • 【SQL 新手教程 1/20】SQL语言MySQL数据库 简介
  • 为什么 OPC UA 很重要
  • Redis与缓存
  • go-kratos 学习笔记(8) redis的使用
  • OpenCV 图像基础
  • 养宠空气净化器哪家好?养宠空气净化器质量好的牌子推荐
  • 「译」Node.js Streams 基础
  • Codepen 每日精选(2018-3-25)
  • DOM的那些事
  • es6
  • Javascript Math对象和Date对象常用方法详解
  • Python学习之路16-使用API
  • Python中eval与exec的使用及区别
  • 从伪并行的 Python 多线程说起
  • 今年的LC3大会没了?
  • 使用Gradle第一次构建Java程序
  • -- 数据结构 顺序表 --Java
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 微服务框架lagom
  • 用element的upload组件实现多图片上传和压缩
  • 运行时添加log4j2的appender
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • Java总结 - String - 这篇请使劲喷我
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • %@ page import=%的用法
  • (5)STL算法之复制
  • (C#)获取字符编码的类
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)pulsar安装在独立的docker中,python测试
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (四)JPA - JQPL 实现增删改查
  • (算法)Travel Information Center
  • (循环依赖问题)学习spring的第九天
  • (转载)OpenStack Hacker养成指南
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .gitignore文件设置了忽略但不生效
  • .java 9 找不到符号_java找不到符号
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .net core docker部署教程和细节问题
  • .NET Core 项目指定SDK版本
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net Memory Profiler的使用举例