如何配置IAM策略,让用户仅访问自身创建的Glacier保管库
符合需求的Glacier IAM策略方案
我帮你梳理了一个完全匹配需求的IAM策略,允许用户创建Glacier保管库,并且仅对自己创建的保管库拥有除删除外的大部分权限,具体如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "glacier:CreateVault", "Resource": "arn:aws:glacier:*:${aws:accountId}:vaults/*" }, { "Effect": "Allow", "Action": [ "glacier:UploadArchive", "glacier:InitiateJob", "glacier:GetJobOutput", "glacier:DescribeVault", "glacier:ListJobs", "glacier:ListMultipartUploads", "glacier:InitiateMultipartUpload", "glacier:UploadMultipartPart", "glacier:CompleteMultipartUpload", "glacier:AbortMultipartUpload", "glacier:ListVaults", "glacier:GetVaultAccessPolicy", "glacier:AddTagsToVault", "glacier:RemoveTagsFromVault" ], "Resource": "arn:aws:glacier:*:${aws:accountId}:vaults/*", "Condition": { "StringEquals": { "aws:ResourceOwner": "${aws:userid}" } } }, { "Effect": "Deny", "Action": [ "glacier:DeleteVault", "glacier:DeleteArchive" ], "Resource": "arn:aws:glacier:*:${aws:accountId}:vaults/*", "Condition": { "StringEquals": { "aws:ResourceOwner": "${aws:userid}" } } } ] }
策略各部分说明:
- 创建保管库权限:第一部分语句允许用户在你的AWS账号下创建任意名称的Glacier保管库,限定资源范围避免越权。
- 自创建保管库的操作权限:第二部分通过
aws:ResourceOwner条件,确保用户只能对自己创建的保管库执行操作,涵盖了上传归档、发起检索任务、管理分片上传、查看保管库信息、标签管理等核心功能,完全满足Synology备份的需求。 - 禁止删除权限:第三部分明确拒绝删除保管库和归档的操作,即使有其他策略授予了删除权限,这部分的Deny会优先生效,彻底杜绝误删风险。
可选调整:
- 如果你不需要用户修改保管库的标签,可以移除
glacier:AddTagsToVault和glacier:RemoveTagsFromVault操作; - 若不允许用户查看保管库的访问策略,可删除
glacier:GetVaultAccessPolicy; - 如果需要限制用户只能在特定区域创建保管库,把资源ARN里的
*替换成具体区域(比如us-east-1)即可。
内容的提问来源于stack exchange,提问作者JoelAZ
相关产品推荐
相关产品推荐

