You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jets框架下Lambda访问RDS的安全加固方案咨询

Jets框架下Lambda访问RDS的安全优化方案

你的思路完全正确!关闭RDS公网访问、让Lambda加入RDS所在VPC、移除明文环境变量的连接串,这就是Jets框架下保障Lambda-RDS安全的最优方案,刚好能解决你提到的两个不安全实践。下面我一步步给你讲怎么用Jets实现:

一、先调整RDS实例的基础安全配置

  • 登录AWS控制台找到你的RDS实例,进入「连接性」设置,把「公有可访问性」改成「否」,这样RDS就只能在VPC内部被访问,彻底杜绝公网暴露的风险。
  • 同时记得检查RDS的安全组,要允许来自Lambda所在安全组的数据库端口(比如MySQL用3306、PostgreSQL用5432)的入站流量,不然Lambda在VPC里也连不上RDS。

二、通过Jets配置Lambda加入RDS所在VPC

在Jets项目的config/application.rb里添加VPC相关配置,指定RDS对应的VPC ID、私有子网ID和安全组:

Jets.application.configure do
  config.function.vpc_config = {
    security_group_ids: ["sg-xxxxxx"], # 替换成你给Lambda用的安全组ID(要和RDS安全组打通)
    subnet_ids: ["subnet-xxxxxx", "subnet-yyyyyy"] # 替换成RDS所在的私有子网ID,至少填两个保证高可用
  }
end

这样Jets在部署Lambda的时候,会自动把它放到你指定的VPC子网里,不用手动去AWS控制台调整。

三、用IAM数据库认证替代明文连接串

这一步是彻底去掉环境变量里的明文密码,改用AWS的IAM临时token认证,安全等级拉满:

  1. 先在AWS控制台给RDS实例开启IAM数据库认证:找到你的RDS实例→「修改」→「数据库认证」→勾选「启用IAM数据库认证」,保存修改。
  2. 给Lambda的执行角色添加连接RDS的权限,在Jets项目的config/iam_policy.json里添加以下权限规则:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "rds-db:connect",
      "Resource": "arn:aws:rds-db:你的AWS区域:你的账号ID:dbuser:你的RDS实例ID/你的数据库用户名"
    }
  ]
}
  1. 在你的Jets业务代码里,生成临时认证token来连接RDS,以Ruby操作MySQL为例:
require 'aws-sdk-rds'
require 'mysql2'

# 初始化RDS客户端
rds_client = Aws::RDS::Client.new(region: ENV['AWS_REGION'])
# 生成临时认证token
auth_token = rds_client.generate_db_auth_token(
  db_host: ENV['RDS_HOST'], # 这个环境变量可以保留,没有敏感信息
  db_port: 3306,
  db_username: '你的数据库用户名',
  region: ENV['AWS_REGION']
)

# 建立数据库连接
db_connection = Mysql2::Client.new(
  host: ENV['RDS_HOST'],
  port: 3306,
  username: '你的数据库用户名',
  password: auth_token,
  database: '你的数据库名',
  ssl_mode: 'required' # 必须开启SSL,保障数据传输安全
)

这个token是临时有效的,会自动刷新,完全不用存明文密码,从根源上避免了密码泄露的风险。

四、清理旧的不安全配置

  • 从Jets的环境变量配置文件(比如config/env/production.rb)里删掉包含明文密码的DATABASE_URL或者类似的变量。
  • 检查Lambda的执行角色,确保只保留必要的权限,遵循最小权限原则,不要给多余的权限。

内容的提问来源于stack exchange,提问作者curiouscat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:49:10