如何在云上使用confd+ACM管理敏感数据

在前面的一些文章中,我们介绍了如何在云上安全的存放配置数据,但是上面的方法都是有代码侵入性的,也就是说需要修改应用程序,本文会讲解如何使用 confd+ACM 在不修改代码的情况下动态修改应用所需的配置,并且可以重新启动应用加载最新的配置。这样做可以在无代码侵入的情况下加强应用程序的安全性和运维效率:

  • 安全性:应用程序的数据可能是敏感数据,ACM 具有健壮的访问控制机制,可以对敏感数据进行加密来安全的保存密码、API密钥、证书等敏感信息;
  • 运维效率:当需要修改应用的某些配置内容时,如果只有一两台机器可以手工操作,但是当涉及几十上百台数量的时候,confd+ACM可以通过配置的发布批量进行配置修改和重启操作;
  • 无代码侵入:通过confd+ACM的组合可以做到无需修改应用代码即可达到让应用配置动态生效的效果

下面以应用的数据库配置为例讲解如何使用confd+ACM安全管理应用配置

准备工作

在操作本文的示例之前需要配置好开通ACM和对confd的使用有基本概念。

创建confd配置文件

创建confd所需的toml格式配置文件

vim /etc/confd/conf.d/myapp.toml

指定模版文件,
ACM中的加密配置需要以/cipher-开头
check_cmd用于检验配置的正确性,防止错误配置导致应用加载失败
reload_cmd用于重启应用或者让应用动态加载配置

[template]
src = "jdbc.properties.tmpl"
dest = "/tmp/jdbc.properties"
keys = [
"/cipher-myapp/database/jdbc",
]#check_cmd = "check config is correct"
reload_cmd = "restart app"

创建模版文件

vim /etc/confd/templates/jdbc.properties.tmpl

getv从ACM中获取对应dataId的配置:
/cipher-myapp/database/jdbc对应的dataId为cipher-myapp.database.jdbc
confd基于kms会自动对/cipher-开头的配置进行解密

{{$data := json (getv "/cipher-myapp/database/jdbc")}}
jdbc.url={{$data.url}}
jdbc.username={{$data.username}}
jdbc.password={{$data.password}}

在ACM上创建所需的配置文件

创建dataId为cipher-myapp.database.jdbc的配置文件,group使用默认的DEFAULT_GROUP即可,配置内容为

{
"url":"jdbc:mysql://localhost:3306/dbName",
"username":"testuser",
"password":"testpassword"
}

启动confd

和官网文档不同的是,要支持解密功能,需要设置confd的-openKMS开关,并且设置kms服务的regionId,这个信息可以从示例代码中获得

confd -backend nacos -endpoint {endpoint}:8080 -namespace {namespace} -accessKey {accessKey} -secretKey {secretKey} -openKMS true -regionId {regionId} -watch

生成配置文件

查看生成的/tmp/jdbc.properties配置文件,如果生成了该文件,并且文件内容如下则说明整个流程运行正常

jdbc.url=jdbc:mysql://localhost:3306/dbName
jdbc.username=testuser
jdbc.password=testpassword

变更ACM配置内容

当需要修改数据库的连接串的时候,直接在ACM上修改cipher-myapp.database.jdbc配置,confd会重新生成数据库配置文件,并让应用加载最新配置。当然在实际生产环境中,可以使用ACM的Beta功能对几台机器先进行灰度发布,检验没问题再继续全量发布


原文链接
本文为云栖社区原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/518443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下RocketMQ下载、安装、部署、控制台

linux 环境 RocketMQ 4.8.0 安装、部署控制台 https://gblfy.blog.csdn.net/article/details/116269833 文章目录一、软件下载二、安装、启动、配置2.1. 安装jdk1.8及maven2.2. 解压2.3. 配置环境变量2.4. 启动三、安装可视化插件3.1. github下载3.2. 解压3.3. 修改配置文件3.4…

阿里云InfluxDB® Raft HybridStorage实现方案

背景 阿里云InfluxDB是阿里云基于开源版InfluxDB打造的一款时序数据库产品,提供更稳定的持续运行状态、更丰富强大的时序数据计算能力。在现有的单节点版本之外,阿里云InfluxDB团队还将推出多节点的高可用版本。 我们知道现有的开源版InfluxDB只提供单…

灰度测试试验流量“洗牌”

什么是灰度测试 A/B测试系统的一个常用场景是App/小程序/后端服务精细化运营过程中的上线迭代管理,通常被称为灰度测试或者灰度上线。 详细来说,如果软件产品要在不久的将来推出一个全新的功能,或者做一次比较重大的改版的话,要…

html-页面结构分析

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>页面结构分析</title> </head> <body><header><h2>网页头部</h2></header><sectiokn><h2>网页…

阿里资深技术专家的10年感悟

阿里妹导读&#xff1a;阿里有许多土话&#xff0c;比如“方法总比困难多”、“不淘汰自己就会被别人淘汰”、“你感觉不舒服的时候&#xff0c;就是成长的时候”。每一句都在激励我们向前。生活总不缺困难和磨练&#xff0c;痛苦的时候&#xff0c;只有转变思维&#xff0c;才…

npm ERR! cb() never called!

文章目录1. 问题现象2.解决方案1. 问题现象 0 info it worked if it ends with ok 1 verbose cli [ D:\\ProgramFiles\\nodejs\\node.exe, 1 verbose cli D:\\ProgramFiles\\nodejs\\node_modules\\npm\\bin\\npm-cli.js, 1 verbose cli install, 1 verbose cli -g, 1 v…

AnalyticDB for MySQL 3.0基础版重磅发布

随着大数据技术的迅速发展以及对数据价值的认识逐渐加深&#xff0c;大数据已经融合到各行各业。据可靠权威数据显示&#xff0c;超过39.6%的企业正在应用数据并从中获益&#xff0c;超过89.6%的企业已经成立或计划成立相关的大数据分析部&#xff0c;超过六成的企业在扩大数据…

主键索引 or 辅助索引?一文告诉你 Mysql limit 优化时的索引选择!

作者 | 吴海存责编 | 徐威龙封图| CSDN下载于视觉中国导读&#xff1a;本文主要针对limit分页时&#xff0c;是优先基于主键索引还是辅助索引等层面展开分析&#xff0c;对limit及offset的用法以及是否该用索引不会过多赘述。我们知道&#xff0c;在Mysql中可以通过limit实现快…

html-iframe内联框架

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>内联框架学习</title> </head> <body><!-- iframe内联框架 src : 地址 w-h : 宽度高度 --><iframe src"https://www.…

mysql [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

导入sql报错 [ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci’ 生成转储文件的数据库版本为8.0,要导入sql文件的数据库版本为5.6,因为是高版本导入到低版本&#xff0c;引起1273错误 解决方法 打开sql文件&#xff0c;将文件中的所有utf8mb4_0900_ai_ci替换为utf8_gen…

MongoDB sharding 集合不分片性能更高?

最近云上用户用户遇到一个 sharding 集群性能问题的疑惑&#xff0c;比较有代表性&#xff0c;简单分享一下 测试配置 mongos x 2、shard x 3测试1&#xff1a;集合不开启分片&#xff0c;批量 insert 导入数据&#xff0c;每个 batch 100 个文档测试2&#xff1a;集合开启分…

一个阿里产品经理眼中的“垃圾分类”

我叫切斯&#xff0c;是阿里巴巴的一名产品经理。今天和大家说说一个上线刚刚6天&#xff0c;已被500多万网友疯玩的AI——垃圾图像识别&#xff0c;可见垃圾分类苦天下网友久矣。 以下是一个产品经理的碎碎念~ 有人说它是“国内首款真正的垃圾图像识别产品”&#xff0c;对着…

Mysql8.0 的sql修改成 Mysql7.X的sql

将utf8mb4_0900_ai_ci替换为utf8mb4_general_ci 案例&#xff1a; Mysql8.0 ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_0900_ai_ci COMMENT分类;Mysql7.X ENGINEInnoDB DEFAULT CHARSETutf8mb4 COLLATEutf8mb4_general_ci COMMENT测试;

html-初识表单post和get提交

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录注册</title> </head> <body> <h1>注册</h1> <!-- 表单formaction: 表单提交的位置&#xff0c;可以是网站&…

数据仓库架构以及多维数据模型的设计

作者 | 云祁封图| CSDN下载于视觉中国一、前言作者最近看了《Hadoop构建数据仓库实践》这本书&#xff0c;收获很多&#xff0c;把一些关于数仓实践的心得整理出来&#xff0c;方便大家共同学习。注&#xff1a;本文内容由作者摘自《Hadoop构建数据仓库实践》与其他相关参考资料…

npm使用taobao镜像

# 显示当前镜像网址 npm get registry# 使用淘宝镜像网址 npm config set registry https://registry.npm.taobao.org/

html-文本框和单选框

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>登录注册</title> </head> <body> <h1>注册</h1> <!-- 表单form action: 表单提交的位置&#xff0c;可以是网站&am…

如何使用 Mybatis 实现数据库 CURD 操作?

作者 | 阿文&#xff0c;责编 | 郭芮头图 | CSDN 下载自东方IC出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的…

如何使用confd+ACM管理Nginx配置

Nginx 作为优秀的开源软件&#xff0c;凭借其高性能高并发等特点&#xff0c;常常作为web和反向代理服务部署在生产环境中。但是当 Nginx 的规模较大时&#xff0c; Nginx 的运维成本也是不断上升。本文介绍如何通过confdACM来管理 Nginx 配置&#xff0c;通过集中式的配置管理…

Vue CLI 安装

前提&#xff1a;安装vue/cli之前要先安装nodejs nodejs官网&#xff1a;https://nodejs.org/en/ Vue CLI官网&#xff1a;https://cli.vuejs.org/zh/ # 安装最新版本vue/cli npm install -g vue/cli# 安装指定版本vue/cli npm install -g vue/cli4.5.9# 查看vue/cli版本 vue -…