【问题标题】:Securing bucket- and resource access in Amazon Web Services S3?保护 Amazon Web Services S3 中的存储桶和资源访问?
【发布时间】:2020-01-15 02:32:31
【问题描述】:

我的网站上有一个上传表单,每个登录的用户都可以上传视频。上传视频时,我在存储桶中生成一个具有随机名称的新文件夹,并将所有上传的视频都放置在此文件夹中。我想以某种方式将上传文件的访问权限限制为上传视频的用户。建议的方法是什么?

我了解到您可以通过编程方式创建 IAM(AWS 身份和访问管理)用户:

“AWS IAM 简介”视频提到您可以限制每个 IAM 用户访问 AWS 资源:

这是一个好方法吗?

我对方法的想法:

  • 只有登录的用户才能上传。他们在我们的数据库中有一个帐户
  • 我们需要以某种方式将数据库用户连接到 IAM 标识。在数据库中存储一些东西?
  • 当用户尝试上传视频文件时,检查数据库中的用户记录是否有IAM身份,如果没有则创建一个
  • 以某种方式存储用户有权访问的 AWS S3 资源。最好的方法是什么?

更多问题:

  • 在 AWS S3 上使用一个存储桶是否足够,或者我需要每人一个吗
  • 我真的需要创建 IAM 用户来限制访问,还是可以通过其他方式?

【问题讨论】:

    标签: amazon-web-services amazon-s3 aws-sdk amazon-iam


    【解决方案1】:

    Cognito 身份池非常适合这种情况。对于授权角色,给它一个看起来像这样的策略:

    {
        "Sid": "Access User-Specific Folder",
        "Effect": "Allow",
        "Action": "s3:PutObject",
        "Resource": "arn:aws:s3:::YOUR-BUCKET-NAME/${cognito-identity.amazonaws.com:sub}/*"
    }
    

    这将用户限制为仅文件夹中与其在您的身份池中的唯一 ID 具有相同名称的对象。此方法只使用一个桶。

    当您考虑以编程方式为每个用户创建自定义 IAM 角色或为每个用户创建不同的存储桶时,答案是使用 Cognito Identity。

    【讨论】:

    • 非常感谢您分享这些知识。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多