共用存取簽章(SAS)

為開發人員實作 Azure 安全性

Anushika Agarwal

Cloud Data Engineer

什麼是共用存取簽章?

  • 對「儲存資源」授予「有限存取權」
  • 不會暴露「儲存帳戶金鑰」

SAS

為開發人員實作 Azure 安全性

類比:SAS 如販賣機代幣

  • 權杖僅在「有限時間」內有效(如 30 秒)

  • 權杖只允許「特定動作」(如一罐可口可樂)

SAS Vending Machine Example

為開發人員實作 Azure 安全性

SAS 如何被保護?

  • 以「儲存帳戶金鑰」簽署

Storage Account key

  • 或使用「Microsoft Entra ID」

Microsoft Entra ID

為開發人員實作 Azure 安全性

SAS 類型

  • 「使用者委派 SAS」
    • 使用 Microsoft「Entra 認證」
    • 適用於「Blob」與「Data Lake Storage」

SAS Tokens

  • 「服務層級 SAS」
    • 使用「儲存帳戶金鑰」
    • 存取「單一服務」:Blob、Queue、Table 或 File
  • 「帳戶層級 SAS」
    • 使用「儲存帳戶金鑰」
    • 可存取「多個服務」
    • 支援服務層級作業
為開發人員實作 Azure 安全性

真實情境

  • 情境:

    • PeopleSphere 與外部稽核員分享薪資報表
  • SAS 類型:使用者委派 SAS

  • 範圍化存取:

    • 稽核員只能看到需要的報表
  • 限時存取:

    • 存取會自動到期
  • 安全驗證:

    • 使用 PeopleSphere 的 Azure 認證

User Delegation SAS

為開發人員實作 Azure 安全性

理解 SAS 結構

SAS 的組成

  1. URI-資源路徑
  2. Token-存取規則與簽章

SAS Token

為開發人員實作 Azure 安全性

權杖組成

SAS Token

  • sp:權限(例如 r = 讀取,w = 寫入)
  • st / se:開始與到期時間
  • spr:通訊協定(例如僅 https)
  • sr:資源類型(b = blob,f = file)
  • sv:Storage API 版本
  • sig:用於驗證的簽章
為開發人員實作 Azure 安全性

使用 SAS 的最佳做法

  • 一律使用 HTTPS

  • 優先使用「使用者委派 SAS」
  • 設定較短的到期時間

Short Expiry

  • 授予最小必要權限

Grant Least Access

  • 高風險存取避免使用 SAS

Highly sensitive data

為開發人員實作 Azure 安全性

一起來練習吧!

為開發人員實作 Azure 安全性

Preparing Video For Download...