我目前有一个使用node sdk调用listObjectVersions的lambda函数,以列出特定文件的所有版本。然而,我无法确定我的策略中哪个权限将授予lambda函数执行此调用的权限。我已经在AWS文档中搜索过,但找不到任何信息。
这是我策略中的当前权限:
- PolicyName: S3Policy
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Action:
- s3:PutObject
- s3:PutObjectAcl
- s3:GetObject
- s3:GetObjectVersion
- s3:ListObjectVersions
- s3:DeleteObject
- s3:ListBucket
当我执行lambda时,进行调用时出现“访问被拒绝”的错误。我已经更改了我的策略来允许操作s3:*
,这使lambda函数可以工作。但是,我不想授予对整个s3的完全访问权限。
我需要添加哪个操作以获得许可?
listObjectVersions
命令,因为我没有正确的操作权限。我的存储桶中列出的资源都很好,我为了清晰起见从问题中删除了它们。当我更改策略以接受s3:*
操作时,它可以正常工作。这意味着有一种操作可以允许执行listObjectVersions
,但我不知道那个操作是什么。 - Gary Holidays3:GetObjectVersion
。以下是与版本控制相关的所有操作。 "s3:GetObjectVersionTagging", "s3:ListBucketVersions", "s3:GetObjectVersionTorrent", "s3:GetObjectVersionAcl", "s3:GetBucketVersioning", "s3:GetObjectVersionForReplication", "s3:GetObjectVersion"。我已经更新了我的答案。 - Abdullah KhawerAmazonS3ReadOnlyAccess
策略。 - Abdullah Khawer