【问题标题】:Unhackable AWS S3 Public Bucket不可破解的 AWS S3 公共存储桶
【发布时间】:2020-08-21 12:56:17
【问题描述】:

我想创建一个 S3 存储桶

规则:

  1. 互联网上的所有用户只有拥有对象的完整路径,才能访问存储桶中的对象,不能访问目录结构和目录中的列表项

  2. 只有一个 IAM 用户拥有对存储桶的读取、写入、列出和删除权限

  3. 其他所有用户只有在知道对象的完整路径并且没有写入或列表访问权限时才具有读取权限。

如何以最安全的方式实现这一目标?这样没有黑客可以插入/编辑/删除我存储桶中的数据

我的存储桶权限设置应该是什么样的(阻止公共访问设置)?

我的存储桶策略应该是什么样的?

我的 IAM 用户政策应该是什么样的?

如果我在同一个 aws 账户中使用相同的策略创建另一个 IAM 用户怎么办?此 IAM 用户是否有权编辑、插入、删除

如果我在具有相同策略的不同 aws 账户中创建另一个 IAM 用户怎么办?此 IAM 用户是否有权编辑、插入、删除

【问题讨论】:

  • 如果您添加一些示例或到目前为止所做的工作会很好
  • 您是否尝试过阅读文档 S3 公共访问和 IAM?我认为可能有您想要的确切示例

标签: amazon-web-services amazon-s3


【解决方案1】:

好的,您可以从该政策开始并尝试修改它以添加您的所有条款。 在此策略中,删除操作仅允许该帐户的 root 用户执行。 所以也添加列表并编写操作,这样只有 root 用户才能执行这些操作。

{
    "Version": "2012-10-17",
    "Id": "Policy1588186664547",
    "Statement": [
        {
            "Sid": "Stmt1588186644754",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "s3:DeleteBucket",
                "s3:DeleteBucketPolicy",
                "s3:DeleteBucketWebsite",
                "s3:DeleteObject",
                "s3:DeleteObjectTagging",
                "s3:DeleteObjectVersion",
                "s3:DeleteObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::testpolycy4/*",
                "arn:aws:s3:::testpolycy4"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:userid": "102345678910"
                }
            }
        }
    ]
}

回答您的问题:

  • 我的存储桶权限设置应该是什么样的(阻止公共 访问设置)?

全部屏蔽

  • 我的存储桶策略应该是什么样的?

修改该政策,直到获得所需的政策。

我认为您不需要 IAM 策略,只需使用存储桶策略,您就可以限制对对象的访问并只允许您想要的用户。

困难的部分是只允许访问具有完整路径的用户的方式,我认为您可以使用策略或 lambda 函数来做到这一点,但我不确定这一点。

【讨论】:

    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 2019-02-21
    • 1970-01-01
    • 2014-12-23
    • 2020-11-09
    • 1970-01-01
    相关资源
    最近更新 更多