由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)
背景
前段时间项目组用到的8.0.0版本的keycloak被安全部门同事扫出来一个中危漏洞:
A flaw was found in Keycloak, where it is possible to force the server to call out an unverified URL using the OIDC parameter request_uri. This flaw allows an attacker to use this parameter to execute a Server-side request forgery (SSRF) attack.
所以这两天在琢磨怎么升级keycloak。
最终依赖导出功能解决升级问题:(部署方式为腾讯云的k8s容器服务)
keycloak通过standalone.sh导出导出
1 新建部署单元,镜像:直接填: jboss/keycloak,版本用16.0.0
2 数据库配置在环境变量,指定另外的库,(环境变量好像有先后顺序之分?期间填错了database和user的前后位置导致报错)具体需要的环境变量有:

- env:
- name: KEYCLOAK_USER
value: admin
- name: KEYCLOAK_PASSWORD
value: **********
- name: DB_VENDOR
value: mysql
- name: DB_ADDR
value: 10.200.192.3
- name: MYSQL_PORT
value: "3306"
- name: DB_DATABASE
value: keycloak_2022
- name: DB_USER
value: root
- name: DB_PASSWORD
value: **********
- name: PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_FRONTEND_URL
value: https://sso-2022.xxx.com/auth
- name: TZ
value: Asia/Shanghai
3 该数据库必须已创建,且为空;
4 启动新keycloak。如果启动正常的话可以看到如下日志:

1 Added 'admin' to '/opt/jboss/keycloak/standalone/configuration/keycloak-add-user.json', restart server to load user
2 -b 0.0.0.0
3 =========================================================================
4
5 Using MySQL database
6
7 =========================================================================
8
9 [0m16:54:59,234 INFO [org.jboss.modules] (CLI command executor) JBoss Modules version 1.11.0.Final
10 [0m[0m16:54:59,836 INFO [org.jboss.msc] (CLI command executor) JBoss MSC version 1.4.12.Final
11 [0m[0m16:54:59,922 INFO [org.jboss.threads] (CLI command executor) JBoss Threads version 2.4.0.Final
12 [0m[0m16:55:00,731 INFO [org.jboss.as] (MSC service thread 1-2) WFLYSRV0049: Keycloak 15.0.0 (WildFly Core 15.0.1.Final) starting
13 [0m[0m16:55:01,040 INFO [org.jboss.vfs] (MSC service thread 1-2) VFS000002: Failed to clean existing content for temp file provider of type temp. Enable DEBUG level log to find what caused this
14 [0m[0m16:55:04,734 INFO [org.wildfly.security] (ServerService Thread Pool -- 20) ELY00001: WildFly Elytron version 1.15.3.Final
15 [0m[0m16:55:06,725 INFO [org.jboss.as.controller.management-deprecated] (ServerService Thread Pool -- 5) WFLYCTL0033: Extension 'security' is deprecated and may not be supported in future versions
16 [0m[0m16:55:08,639 INFO [org.jboss.as.controller.management-deprecated] (Controller Boot Thread) WFLYCTL0028: Attribute 'security-realm' in the resource at address '/core-service=management/management-interface=http-interface' is deprecated, and may be removed in a future version. See the attribute description in the output of the read-resource-description operation to learn more about the deprecation.
5 从旧keycloak导出配置文件:keycloak-export.json:(参考链接https://www.coder.work/article/6370494)
bin/standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777

6
登录新版本keycloak导入:
bin/standalone.sh -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=singleFile -Dkeycloak.migration.file=keycloak-export.json -Dkeycloak.migration.strategy=OVERWRITE_EXISTING -Djboss.http.port=8888 -Djboss.https.port=9999 -Djboss.management.http.port=7777
7 将keycloak的 KEYCLOAK_FRONTEND_URL 改为生产用的url,并将域名解析切换至新keycloak。自此,生产流量已切换至新keycloak。
经验证,用户和权限配置等都迁移正常。
总结:
官方表示,控制台导出,会将一些敏感信息用****代替,所以从控制台的导出和导入都会有问题。
----------------------------------------------------
参考链接:https://wjw465150.gitbooks.io/keycloak-documentation/content/server_admin/topics/export-import.html
参考链接:https://www.keycloak.org/docs/latest/server_admin/#assembly-exporting-importing_server_administration_guide
由于CVE-2020-10770漏洞,k8s集群升级keycloak 8.0.0-->15.0.0(由于15.0.0最近又出安全漏洞,升级为16.0.0)的更多相关文章
- kubeadm部署K8S集群v1.16.3
本次先更新kubeadm快速安装K8S,二进制安装上次没写文档,后续更新,此次最新的版本是V1.16.3 1.关闭防火墙.关闭selinux.关闭swapoff -a systemctl stop f ...
- 在k8s集群部署SonarQube
目录 1.2.存储环境 1.3.sonarqube版本 2.部署sonarqube 2.1.部署PostgreSQL 2.2.部署SonarQube 2.3.访问检查 SonarQube 是一款用于代 ...
- 【K8S】基于单Master节点安装K8S集群
写在前面 最近在研究K8S,今天就输出部分研究成果吧,后续也会持续更新. 集群规划 IP 主机名 节点 操作系统版本 192.168.175.101 binghe101 Master CentOS 8 ...
- 使用kubeadm部署k8s集群[v1.18.0]
使用kubeadm部署k8s集群 环境 IP地址 主机名 节点 10.0.0.63 k8s-master1 master1 10.0.0.63 k8s-master2 master2 10.0.0.6 ...
- 万级K8s集群背后etcd稳定性及性能优化实践
背景与挑战 随着腾讯自研上云及公有云用户的迅速增长,一方面,腾讯云容器服务TKE服务数量和核数大幅增长, 另一方面我们提供的容器服务类型(TKE托管及独立集群.EKS弹性集群.edge边缘计算集群.m ...
- 冰河教你一次性成功安装K8S集群(基于一主两从模式)
写在前面 研究K8S有一段时间了,最开始学习K8S时,根据网上的教程安装K8S环境总是报错.所以,我就改变了学习策略,先不搞环境搭建了.先通过官网学习了K8S的整体架构,底层原理,又硬啃了一遍K8S源 ...
- 边缘计算k8s集群SuperEdge初体验
前言 手上一直都有一堆的学生主机,各种各样渠道途径拿来的机器. 一直管理里面都比较蛋疼,甚至也不太记得住它们在哪是什么IP,管理起来很是头疼. 有阵子空闲的时候想折腾了一下边缘计算集群方案. 希望能把 ...
- 利用容器逃逸实现远程登录k8s集群节点
某天, 某鱼说要吃瞄, 于是...... 李国宝:边缘计算k8s集群SuperEdge初体验 zhuanlan.zhihu.com 图标 照着上一篇文章来说,我这边边缘计算集群有一堆节点. 每个节 ...
- 二进制方法-部署k8s集群部署1.18版本
二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...
- Kubernetes全栈架构师(Kubeadm高可用安装k8s集群)--学习笔记
目录 k8s高可用架构解析 Kubeadm基本环境配置 Kubeadm系统及内核升级 Kubeadm基本组件安装 Kubeadm高可用组件安装 Kubeadm集群初始化 高可用Master及Token ...
随机推荐
- 硬件协议之i2c
https://blog.csdn.net/ctyqy2015301200079/article/details/83830326 (此文章可能有误) 从目前来看,所有读写操作(包括ACK的读写)都 ...
- C++练习3 定义带默认值的参数
通过void func 定义函数的默认值和其可以容纳多少个实参 1 #include <iostream> 2 using namespace std; 3 void func(int a ...
- Redis 源码解读之 Rehash 的调用时机
Redis 源码解读之 Rehash 的调用时机 背景和问题 本文想要解决的问题 什么时机触发 Rehash 操作? 什么时机实际执行 Rehash 函数? 结论 什么时机触发 Rehash 操作? ...
- 最大K段和
题目大意 有一个长度为 \(N\) 的序列 \(A\) .他希望从中选出不超过 \(K\) 个连续子段,满足它们两两不相交,求总和的最大值(可以一段也不选,答案为 \(0\)). 分析 很容易想到 \ ...
- PostGIS之维数扩展的九交模型
1. 概述 PostGIS 是PostgreSQL数据库一个空间数据库扩展,它添加了对地理对象的支持,允许在 SQL 中运行空间查询 PostGIS官网:About PostGIS | PostGIS ...
- xr32f429开发环境搭建
XR32是全志科技的一款MCU芯片,基本参数如下所示: 环境的搭建首先是下载芯片对应的资料和手册(QQ群723687715)软硬件资料 官网工具下载:注册全志服务平台 下载无线连接工具和无线MCU 工 ...
- Solon v2.2.1 发布。向 Graalvm Native 友好靠近
本次更新最重要的是增加了 Solon APT 项目,为更简单的完成 Graalvm Native 打包提供了帮助:其次是增加了 @ProxyComponent 和 @SolonMain 注解:以及优化 ...
- linux配置爬虫环境
#宝塔面板安装python3 #安装依赖包 yum -y groupinstall "Development tools" yum -y install zlib-devel bz ...
- 若依-更换数据库-sqlite
基础 我是在ruoyi-vue已经安装了mybatis-plus的基础上进行的修改 关于SQLite SQLite 是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎. ...
- api规范PHP,RESTful API规范(详细版)
rest 是一种软件架构风格,如果你们的接口是 rest 接口,那么就可被认为你们的的接口是restful的,英文名词和形容词的区别. rest 接口是围绕"资源"展开的,利用HT ...