在亚马逊云科技 S3 中保护存储桶和资源访问?



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

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

  • https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html
  • https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/IAM.html#createUser-property

"AWS IAM简介"视频提到,您可以将对 AWS 资源的访问限制为每个 IAM 用户:

  • https://aws.amazon.com/iam/

这是一个好方法吗?

我对方法的想法:

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

更多问题:

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

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 身份。

相关内容

  • 没有找到相关文章

最新更新