AWS ECS引用Systems Manager参数失败,请求技术排查
问题解决:ECS任务定义引用SSM参数时的参数名称无效错误
问题根源
ECS任务定义的secrets字段引用AWS Systems Manager参数存储时,仅支持使用参数的完整ARN,不支持aws:ssm:<region>:<account-id>:parameter/<parameter-name>这种短格式写法。你当前使用了短格式,导致ECS无法正确解析参数名称,从而抛出“参数名称无效”的客户端验证错误。
解决方案
将任务定义中valueFrom的值替换为SSM参数的完整ARN。以你的参数为例:
"secrets": [ { "name": "DB_HOST", "valueFrom": "arn:aws:ssm:eu-west-1:1234567890:parameter/dev/db/host" }, ... ]
额外验证项
- 确认ARN中的区域(
eu-west-1)、账号ID(1234567890)与你的SSM参数实际信息完全匹配 - 检查ECS任务执行角色的IAM策略,确保
Resource字段包含该SSM参数的ARN(或使用*允许所有参数):{ "Effect": "Allow", "Action": [ "ssm:GetParameter", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:eu-west-1:1234567890:parameter/dev/db/host", // 其他需要的资源ARN "*" // 或直接使用通配符(按需选择) ] } - 确认SSM参数名称
/dev/db/host确实存在于指定区域的参数存储中
内容的提问来源于stack exchange,提问作者ons
相关产品推荐
相关产品推荐

