如何在AWS Amplify项目中使用AWS Secrets Manager存储密钥
路径参数释义
- {your_app_id}:AWS Amplify应用的唯一标识符,可进入Amplify控制台打开对应应用详情页,从浏览器地址栏中路径
/d/后的字符串获取,示例值为d3xmple123abc。 - {your_backend_environment_name}:Amplify项目的后端环境名称,即你初始化Amplify项目时自定义的环境标识(常见如
dev、prod、test),也可在应用详情页的「环境」标签页直接查看所有已创建的环境名称,配置时大小写需完全匹配。
权限前置要求
配置密钥前需要先给Amplify默认服务角色授予Secrets Manager的读取权限,确保Amplify服务有权限拉取你存储的密钥内容。
配置完成后调用密钥的方法
- 构建脚本(amplify.yml)中使用:直接引用与
{your_parameter_name}同名的环境变量即可,比如你的参数最后一段命名为DB_PASSWORD,在构建命令中直接写$DB_PASSWORD即可调用,Amplify构建时会自动拉取对应密钥值。 - 前端代码中使用:若需要将密钥注入前端运行时,需在amplify.yml的build步骤中手动将值写入环境配置文件,示例(Vite项目):
build: commands: - echo "VITE_API_KEY=$CUSTOM_API_KEY" >> .env.production - npm run build
前端代码中直接读取对应环境变量即可:const apiKey = import.meta.env.VITE_API_KEY
注意:注入到前端的密钥会随打包代码暴露给客户端,禁止存储高敏感信息(如数据库密码)到前端环境。
- 后端Lambda函数中使用:Amplify会自动将匹配路径的密钥注入到Lambda运行时环境变量,代码中直接读取即可,示例:
const dbPwd = process.env.DB_PASSWORD,无需额外调用Secrets Manager SDK。
内容的提问来源于stack exchange,提问作者MJ X
相关产品推荐
相关产品推荐

