当我尝试使用 AWS Backup 执行 Amazon Elastic File System(Amazon EFS)时,出现“权限不足,无法执行此操作”或“访问被拒绝”错误。
简短描述
要使用 AWS Backup 恢复 Amazon EFS 恢复点,您必须具有以下权限:
- 创建恢复任务的 AWS Identity and Access Management(IAM)身份必须具有 backup:StartRestoreJob 权限。
- 用于恢复的 IAM 角色必须具有 EFS 权限。
- 您可能正在将 EFS 恢复到启用加密的新文件系统。在这种情况下,恢复请求中传递的 IAM 角色必须具有 AWS Key Management Service(AWS KMS)权限。
解决方法
要解决“权限不足,无法执行此操作”或“访问被拒绝”错误,请执行以下步骤:
1.确认创建恢复任务的 IAM 身份具有 backup:StartRestoreJob AWS Backup 操作。必须通过附加的 IAM 策略来允许此权限。
2.确认恢复请求中传递的 IAM 角色已允许通过附加的 IAM 策略执行以下 EFS 操作。
EFS 操作:
"elasticfilesystem:Restore"
"elasticfilesystem:CreateFilesystem"
"elasticfilesystem:DescribeFilesystems"
"elasticfilesystem:DeleteFilesystem"
3. 如果您要恢复到启用加密功能的新文件系统,请确认 IAM 角色还具有以下 AWS KMS 权限。必须在 AWS KMS 密钥策略中允许这些权限,或者通过附加的 IAM 策略允许这些权限。
AWS KMS 操作:
"kms:DescribeKey"
"kms:GenerateDataKeyWithoutPlaintext"
"kms:CreateGrant"
4. 确认保管库访问策略中没有明确拒绝 backup:StartRestoreJob 操作。例如,默认 EFS 保管库 aws/efs/automatic-backup-vault 在创建时会收到以下访问策略,这会拒绝 backup:StartRestoreJob 操作。
{
"Version": "2012-10-17",
"Statement": \[{
"Effect": "Deny",
"Principal": {
"AWS": "\*"
},
"Action": \[
"backup:DeleteBackupVault",
"backup:DeleteBackupVaultAccessPolicy",
"backup:DeleteRecoveryPoint",
"backup:StartCopyJob",
"backup:StartRestoreJob", <--- This action restricts restore
"backup:UpdateRecoveryPointLifecycle"
\],
"Resource": "\*"
}\]
}
5. 验证 IAM 策略和 AWS 组织 SCP 中是否存在拒绝所需 Backup、EFS 和 AWS KMS 操作的拒绝语句。
注意:
- 您可以将 EFS 恢复到新的文件系统或现有文件系统。您可以执行完全恢复,这会恢复整个文件系统。或者,您可以执行针对某一项目的恢复,这会恢复特定的文件和目录。无论采用哪种方式,AWS Backup 都会将恢复点恢复到恢复目录 aws-backup-restore_timestamp-of-restore。
- 恢复完成后,您可以在文件系统的根目录下看到恢复目录。如果恢复无法完成,那么您可以看到 aws-backup-failed-restore_timestamp-of-restore 目录。
- 无法恢复到恢复目录的数据片段放在 aws-backup-lost+found 目录中。如果在备份过程中对文件系统进行了修改,则可能会将片段移至此目录。
- 执行项目级恢复时,必须指定与挂载点相关的相对路径。例如,如果文件系统挂载到 /user/home/myname/efs,并且文件路径为 user/home/myname/efs/file1,则输入 /file1。路径区分大小写,不能包含特殊字符、通配符或正则表达式(regex)字符串。