多租户数据访问模式与 IAM 策略

在 AWS 中使用数据存储

Dunieski Otano

AWS Solutions Architect

多租户安全事件

  • SaaS 应用服务 1,000 家公司
  • 应用漏洞导致跨租户访问
  • A 公司员工查看到 B 公司的数据
  • 结果:客户流失、诉讼、声誉受损

租户

在 AWS 中使用数据存储

理解多租户

  • 什么是多租户?
    • 多个客户共享基础设施
  • 优势
    • 成本更优,维护更易
  • 挑战
    • 确保数据完全隔离

多租户

在 AWS 中使用数据存储

每租户分区键模式

  • 设计
    • 使用 tenantId 作为分区键
    • 每条记录都包含 tenantId
  • 优点
    • 低成本,可扩展到上千租户
  • 要求
    • 严格的访问控制与 IAM 策略

键

在 AWS 中使用数据存储

每租户独立表模式

  • 设计
    • 每个租户一张独立表
  • 优点
    • 隔离更好,合规更易
  • 缺点
    • 复杂度管理,表数量上限

分离

在 AWS 中使用数据存储

每租户独立数据库模式

  • 设计
    • 每个租户一个独立数据库
  • 优点
    • 完全隔离,可定制配置
  • 缺点
    • 成本最高,运维开销大

数据库

在 AWS 中使用数据存储

用于租户隔离的 IAM 条件键

  • dynamodb:LeadingKeys
    • 限制分区键访问
  • 示例策略
    • "当 tenantId = tenant-123 时允许"
  • 强制执行
    • 由 AWS 在 API 层强制

阻断策略

在 AWS 中使用数据存储

实施纵深防御

  • 层 1:应用
    • 在代码中检查 tenantId
  • 层 2:IAM 策略
    • 使用条件键强制隔离
  • 层 3:数据库设计
    • 通过分区键实现物理分离

分层防护

在 AWS 中使用数据存储

测试与验证

  • 测试跨租户访问
    • 尝试读取其他租户数据
    • 应失败并返回 AccessDeniedException
  • 审计日志
    • CloudTrail 记录所有访问尝试
  • 定期评审
    • 审查 IAM 策略与访问模式

测试

在 AWS 中使用数据存储

恭喜完成!

  • AWS 数据存储:DynamoDB、S3、ElastiCache、OpenSearch
  • 设计与优化:表设计、存储优化
  • 数据安全:加密、密钥管理、多租户隔离

课程完成

在 AWS 中使用数据存储

开始练习吧!

在 AWS 中使用数据存储

Preparing Video For Download...