跨项目恢复GKE集群备份遇403权限问题,求解决方案
GKE跨项目备份恢复403权限错误修复
问题背景
将源项目GKE集群的备份恢复至目标项目GKE集群时,执行恢复命令触发403权限错误:
Restore execution
Status Failed
Status reason googleapi: Error 403: Permission 'gkebackup.backups.execute' denied on 'projects/67114541833/locations/asia-south1/backupPlans/staging-cluster-backup-1/backups/stg-backup23', forbidden
当前已配置权限:为源、目标项目的GKE集群服务账号、GKE Backup服务账号均添加了Backup for GKE Admin、Backup for GKE Backup Admin、Kubernetes Engine Service Agent角色。
修复方案及所需额外权限
1. 赋予目标项目GKE Backup服务账号源项目备份执行权限
跨项目恢复操作中,**目标项目的GKE Backup服务账号(service-xxxxxx@gcp-sa-gkebackup.iam.gserviceaccount.com)**需要获得源项目备份资源的执行权限:
- 在源项目中,为该账号添加
gkebackup.backups.execute权限(或直接绑定Backup for GKE Restore Admin预定义角色,该角色已包含此权限)。
2. 配置GCS备份桶的跨项目访问权限
备份数据默认存储在源项目的GCS桶内,需确保目标项目的相关服务账号能读取桶内数据:
- 在源项目的GCS备份桶(命名格式通常为
gke-backup-<项目ID>-<区域>-<随机后缀>)上,为目标项目的GKE Backup服务账号和目标项目的GKE集群服务账号添加Storage Object Viewer角色。
3. 验证修复效果
完成权限配置后,重新执行恢复命令:
gcloud beta container backup-restore restores create RESTORE \ --project=PROJECT_ID \ --location=LOCATION \ --restore-plan=RESTORE_PLAN \ --backup=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
内容的提问来源于stack exchange,提问作者devops-admin
相关产品推荐
相关产品推荐

