You need to enable JavaScript to run this app. 基于组的S3访问控制:突破配额实现分层权限管控
优惠活动
大模型
产品
解决方案
定价
更多

基于组的S3访问控制:突破配额实现分层权限管控

可落地方案:动态权限下沉,绕开原生配额限制

架构核心逻辑

完全抛弃依赖Cognito静态组、S3独立存储桶做权限映射的传统模式,将权限判定从AWS原生配置层转移至自有业务服务层,从根源适配两类配额限制:

  • 全量宠物资源统一存储在1个或极少量通用S3桶中,按{宠物类型}/{品种}的层级前缀划分路径,永远不触发100个存储桶的默认配额上限
  • 用户与可访问路径的对应关系全部存储在自有业务数据库,完全不依赖Cognito的用户组机制,彻底规避单用户池10000个组的配额瓶颈

程序化权限实现流程

  1. 身份认证层:保留Cognito User Pool承担基础用户登录能力,登录后返回的ID Token仅用于核验用户身份,不附带任何权限类声明
  2. 权限校验服务:客户端拿到ID Token后,调用自有后端服务申请S3访问权限,后端先校验Token有效性,再从业务库查询当前用户的可访问路径前缀列表(例如虎斑猫用户的可访问前缀为Cats/、Cats/TabbyCats/)
  3. 动态临时凭证签发:后端基于查询到的权限列表,通过sts:AssumeRole动态生成自定义权限的临时会话,权限策略严格限定当前用户的可访问范围:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject", "s3:PutObject", "s3:ListBucket"],
          "Resource": [
            "arn:aws:s3:::your-general-pet-asset-bucket",
            "arn:aws:s3:::your-general-pet-asset-bucket/Cats/*",
            "arn:aws:s3:::your-general-pet-asset-bucket/Cats/TabbyCats/*"
          ],
          "Condition": {
            "StringLike": {
              "s3:prefix": ["Cats/", "Cats/TabbyCats/"]
            }
          }
        }
      ]
    }
    
  4. S3访问执行:客户端拿到临时凭证后直接对接S3,所有不在权限范围内的路径(如Dogs/、Cats/CalicoCats/)会被S3原生权限校验直接拦截,无需额外桶级配置

方案配额适配验证

  • S3维度:无论宠物类型、品种的细分规模达到多少,仅需1个通用存储桶即可承载全量资源,远低于默认100个桶的配额要求,无需申请提额、无额外成本
  • Cognito维度:完全不使用Cognito的组关联权限逻辑,用户的细分权限全部存储在业务侧,哪怕细分分类规模达到10万级,也不会触发单池10000个组的配额上限

可选安全优化

如果不想给用户发放长期有效的临时凭证,可切换为S3预签名URL模式:用户每次访问具体文件前,向后端请求临时访问链接,后端先校验当前用户对目标路径的访问权限,校验通过后生成有效期15分钟的预签名URL,权限管控粒度更细。

注:这套架构完全覆盖两级隔离需求——猫类用户的权限列表仅包含Cats/及对应品种的子路径,无法访问其他宠物类型的目录;同类型下不同品种的用户也无法跨品种访问专属文件夹。

内容的提问来源于stack exchange,提问作者Xonu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.15 12:45:02