多租戶資料存取模式與 IAM 原則

在 AWS 中使用資料儲存服務

Dunieski Otano

AWS Solutions Architect

多租戶的資安外洩

  • SaaS 應用服務 1,000 家公司
  • 程式碼錯誤導致跨租戶存取
  • A 公司員工看到 B 公司的資料
  • 結果:流失客戶、訴訟、名譽受損

tenant

在 AWS 中使用資料儲存服務

認識多租戶

  • 什麼是多租戶?
    • 多個客戶共享基礎架構
  • 優點
    • 成本效率高、維護更容易
  • 挑戰
    • 確保資料完全隔離

multi-tenancy

在 AWS 中使用資料儲存服務

每租戶一個分割鍵的模式

  • 設計
    • 以 tenantId 作為分割(partition)鍵
    • 每個項目都包含 tenantId
  • 優勢
    • 成本效益高,可擴展到數千租戶
  • 需求
    • 嚴格存取控制與 IAM 原則

key

在 AWS 中使用資料儲存服務

每租戶一個資料表的模式

  • 設計
    • 每個租戶使用專屬資料表
  • 優勢
    • 隔離更佳,較易符規
  • 劣勢
    • 管理複雜度高、資料表數量受限

separate

在 AWS 中使用資料儲存服務

每租戶一個資料庫的模式

  • 設計
    • 每個租戶使用專屬資料庫
  • 優勢
    • 完全隔離,可自訂設定
  • 劣勢
    • 成本最高、營運負擔大

database

在 AWS 中使用資料儲存服務

用 IAM 條件鍵達成租戶隔離

  • dynamodb:LeadingKeys
    • 限制對分割鍵的存取
  • 範例原則
    • "Allow if tenantId = tenant-123"
  • 強制機制
    • 由 AWS 在 API 層強制執行

blocking-policy

在 AWS 中使用資料儲存服務

實作縱深防禦

  • 第 1 層:應用程式
    • 在程式碼檢查 tenantId
  • 第 2 層:IAM 原則
    • 以條件鍵強制隔離
  • 第 3 層:資料庫設計
    • 以分割鍵達成實體分離

layer-attack

在 AWS 中使用資料儲存服務

測試與驗證

  • 測試跨租戶存取
    • 嘗試讀取其他租戶的資料
    • 應以 AccessDeniedException 失敗
  • 稽核記錄
    • CloudTrail 記錄所有存取嘗試
  • 定期檢閱
    • 檢視 IAM 原則與存取模式

testing

在 AWS 中使用資料儲存服務

恭喜你!

  • AWS 資料儲存:DynamoDB、S3、ElastiCache、OpenSearch
  • 設計與最佳化:資料表設計、儲存最佳化
  • 資料安全:加密、機密管理、多租戶隔離

course_complete

在 AWS 中使用資料儲存服務

一起來練習吧!

在 AWS 中使用資料儲存服務

Preparing Video For Download...