如何配置权限以查看、恢复AWS S3对象的版本历史
S3历史版本对象访问权限补充方案
你遇到的下载历史版本时报Access denied错误,是因为当前配置的权限仅覆盖了对象最新版本的读取能力,操作指定versionId的历史版本对象需要补充S3版本专属的IAM权限。
需要补充的Action配置
将以下权限添加到你的IAM策略Action数组中即可解决问题:
s3:GetObjectVersion:核心权限,用于读取、下载任意历史版本的对象内容s3:GetObjectVersionTagging:可选补充,用于读取历史版本对象的标签配置,匹配你现有策略里的标签相关权限需求- 若后续需要删除指定历史版本,可额外添加
s3:DeleteObjectVersion权限
补充后完整的Action配置参考:
"Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket", "s3:GetBucketVersioning", "s3:ListBucketVersions", "s3:GetObjectTagging", "s3:PutObjectTagging", "s3:GetObjectVersion", "s3:GetObjectVersionTagging" ]
额外说明
- 你之前查阅文档提到的
s3:ListBucketVersions仅用于列出版本列表权限,不包含具体版本对象的内容读取权限,因此需要单独补充上述权限 - S3历史版本对象为不可修改状态,所有写入操作都会自动生成新的版本,现有
s3:PutObject权限已经可以满足写入需求,不需要额外补充版本类写入权限 - 请确认策略中对象相关权限对应的资源规则为
arn:aws:s3:::<你的存储桶名称>/*,避免资源范围限制导致权限不生效
内容的提问来源于stack exchange,提问作者KingOtto
相关产品推荐
相关产品推荐

