在 Amazon Web Services S3 中保护存储桶和资源访问?

Securing bucket- and resource access in Amazon Web Services S3?

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

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

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

这是一个好方法吗?

我的方法想法:

更多问题:

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。