数据库密码定期轮换(AWS版)

news2024/11/14 1:58:57

问题

需要定期轮换AWS上面的RDS数据库的密码,而且,需要让业务程序无感知。

思路

AWS有个一个aws-secretsmanager-jdbc库,只要在SpringBoot的基础上面集成即可,就可以使用secrets manager来定期轮换数据库的密码了。

解决步骤

这里用的是私有vpc,所以需要一些准备工作。

安全组

这里需要许可内网vpc内部能够访问Secrets Manager的REST API,所以,需要许可vpc内部的能够使用443端口进行出站。配置类似如下:
配置安全组443端口

endpoint

接下来,配置vpc的Secrets Manager服务端口,保证vpc内部能够通过内网访问调用Secrets Manager接口。
endpoint配置sm
注意:这里私有vpc必须是RDS同一个,这里的安全组,选择之前创建许可出站443端口的安全组即可。

Secrets Manager

参加一个密钥,并且让Secrets Manager定期轮换这个密钥的密码。后期,还需要将这个密钥集成到SpringBoot里面。创建密钥类似如下:
创建密钥
创建RDS密钥
这里填入数据库用户名和密码。
注意:这里的数据库用户必须是数据库已经存在的用户。
配置密钥
配置轮换函数
注意:这里配置Lambda轮换函数,这里Lambda轮换函数也可以自动生成,默认是自动生成的,也是可以的。

直接验证

点击【立即轮换密钥】,进行密钥轮换,如下图:
立即轮换密码
然后,在执行轮换密钥的Lambda的监控CloudWatch日志组中可以发现类似日志:
finishSecret: Successfully set AWSCURRENT stage to version ...,则表示轮换密码完成。最后,可以从【检索密钥值】中查看密码。进行登录测试,测试验证结果如下图:
测试验证mysql登录
上图使用test用户和轮换后的密码,成功登录数据库。

aws-secretsmanager-jdbc集成

假设基础工程是SpringBoot的Maven项目。

Maven

<dependency>
    <groupId>com.amazonaws.secretsmanager</groupId>
    <artifactId>aws-secretsmanager-jdbc</artifactId>
    <version>1.0.11</version>
</dependency>

application.yml

spring:
  datasource:
    url: jdbc-secretsmanager:mysql://xxx:3306/xxx
    username: dev/test/rds
    driver-class-name: com.amazonaws.secretsmanager.sql.AWSSecretsManagerMySQLDriver

这里主要就是设置jdbc驱动类为com.amazonaws.secretsmanager.sql.AWSSecretsManagerMySQLDriver和设置数据库用户为Secrets Manager的密钥名称;url使用的jdbc-secretsmanager协议。

总结

到这里aws-secretsmanager-jdbc+Spring Boot就集成完成了,这样Spring就可以在AWS云中使用轮换密钥了。

参考:

  • Amazon Secrets Manager 轮换问题排查
  • 如何在私有 VPC 中轮换 AWS Secrets Manager 密钥?
  • Spring Boot project using AWS RDS and Secrets Manager
  • aws-secretsmanager-jdbc

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

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

相关文章

Excel VBA 讲座05 - InputBox和MsgBox使用

本篇介绍的内容&#xff1a; 1&#xff0c;当用户使用宏或procedure时&#xff0c;使用InputBox来接收或收集用户输入的信息。 2&#xff0c;根据需求使用IF语句构建逻辑。 3&#xff0c;使用Message Box将信息展示给用户&#xff0c;比如用户输出错误&#xff0c;就提示用户…

np.loadtxt()读取数据

前言 机器学习中使用np.loadtxt()可以高效的导入数据&#xff0c;np.loadtxt()适合.txt文件和.csv文件。但是它默认读取float类型的值。 1.np.loadtxt()读取txt文件 1-1 基础参数 numpy.loadtxt(fname, dtype, comments#, delimiterNone, convertersNone, skiprows0, usecol…

uniapp获取支付宝user_id - 支付宝提现 - 登录授权 - APP支付宝登陆 - H5支付宝授权

效果图 uniapp须知(无奈之处) uniapp绑定支付宝user_id提现 - 方法对比: ==== 不同接口 ==== 【APP支付宝登录】 https://opendocs.alipay.com/open/218/105325 【网站支付宝登录】

PMP证书有什么用?

有没有用看你的考证目的&#xff0c;总的来说就是敲门砖的作用&#xff0c;项目招聘、应聘项目经理都需要pmp 证书。⭕但是事在人为&#xff0c;祈祷考完 PMP 就能升职加薪走上人生巅峰的想法&#xff0c;一纸证书是做不到的。PS&#xff1a;身边有考了 PMP 之后跳槽薪资涨幅 3…

阳康后身体还是不舒服怎么办?

很多年轻朋友阳康后恢复的还可以&#xff0c;逐渐回到以前的身体状态&#xff0c;但是家里老人体质偏弱&#xff0c;恢复情况就没那么乐观了。有些还一直伴随着没有嗅觉、疲惫、咳嗽等后遗症。要让老人快速恢复健康&#xff0c;生病后一定要注意这几点&#xff1a;每天保证7-8小…

测试开发中的虫剂悖论

测试开发中的虫剂悖论 1 初识虫剂悖论 提到 虫剂悖论(pesticide paradox)&#xff0c;我相信很多人都没听说的&#xff0c;除非是生物学专业的同学或者老师。 虫剂悖论描述的是重复使用某种农药杀灭害虫&#xff0c;时间越久&#xff0c;杀虫的效果就越差。 之所以这样&#xf…

压阻式(压)力传感器-个人笔记

这是个人笔记 最终要求&#xff0c;单个的压阻式压力传感器、阵列之后的压力传感器、三维力传感器 关键词&#xff1a;力传感器&#xff0c;压力传感器&#xff0c;多轴力传感器&#xff0c;应变式传感器&#xff0c;应变式力传感器&#xff0c;电阻应变式传感器&#xff0c;f…

除 svn、Testlink 外,还有哪些不错的测试用例管理工具?

类似TestLink的 9 大测试用例管理平台&#xff1a;1、PingCode&#xff1b;2、TestRail&#xff1b;3、Xray&#xff1b;4、Jira&#xff1b;5、PractiTest&#xff1b;6、PractiTest&#xff1b;7. Zephyr Enterprise&#xff1b;8、MeterSphere&#xff1b;9、Bugzilla。一、…

【Flink】浅谈Flink架构和调度

【Flink】浅谈Flink架构和调度 Flink架构 Flink 是一个分布式系统&#xff0c;需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器&#xff0c;例如【Hadoop YARN】、【Apache Mesos】和【Kubernetes】&#xff0c;但也可以设置作为独立集群甚…

Ethercat系列(2)PDO动态映射设置过程

过程数据对象PDOPDO一般用于实时数据更新&#xff1b;其分为接收PDO&#xff08;RxPDO&#xff09;和发送PDO&#xff08;TxPDO&#xff09;&#xff0c;前者的数据流方向是主站到从站&#xff0c;TxPDO是从站到主站。PDO功能支持同步周期的刷新方式&#xff0c;也支持非周期性…

解决nacos2.1版本连接mysql8.x版本异常的问题

在测试环境部署nacos集群的时候使用的是mysql5.7版本&#xff0c;部署没有什么异常。但是在生产环境中我们使用的是mysql8.x版本&#xff0c;在启动nacos的时候各种报错。在网上看了很多解决办法花了挺长时间去排错也没有处理好问题网上最常见的两种方式修改pom文件&#xff1a…

代码随想录算法训练营第五十一天|309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

动态规划 一、309.最佳买卖股票时机含冷冻期 题目&#xff1a; 给定一个整数数组&#xff0c;其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#x…

前端经典面试500题【上】

一阶段面试题集锦 1、 rem em vw vw 百分比区别 相同点&#xff1a; rem&#xff0c;em&#xff0c;vw&#xff0c;vh&#xff0c;vw属于前端开发除了px单位之外的另外几种单位取值&#xff1b;但是具体含义存在区别 不同点&#xff1a; px&#xff1a;是像素单位&#xff0c…

Databend 开源周报 第 78 期

Databend 是一款强大的云数仓。专为弹性和高效设计。自由且开源。 即刻体验云服务&#xff1a;https://app.databend.com 。 What’s New 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Features & Improvements SQL 消除多余的 group by 标量 …

Docker查看正在运行的容器目录

起因 为了方便操作服务器&#xff0c;大部分都是使用宝塔面板操作的&#xff0c;在宝塔中我发现面板中用来管理Docker的工具使用起来非常方便&#xff0c;如下图&#xff1a; 可以看到宝塔的面板可以直接查看和从操作容器、Compose 、Compose 模板、镜像、网络、存储卷、仓库等…

2022年度总结:拒绝无效努力,实现破圈成长。

在从毕业一直到现在&#xff0c;我都会写一篇关于自己的从技术、商业、人情世故以及未来展望的博文&#xff0c;以至于归纳每个时期的自己&#xff0c; 走在互联网开发的边缘&#xff0c;不得不抽出时间鞭策自己学习新知识&#xff0c;未知的知识是 充满好奇的&#xff0c; 就好…

Centos 7 内核升级

参考 https://www.cnblogs.com/zengkefu/p/5667145.html 一、ELRepo 关于内核种类: kernel-ml 中的ml是英文【 mainline stable 】的缩写&#xff0c;elrepo-kernel中罗列出来的是最新的稳定主线版本。 kernel-lt 中的lt是英文【 long term support 】的缩写&#xff0c;elre…

分布式理论之体系结构

写在前面 分布式的体系结构目前有两种&#xff0c;第一种是集中式架构&#xff0c;也就是我们最常见到的master-slave架构&#xff0c;第二种是非集中式架构&#xff0c;也就是我们经常听到的去中心化架构&#xff0c;本文我们就一起来看下吧&#xff01; 1&#xff1a;集中式…

Android开发技术——车机技术之WMS学习

/ 窗口管理 / 窗口管理核心类介绍 窗口管理使用到的 DisplayContent&#xff0c;WindowToken 和 WindowState。 DisplayContent 用来管理一个逻辑屏上的所有窗口&#xff0c;有几个屏幕就会有几个 DisplayContent。使用 displayId 来区分。 处于不同 DisplayContent 的两个…

免费好用的IPv6之远程管理路由器-OpenWrt上uhttpd的TLS(HTTPS)部署流程介绍

在免费好用的IPv6之远程管理路由器-OpenWrt上uhttpd的使用介绍_123-wqy的博客-CSDN博客_openwrt uhttpd这篇文章的最后&#xff0c;我们已经可以使用80、443端口从路由器内外网的IPv6地址对路由器的WEB界面进行访问。但是&#xff0c;考虑外网访问场景下的安全性问题&#xff0…