从AWS SSM获取参数的最小权限是多少?配置ssm:GetParameter报错如何解决?
AWS SSM参数存储权限不足问题解决方案
核心问题排查点
- 首先你贴出的报错策略中仅配置了
ssm:GetParameter单个操作,未包含你提到的ssm:GetParameters批量查询权限:
单次查询单个参数调用的是ssm:GetParameter接口,批量查询多个参数调用的是ssm:GetParameters接口,若业务代码中用到了批量查询接口,仅配置单个权限必然触发报错。
修正后的SSM权限配置如下:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["ssm:GetParameter", "ssm:GetParameters"], "Resource": "arn:aws:ssm:us-east-1:{redacted}:parameter/*" } ] } - 如果你存储的是SecureString加密类型的参数,还需要补充对应KMS密钥的解密权限:
SSM读取加密参数时需要调用KMS服务进行解密,该权限不属于SSM操作权限范畴,需单独添加:
若使用AWS默认托管的SSM加密密钥,直接将Resource替换为{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-east-1:{redacted}:key/{加密密钥ID}" }arn:aws:kms:us-east-1:{redacted}:key/aws/ssm即可。
其他可能的限制场景
- 检查该角色是否配置了权限边界,权限边界的限制优先级高于角色自身的权限策略,若边界未放开相关操作也会报错
- 若账号属于AWS组织架构,检查组织层面的服务控制策略(SCP)是否限制了SSM相关操作
- 确认你读取的参数所属区域、账号ID与ARN配置完全一致,跨区域/跨账号读取参数也会触发权限报错
内容的提问来源于stack exchange,提问作者TomBomb
相关产品推荐
相关产品推荐

