AWS CLI列出AWS Backup保管库恢复点遇权限不足错误
故障排查与解决步骤
权限缺失项梳理
仅配置backup:ListRecoveryPointsByBackupVault单权限无法通过接口校验,需逐项核对以下3类权限配置:
- IAM动作的资源范围匹配:确保已配置的
backup:ListRecoveryPointsByBackupVault权限没有错配资源范围,必须覆盖你要查询的目标备份保管库ARN,不能仅限定其他保管库、或资源范围通配符和实际保管库不匹配。 - KMS加密密钥访问权限:若目标备份保管库使用客户自管理KMS密钥加密,当前身份需被对应KMS密钥策略授予
kms:Decrypt、kms:GenerateDataKey权限,否则AWS会将KMS权限不足的错误统一包装为Backup操作的AccessDeniedException返回。 - 保管库资源策略放行:部分AWS默认托管的备份保管库会自带资源访问规则,若策略中存在拒绝当前身份访问的配置,即使IAM权限配置完整也会被拦截,需检查目标保管库的资源策略,确认无针对当前身份的拒绝规则。
脚本问题修正
你当前脚本存在两个容易触发权限报错的隐性问题:
- 变量转义错误:错误写法
--backup-vault-name "$\{VAULT_NAME\}"会让Shell把变量解析为固定字符串${VAULT_NAME},实际请求时会查找一个名为${VAULT_NAME}的不存在保管库,触发权限校验失败,正确写法为--backup-vault-name "$VAULT_NAME"。 - 遗漏区域参数:脚本开头已经定义了当前配置的区域变量
CURRENTregion,但调用AWS CLI命令时没有带上--region "$CURRENTregion"参数,如果本地配置的默认区域和备份保管库实际所在区域不一致,请求会打到错误区域的Backup服务,找不到对应保管库进而触发权限类报错。
快速验证方法
绕过脚本直接在命令行执行带明确参数的命令,定位问题来源:
# 替换为你实际的保管库名、区域 aws backup list-recovery-points-by-backup-vault --backup-vault-name 实际保管库名 --query 'RecoveryPoints[*].RecoveryPointArn' --output text
- 若命令行直接传参可正常返回结果,说明是脚本配置问题,修正变量写法、补全区域参数即可。
- 若命令行直接传参仍报权限错,按前面列的权限清单逐一对标核查即可。
内容的提问来源于stack exchange,提问作者NetSystemAdmin
相关产品推荐
相关产品推荐

