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

如何在Amplify的amplify.yaml中使用AWS Systems Manager存储的密钥

解决AWS Amplify从SSM参数存储读取密钥为空的问题

先检查SSM参数的基础配置

  • 确认参数路径完全匹配:你的参数是/amplify/abcdefgh1234/dev/MY_PARAM,要核对Amplify应用ID确实是abcdefgh1234,环境是dev,参数名MY_PARAM的拼写、大小写完全一致。
  • 给Amplify服务角色加权限:Amplify需要ssm:GetParameter权限才能读取该参数。找到Amplify应用对应的IAM角色,添加一条内联策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:GetParameter",
            "Resource": "arn:aws:ssm:你的AWS区域:你的账号ID:parameter/amplify/abcdefgh1234/dev/MY_PARAM"
        }
    ]
}

修正Amplify环境变量配置

在Amplify控制台的应用「环境设置」-「环境变量」里,添加变量时:

  • 变量名设为MY_PARAM(和你要在yaml里引用的名称一致)
  • 变量值直接填SSM参数的完整路径/amplify/abcdefgh1234/dev/MY_PARAM,不需要加任何额外前缀。

正确在amplify.yaml中引用

不要用${secrets.MY_PARAM},改用${env.MY_PARAM}来引用。Amplify会自动识别环境变量值是SSM参数路径,在构建时拉取实际的密钥值。示例:

version: 1
frontend:
  phases:
    preBuild:
      commands:
        # 验证参数是否正确读取
        - echo "读取到的参数值: ${env.MY_PARAM}"
        # 可将参数注入项目配置,比如写入.env文件
        - echo "MY_PARAM=${env.MY_PARAM}" > .env

最后验证步骤

  1. 保存环境变量后,手动触发一次新的构建,确保配置生效。
  2. 查看构建日志,搜索MY_PARAM相关内容,确认是否有参数拉取记录,或者是否有权限报错(若有,优先检查IAM权限)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:06:24