Hyper Backup 备份到 Amazon S3 权限不够报错:IAM 策略清单与可直接套用的写法

痛点场景

用 Hyper Backup 把 NAS 数据备到 Amazon S3,任务一创建就报权限错误:有人是列不出 Bucket,有人是备份跑到一半断掉。常见原因是在云侧给 Access Key 挂了个"只读"或者随手勾的权限组——Hyper Backup 建任务时既要枚举你账户下的所有 Bucket,又要对目标 Bucket 及其中的对象做上传、删除、ACL 管理、分段上传这一整套操作,缺任何一环都会翻车。

权限清单:分三组记

按作用对象分三组,对着勾选就不会漏:

Bucket 层面(作用在 Bucket 本身):

  • s3:ListBucket:列出 Bucket 内对象
  • s3:GetBucketLocation:获取 Bucket 所在区域
  • s3:ListBucketMultipartUploads:列出进行中的分段上传

对象层面(作用在 Bucket 里的文件):上传(PutObject)、下载读取(GetObject)、删除(DeleteObject / DeleteObjectVersion)、查看与设置 ACL(GetObjectAcl / PutObjectAcl 及版本变体)、中止分段上传(AbortMultipartUpload),以及对应的版本读取权限(GetObjectVersion / GetObjectVersionAcl)。

全局层面s3:ListAllMyBuckets——Hyper Backup 靠它列出账户下所有 Bucket,很多"创建任务时看不到桶"的问题就卡在这条没给。

直接套用的策略写法

先在 S3 Bucket 的属性页里复制它的 Amazon Resource Name(ARN),然后到 IAM 的策略 JSON 编辑器里粘贴下面模板,把"您的 ARN"替换成实际值(对象那段记得在 ARN 后加 /*),挂到 Hyper Backup 使用的那个用户或角色上:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": ["您的 ARN"]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": ["您的 ARN/*"]
        },
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "*"
        }
    ]
}

三段分别对应上面的三组权限,Resource 一段是 Bucket 本身、一段是桶内所有对象、一段不限资源,结构非常清晰。

常见踩坑点

除了权限缺失,还有两个高频坑值得单独点名:一是区域选错,Hyper Backup 里选的区域必须与 Bucket 实际所在区域一致(s3:GetBucketLocation 这条权限就是用来帮你取真实区域的),对不上会直接连不通;二是只给读写、漏了分段上传,Hyper Backup 传大文件走分段上传机制,缺了 AbortMultipartUploads3:ListBucketMultipartUploads,小文件测试一切正常,大文件一传就断,这种"半好半坏"的故障最迷惑人。照着上面的三段式模板配,这两类问题都能避开。

验证方法

策略挂好后回到 Hyper Backup 重新创建任务:能列出账户下的 Bucket、能选中目标桶并完成首次备份,说明权限链路通了。首次备份建议挑一个含大文件的共享文件夹,专门验证分段上传不被打断;备份完成后做一次小规模还原测试,把读权限也一并验证,读写两条腿都稳了才算数。

预防:最小权限 + 专用身份

给 Hyper Backup 单独建一个 IAM 用户(或角色)专用,只挂这条策略,不给管理员全权——既满足最小权限原则,也避免日后审计时说不清哪个密钥在动哪些桶。密钥妥善保管、定期轮换;换新密钥时在 Hyper Backup 任务编辑里更新即可,历史版本不受影响。


如果贵单位正在评估群晖企业级 NAS 的选型、部署或迁移,欢迎参考群晖企业级 NAS 产品,或与我们联系,我们可以结合政企、医疗、学校场景给出落地建议。