Lambda调用StartBackupJob遇AccessDeniedException权限问题排查
问题分析与解决建议
问题背景
通过Lambda函数调用AWS Backup的StartBackupJob接口时,返回权限错误:
An error occurred (AccessDeniedException) when calling the StartBackupJob operation: Insufficient privileges to perform this action.
已确认:调用请求参数正确,且使用的角色在控制台手动操作时可正常创建备份;Lambda函数角色已配置包含backup:*等权限的策略。
可能的原因及解决办法
- Lambda角色的信任策略未授权Backup服务扮演该角色
StartBackupJob操作需要AWS Backup服务能够扮演你的Lambda角色,去访问目标备份资源(如EC2、RDS、S3等)。如果角色的信任策略仅允许Lambda服务访问,就会导致Backup服务无法获取权限执行备份。
检查并更新角色的信任策略,确保包含backup.amazonaws.com作为可信主体:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com", "backup.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
- 缺少目标备份资源的访问权限
StartBackupJob不仅需要Backup相关权限,还需要访问被备份资源的权限。例如:
- 备份EC2实例:需要
ec2:CreateSnapshot、ec2:DescribeVolumes等权限 - 备份RDS数据库:需要
rds:DescribeDBInstances、rds:CreateDBSnapshot等权限 - 备份S3桶:需要
s3:GetBucketLocation、s3:ListBucket等权限
当前的角色策略仅包含Backup相关操作权限,需根据你要备份的资源类型,添加对应的资源访问权限到策略中。
- 权限生效延迟
如果刚修改完角色策略,IAM权限可能需要1-5分钟才能全局生效,可等待几分钟后重新触发Lambda测试。
验证步骤
- 确认角色信任策略包含
backup.amazonaws.com - 添加目标资源对应的访问权限到Lambda角色策略
- 重新执行Lambda函数,检查是否仍报错
内容的提问来源于stack exchange,提问作者parnik
相关产品推荐
相关产品推荐

