AWS 重命名权限

Posted

技术标签:

【中文标题】AWS 重命名权限【英文标题】:AWS Rename permissions 【发布时间】:2015-11-25 21:16:44 【问题描述】:

在 AWS 我有以下内容


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "AllowGroupToSeeBucketvideo",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::mybucket"
            ]
        ,
        
            "Sid": "AllowListingOfVideoBucket",
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::mybucket"
            ]
        ,
        
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::mybucket/*"
            ]
        
    ]

我也希望能够重命名对象,但是有了这些权限,重命名失败有人知道我缺少什么吗?

【问题讨论】:

【参考方案1】:

为了重命名,您需要将以下内容添加到您的允许操作中。

"s3:GetObjectVersion", "s3:DeleteObjectVersion", "s3:PutObjectAcl", "s3:GetObjectAcl"

【讨论】:

谢谢!在我的情况下,我缺少“s3:PutObjectAcl”。【参考方案2】:

我认为这些权限会有所帮助,我已经尝试过了!

"Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:GetObjectVersion",
            "s3:DeleteObject",
            "s3:DeleteObjectVersion",
            "s3:GetObjectAcl"
        ],
        "Effect": "Allow",
        "Resource": [
            "arn:aws:s3:::mx-provider-video-upload/9a9036/*"
        ]

【讨论】:

然后就不用担心ACL权限的WRITE_ACP了【参考方案3】:

我在这里提供了相同的答案 How do you allow granting public read access to objects uploaded to AWS S3?

我发现当 ListAllMyBuckets 未授予 all 时,从控制台执行某些操作(例如重命名对象)会失败(但会从 CLI 成功!) > s3 资源。将以下内容添加到 IAM 政策解决了该问题:

 
      "Sid": "AccessS3Console",
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Effect": "Allow",
      "Resource": "arn:aws:s3:::*"
    

我测试的一些操作在控制台失败但从 CLI 成功:

重命名对象。控制台显示“错误 - 无法将文件重命名为”。 解决方法:删除并使用新名称重新上传对象。 使用“授予对此对象的公共读取访问权限”上传对象。控制台的状态栏显示操作卡在“进行中”。 解决方法:在不授予公共读取权限的情况下上传对象,然后右键单击它并选择“公开”。

按照此处的说明操作后,我遇到了这些问题 https://aws.amazon.com/premiumsupport/knowledge-center/s3-console-access-certain-bucket/ 描述了如何限制对单个存储桶的访问(并防止查看帐户中存储桶的完整列表)。该帖子没有提及警告。

将用户的 Amazon S3 控制台访问限制为仅对特定存储桶或 文件夹(前缀),在用户的 AWS Identity 中更改以下内容并 访问管理 (IAM) 权限:

    删除对 s3:ListAllMyBuckets 操作的权限。 仅为您希望用户访问的存储桶或文件夹添加对 s3:ListBucket 的权限。 注意:要允许用户从存储桶或文件夹上传和下载对象,您还必须包括 s3:PutObject 和 s3:GetObject。

警告:更改这些权限后,用户将获得访问权限 他们访问主 Amazon S3 控制台时出现拒绝错误。用户 必须使用指向存储桶的直接控制台链接访问存储桶,或者 文件夹。

【讨论】:

【参考方案4】:

如果您的要求是授予对特定存储桶的访问权限,例如Sample 及其对象。这些权限将用于您的目的。


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "Stmt1448568376000",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::sample"
            ]
        
    ]

【讨论】:

我希望能够在我尝试的 AWS s3 中重命名一个文件,但它不接受并说它失败了【参考方案5】:

我遇到了完全相同的问题,我发现重命名 S3 对象所需的权限只有:

"s3:GetObjectACL",
"s3:PutObject",
"s3:PutObjectACL"

s3:DeleteObject 不是必需的,这非常危险,尤其是在 S3 存储桶上未启用版本控制的情况下。我测试了s3:DeleteObject 和没有它,它仍然有效。

【讨论】:

以上是关于AWS 重命名权限的主要内容,如果未能解决你的问题,请参考以下文章

是否可以重命名 AWS Lambda 函数?

Linux,上传文件、重命名、修改权限、切换用户

如何在AWS Linux中重命名wall命令?

如何以编程方式重命名 AWS Glue 目录中的列名

linux基础问题 创建目录 拷贝 重命名 设置权限

重命名使用 AWS cli 生成的用于 beanstalk 部署的战争