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

AWS SSM按标签筛选调用DescribeParameters报ValidationException错误

问题对应报错

errorMessage: "An error occurred (ValidationException) when calling the DescribeParameters operation: An error occurred while calling one AWS dependency service."

错误根因

这个报错是三个高频问题导致的:

  • 标签筛选的API参数结构缺失必填字段:使用tag:前缀作为筛选键调用DescribeParameters时,必须显式指定Option匹配规则,仅传Key和Values时,后端调用标签依赖服务做校验会直接抛出依赖服务异常,不会返回常规的参数格式错误。
  • Lambda执行角色权限缺失:按标签筛选SSM参数时,后端会调用资源标签服务做匹配,执行角色除了ssm:DescribeParameters权限外,还需要tag:GetResources权限,缺权限时同样会触发依赖服务调用失败的报错。
  • 次要触发场景:boto3客户端初始化时未指定正确区域,跨区域调用时后端依赖路由失败也会返回同类错误。
修复方案

首先修正API调用参数,补全必填的Option字段,同时建议将SSM客户端初始化移到handler内部,避免Lambda热启动时出现临时凭证过期问题:

import json
import boto3

def lambda_handler(event, context):
    ssm_client = boto3.client('ssm')
    print("Fetch group A ssm parameter: ")
    
    leg_one_parameter = ssm_client.describe_parameters(
        ParameterFilters=[
            {
                "Key": "tag:group",
                "Option": "Equals",
                "Values": ["A"]
            }
        ]
    )['Parameters']
    
    parameter_name = [param['Name'] for param in leg_one_parameter]
    return parameter_name

如果账号下对应区域的SSM参数数量超过50个,需要额外处理分页逻辑,通过接口返回的NextToken参数循环拉取全量结果,避免漏数。

其次给Lambda执行角色补全所需IAM权限,最小权限参考配置如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ssm:DescribeParameters",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "tag:GetResources",
            "Resource": "*"
        }
    ]
}

如果需要做权限收敛,可以在tag:GetResources的语句里加Condition限制,仅允许访问对应标签的SSM参数资源。


内容的提问来源于stack exchange,提问作者Y.musa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:36:26