Redshift Serverless跨账号快照恢复失败:无资源策略报错
解决Redshift跨账号共享快照恢复时的AccessDenied(资源策略未找到)问题
排查及修复步骤
检查账号A的快照共享权限配置
即使快照显示已共享,仍需确认账号A是否为账号B授予了明确的恢复权限:- 通过AWS CLI更新权限:
aws redshift modify-snapshot-access \ --snapshot-identifier 你的快照ID \ --account-with-restore-access 账号B-ID - 控制台操作:找到目标快照,进入「权限」标签页,确认账号B已被添加为可恢复账号,且权限状态为「已授权」。
- 通过AWS CLI更新权限:
验证账号B的IAM权限
确保执行恢复操作的IAM用户/角色拥有redshift:RestoreFromClusterSnapshot权限,且资源范围包含目标快照的ARN。示例策略片段:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:RestoreFromClusterSnapshot", "Resource": "arn:aws:redshift:区域ID:账号A-ID:snapshot:你的快照ID" } ] }确认快照共享状态与区域一致性
- 在账号A的快照控制台「共享」板块,检查账号B的权限状态是否正常,无报错或未生效情况。
- 确保账号B的恢复操作区域与快照所在区域完全一致,跨区域共享需额外配置快照复制权限(同区域可忽略)。
校验自定义资源策略的正确性
如果手动配置了快照资源策略(而非通过官方共享流程),检查策略语法是否合规。示例正确策略:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::账号B-ID:root" }, "Action": "redshift:RestoreFromClusterSnapshot", "Resource": "arn:aws:redshift:区域ID:账号A-ID:snapshot:你的快照ID" } ] }配置后可通过
aws redshift describe-snapshot-access --snapshot-identifier 你的快照ID验证策略是否生效。
内容的提问来源于stack exchange,提问作者Alexander Sweeney
相关产品推荐
相关产品推荐

