我想知道为什么我的恢复点过期了,我如何在 AWS Backup 中删除过期的恢复点。
解决方法
AWS Backup 将恢复点保存在备份保管库中,具有以下状态:
- **已完成:**此状态指示备份任务在保管库中成功创建了恢复点。
- **已过期:**此状态指示恢复点已超过保留期,但 AWS Backup 生命周期规则无法删除该恢复点。
为什么恢复点过期
在生命周期运行期间,创建恢复点的原始 AWS Identity and Access Management(IAM)角色被删除。或者,IAM 角色缺少删除恢复点的权限。
生命周期会尝试删除恢复点。如果此操作失败,不会再重试。这意味着您必须手动删除过期的恢复点。
使用控制台删除过期的恢复点
要使用控制台手动删除过期的恢复点,请完成以下步骤:
- 打开 AWS Backup 控制台。
- 在导航窗格中,选择备份保管库。
- 对于状态,选择已过期。
- 选择所有过期的恢复点。
- 选择操作,然后选择删除。
使用 AWS CLI 删除过期的恢复点
**注意:**运行 AWS 命令行界面(AWS CLI)命令时,请确保您使用的是最新的 AWS CLI 版本。
要使用 AWS CLI 手动删除保管库中的单个恢复点,请运行以下示例命令:
aws backup delete-recovery-point --backup-vault-name <value> --recovery-point-arn <value>
要使用 AWS CLI 手动删除保管库中的多个恢复点,请首先运行 list-recovery-points-by-backup-vault 命令来列出恢复点:
$ aws backup list-recovery-points-by-backup-vault --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]'
然后,运行以下串联命令(包括 delete-recovery-point)删除恢复点:
$ aws backup list-recovery-points-by-backup-vault --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]' | xargs --verbose -L1 aws backup delete-recovery-point --backup-vault-name VAULT_NAME --region REGION_ID
如何防止新恢复点进入过期状态
为防止新恢复点过期,您必须首先找到用于创建恢复点的确切 IAM 角色。然后,您必须使用正确的权限更新 IAM 角色来删除恢复点。
如果 IAM 角色已不存在,您必须先创建一个具有相同名称的新 IAM 角色。然后,您必须向角色添加权限来删除备份。
将以下托管策略附加到您的 IAM 角色来删除恢复点:
如果您使用的是 Amazon Simple Storage Service(Amazon S3)备份,请将以下必需的其他策略附加到您的 IAM 角色:
相关信息
使用服务关联的角色