如何解决使用 AWS Backup 执行 Amazon EFS 恢复时出现的“权限不足,无法执行此操作”错误?

1 分钟阅读
0

当我尝试使用 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)字符串。
AWS 官方
AWS 官方已更新 1 年前