使用Lambda调用AWS Backup StartCopyJob时权限不足问题求助
问题
尝试通过Lambda函数将RDS快照从一个区域的备份vault复制到另一个区域的备份vault时,调用StartCopyJob操作出现以下错误:
An error occurred (AccessDeniedException) when calling the StartCopyJob operation: Insufficient privileges to perform this action
Lambda函数调用代码如下:
result = conn.start_copy_job( RecoveryPointArn='my-arn', SourceBackupVaultName='my-vault', DestinationBackupVaultArn='my-dest-vault-arn', IamRoleArn='AWSBackupDefaultServiceRole' )
当前Lambda角色配置的权限如下:
All resources Allow: backup:* Allow: backup:CopyFromBackupVault arn:aws:backup:*:*:backup-vault:* Allow: backup:DescribeBackupVault Allow: backup:CopyIntoBackupVault
请问遗漏了哪些权限?
解决方案
补充
backup:StartCopyJob权限
尽管你配置了backup:*,但如果存在权限边界或其他策略冲突,需明确允许backup:StartCopyJob操作。建议将该权限添加到Lambda角色的策略中,资源范围可指定为对应恢复点ARN和目标备份vault ARN,或使用*覆盖所有资源。配置目标区域备份vault的访问策略
跨区域复制时,目标备份vault默认拒绝外部区域的复制请求。需给目标vault添加访问策略,允许源区域的Lambda角色或AWSBackupDefaultServiceRole执行backup:CopyIntoBackupVault操作。示例策略:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::源账户ID:role/你的Lambda角色名称" }, "Action": "backup:CopyIntoBackupVault", "Resource": "*" } ] }检查
AWSBackupDefaultServiceRole的跨区域权限
你指定的AWSBackupDefaultServiceRole需要同时拥有源区域读取恢复点、目标区域写入备份vault的权限。确保该角色具备:- 源区域:
backup:DescribeRecoveryPoint、backup:CopyFromBackupVault - 目标区域:
backup:CopyIntoBackupVault - 若为原生RDS快照(非Backup服务管理),还需
rds:DescribeDBSnapshots、rds:CopyDBSnapshot权限
- 源区域:
内容的提问来源于stack exchange,提问作者NewGuy
相关产品推荐
相关产品推荐

