【问题标题】:AWS S3 bucket policy to allow access to Cognito users允许访问 Cognito 用户的 AWS S3 存储桶策略
【发布时间】:2020-12-18 12:34:11
【问题描述】:

我想创建一个 S3 存储桶策略,它可以阻止公共访问,但只允许通过 Cognito 注册我的应用程序的人能够通过应用程序上传对象。

当前阻止公共访问设置:

我拥有的当前存储桶策略:

{
    "Version": "2012-10-17",
    "Id": "Policy1593320409523",
    "Statement": [
        {
            "Sid": "Stmt1593320397284",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::358110801253:role/Cognito_katebUnauth_Role",
                    "arn:aws:iam::358110801253:role/service-role/transcribe-role-k5easa7b",
                    "arn:aws:iam::358110801253:role/Cognito_katebAuth_Role"
                ]
            },
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::va-raw-audio-to-transcribe/*",
                "arn:aws:s3:::va-raw-audio-to-transcribe"
            ]
        }
    ]
}

【问题讨论】:

标签: amazon-web-services amazon-s3


【解决方案1】:

Amazon S3 存储桶默认为私有。因此,没有必要“限制”访问。相反,请选择适当的方式“授予”所需用户的访问权限。

当用户通过 AWS Cognito 进行身份验证时,会提供链接到 IAM 角色 的凭证。因此:

  • 通过存储桶策略分配权限 - 这通常用于向所有用户授予公共访问权限
  • 相反,将权限添加到 Cognito 为那些经过身份验证的用户使用的 IAM 角色

您在问题中列出了 3 个角色。因此,为这 3 个 IAM 角色中的每一个添加适当的权限,以便他们可以访问所需的存储桶。

另外,要非常小心您授予的权限。您问题中的策略是授予s3:*,这意味着用户可以删除所有对象,甚至可以删除存储桶本身!始终授予最小权限,以便他们有足够的权限访问权限,但不超过要求。

例如,如果您只想允许他们上传,他们只需要s3:PutObject 权限。

【讨论】:

  • 如果可能,请您查看this 问题。谢谢。
猜你喜欢
  • 2018-07-12
  • 2017-06-13
  • 1970-01-01
  • 2021-06-28
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 2020-03-26
相关资源
最近更新 更多