合肥手机网站制作,jsp网站开发软件,四川建设网评标专家库,企业网站设计有哪些新功能在前面的一些文章中#xff0c;我们介绍了如何在云上安全的存放配置数据#xff0c;但是上面的方法都是有代码侵入性的#xff0c;也就是说需要修改应用程序#xff0c;本文会讲解如何使用 confdACM 在不修改代码的情况下动态修改应用所需的配置#xff0c;并且可以重新启…在前面的一些文章中我们介绍了如何在云上安全的存放配置数据但是上面的方法都是有代码侵入性的也就是说需要修改应用程序本文会讲解如何使用 confdACM 在不修改代码的情况下动态修改应用所需的配置并且可以重新启动应用加载最新的配置。这样做可以在无代码侵入的情况下加强应用程序的安全性和运维效率
安全性应用程序的数据可能是敏感数据ACM 具有健壮的访问控制机制可以对敏感数据进行加密来安全的保存密码、API密钥、证书等敏感信息;运维效率当需要修改应用的某些配置内容时如果只有一两台机器可以手工操作但是当涉及几十上百台数量的时候confdACM可以通过配置的发布批量进行配置修改和重启操作;无代码侵入通过confdACM的组合可以做到无需修改应用代码即可达到让应用配置动态生效的效果
下面以应用的数据库配置为例讲解如何使用confdACM安全管理应用配置
准备工作
在操作本文的示例之前需要配置好开通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.urljdbc:mysql://localhost:3306/dbName
jdbc.usernametestuser
jdbc.passwordtestpassword
变更ACM配置内容
当需要修改数据库的连接串的时候直接在ACM上修改cipher-myapp.database.jdbc配置confd会重新生成数据库配置文件并让应用加载最新配置。当然在实际生产环境中可以使用ACM的Beta功能对几台机器先进行灰度发布检验没问题再继续全量发布
原文链接 本文为云栖社区原创内容未经允许不得转载。