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

AWS CLI调用get-parameter在GitHub Runner中获取旧版本参数问题

AWS Parameter Store 本地与GitHub Runner版本不一致问题排查方案

以下是针对该问题的排查和解决技巧:

  • 核对AWS身份与区域

    1. 确认GitHub Runner使用的AWS凭证所属账户,必须和本地操作的是同一个AWS账户。跨账户访问时,可能看到的是另一个账户中同名参数的旧版本。
    2. 检查Runner的AWS区域配置,确保和创建参数的区域完全一致。可以在Runner中执行aws configure get region查看当前区域,或者直接在命令中显式指定区域测试:
      aws ssm get-parameter --with-decryption --name "/my/secret/path" --region us-east-1 --output text --query Parameter.Version
      
  • 检查IAM权限与策略限制

    1. 验证Runner使用的IAM角色/用户是否具备访问SSM参数所有版本的权限。如果IAM policy中添加了ssm:Version等于1的条件限制,就会导致只能获取版本1。示例错误策略:
      {
        "Effect": "Allow",
        "Action": "ssm:GetParameter",
        "Resource": "arn:aws:ssm:us-east-1:123456789012:parameter/my/secret/path",
        "Condition": {"StringEquals": {"ssm:Version": "1"}}
      }
      
      需移除该条件或调整为允许访问所需版本。
    2. 检查参数的资源策略(如果配置了),确认没有阻止Runner身份访问新版本参数。
  • 修正CLI命令格式
    官方推荐通过--version参数指定版本,而非在名称后追加:4。尝试在Runner中执行以下命令测试:

    aws ssm get-parameter --with-decryption --name "/my/secret/path" --version 4 --output text --query Parameter.Value
    

    避免因格式解析差异导致的版本识别失败。

  • 排查缓存与配置问题

    1. 在Runner中清理AWS CLI缓存,执行rm -rf ~/.aws/cache后重新测试命令。
    2. 检查Runner环境中是否存在自定义SSM端点的环境变量(如AWS_SSM_PARAMETER_STORE_ENDPOINT),这类变量会导致请求指向非官方服务,返回旧数据。
  • 验证参数存在性与网络连通性
    在Runner中执行参数查询命令,确认返回的参数元数据是否和本地一致:

    aws ssm describe-parameters --parameter-filters "Key=Name,Values=/my/secret/path" --query "Parameters[*].{Name:Name,Version:Version}"
    

    如果返回的版本和本地不符,说明Runner访问的是不同的参数资源;如果命令执行超时或报错,需排查网络代理、防火墙对SSM服务的访问限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 13:41:00