当前位置: 首页 > 知识库问答 >
问题:

S3桶和对象访问

鲁峰
2023-03-14

根据我的理解,在没有给出访问权限的情况下,任何IAM用户都不能访问S3桶/对象。但是在我的用例中,我能够访问它。

我误解了S3的安全策略吗?这是我的用例我有根帐户在AWS,说根用户。这个用户创建了两个IAM用户,比如管理员和测试用户。并且root用户对两个IAM用户都给予了S3FullAccess权限。

现在我以管理员身份登录并创建了一个Bucket(比如Test)。并启用“阻止所有公共访问”。

现在有了另一个IAM用户,即使启用了“阻止所有公共访问”,我仍然能够访问测试存储桶。理想情况下,它不应该是正确的。测试用户在访问测试存储桶时应获得“拒绝访问”权限。如果我遗漏了什么,我们将非常感谢您的帮助

谢谢AWS学员

共有2个答案

符鸿光
2023-03-14

和根用户向两个IAM用户授予了S3FullAccess权限

这就是为什么你的两个用户都能看到桶的原因,因为他们有下面的策略与用户连接:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": "*"
        }
    ]
}

从用户中删除此策略后,将看到以下错误:

夏侯航
2023-03-14

对bucket的“阻止所有公共访问”指的是组织外部,而不是IAM用户。

换句话说,如果公众可以访问您的bucket,那么任何有权访问对象s3url的人都可以直接访问该对象。

您可以通过使用bucket策略来限制对bucket的访问,但是从IAM中的测试用户中删除S3FullAdminAccess更有意义。

 类似资料:
  • 它发现我们帐户中的S3 bucket应用了错误的bucket策略,现在包括root用户在内的所有用户都被拒绝访问 我们无法通过AWS控制台和CLI更改权限,也无法删除bucket。如何修复它?

  • 我们有一个Lambda函数,需要能够访问私有的S3桶。 该存储桶已启用“阻止所有公共访问”,并具有以下资源策略: 我还将AmazonS3FullAccess策略直接附加到Lambda使用的IAM角色。但是,当Lambda函数尝试访问S3存储桶时,会出现访问被拒绝错误: 使用IAM用户凭据连接到S3的外部系统在尝试访问存储桶时也会收到相同的错误。 有人知道是什么导致了这个错误吗? 以下是发生错误的L

  • 我正在尝试访问存储在AWS3桶中的文本文件。目前,它只包含“测试”一词。 起初,我以为我的fs.readfile有问题,但现在我发现问题更根本。我根本无法访问该文件。node.js的AWS似乎根本无法看到该文件。 我正在使用以下Lambda函数: 测试床函数包含以下代码: 结果如下所示(我删除了时间戳和请求ID文本): 由此,我得出结论,没有调用S3函数,尽管我可能弄错了。 我做错了什么?

  • 我不确定我是不是漏了一步。 我有一个s3 bucket,我需要能够从一个AWS SDK PHP脚本访问我写的运行在我的EC2上。我创建了一个IAM角色以允许访问。 IAM Allow_S3_Access_to_EC2 我的Bucket策略中没有任何关于我的EC2甚至我附加的IAM角色的内容。我也需要在我的桶策略中添加一些东西吗?这就是我困惑的地方。 我所经历的是,当一个新的对象被创建,我试图从我的

  • 用于创建桶和对象的AWS帐户拥有这些资源。如果在AWS帐户中创建AWS标识和访问管理(IAM)用户,则AWS帐户是父所有者。如果IAM用户上载对象,则该用户所属的父帐户拥有该对象。

  • 使用Java AWS SDK,我创建了一个lambda函数来从s3 bucket读取csv文件。我已经将bucket公之于众,可以从任何浏览器轻松访问它和文件。为了测试它,我使用lambda控制台上的test按钮。我正在使用hello world测试配置输入模板。 它失败的原因是: 错误消息:指定的桶无效。(服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;