如何设置对 view/restore AWS S3 对象版本历史的权限

How to set permissions to view/restore AWS S3 object version history

我似乎无法弄清楚我必须向我的策略添加哪些权限才能允许 IAM 用户访问 view/download 以前版本的对象。

目前,我的策略包含以下权限。登录 AWS 控制台网站后,用户确实可以看到存储桶中所有对象的先前版本的完整历史记录:

    "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:GetBucketVersioning",
        "s3:ListBucketVersions",
        "s3:GetObjectTagging",
        "s3:PutObjectTagging"]

但是,当单击其中一个对象查看以前的版本时,打开或下载文件失败,并显示“拒绝访问”错误。

我也找到了这个API call,但它也只要求设置“s3:ListBucketVersions”权限,就是这样。

除最新版本外,还需要为以前的版本执行“获取”或“放置”什么?

这是我正在使用的政策。您需要对象的 GetObject、GetObjectVersion(以及 Put 操作)和存储桶的 ListBucket、ListBucketVersion。

    - PolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Action:
              - s3:GetObject
              - s3:GetObjectVersion
            Effect: 'Allow'
            Resource:
              - !Sub ${ResourcesBucket.Arn}/*
          - Action:
              - s3:ListBucket
              - s3:ListBucketVersions
            Effect: 'Allow'
            Resource:
              - !GetAtt ResourcesBucket.Arn