首页 文章

root用户被拒绝从s3存储桶下载

提问于
浏览
0

在使用我的root权限(访问密钥和密钥)配置后使用 s3cmd ,每当我尝试使用 syncget 从存储桶下载内容时,我都会收到这个奇怪的root帐户权限错误:

WARNING: Remote file  S3Error: 403 (Forbidden):

所有者是我使用IAM控制台创建的另一个用户,但我是否正确期望root用户应始终获得完全且不受限制的访问权限?同样使用 aws -cli我得到一个未知错误

A client error (Unknown) occurred when calling the GetObject operation: Unknown

此外,我认为我必须添加一个存储桶策略以允许root访问(听起来很奇怪),因为我使用此策略添加了匿名访问的第一步

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::myBucket/*"
            ]
        }
    ]
}

但仍然是错误与上面相同 . 存储桶的所有者也是root用户(尝试访问的用户与所有者相同) . 我在这里理解错了什么?如何恢复root用户对我自己的存储桶的访问权限?

2 回答

  • 1

    重新检查存储状态以及S3是否处于生命周期中总是一个好主意,因此在这种情况下它可能已经转移到Glacier . 在这里,我尝试使用 s3cmd 命令访问Glacier对象,并且我收到了无信息和无关的权限错误 . 将此作为增强功能添加到 s3cmd 的未来版本以获得更好的警告/错误消息将是一个好主意 .

  • 1

    要使任何S3读取权限起作用,您不仅需要允许这些对象,还需要在存储桶上允许 ListBucketListAllMyBucketsGetBucketLocation ,我的合并版本:

    {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::myBucket/*",
                "arn:aws:s3:::myBucket"
            ]
        }
    ]
    }
    

    AWS IAM Documentation查看更多示例

相关问题