共用方式為


設定自定義數據存取原則

重要

Azure Cache for Redis 宣布了所有 SKU 的淘汰時間表。 建議您儘快將現有的 Azure Cache for Redis 執行個體移至 Azure 受控 Redis

有關退休的更多詳細資訊:

管理 Azure Redis 快取實例的存取權對於確保正確的用戶能夠存取正確的數據集和命令至關重要。 Redis 第 6 版引進 了訪問控制清單 (ACL),其中列出特定使用者可以存取的密鑰,以及他們可以執行的命令。 例如,您可以禁止特定使用者使用 DEL 命令刪除快取中的索引鍵。

Azure Cache for Redis 會將此 ACL 功能與 Microsoft Entra 整合,讓您設定及指派應用程式使用者、服務主體和受控識別的數據存取原則。 Azure Cache for Redis 提供三個內建存取原則,您可以透過角色型訪問控制(RBAC): 數據擁有者數據參與者和數據 讀取器指派。

如果內建存取原則不符合數據保護和隔離需求,您可以建立並使用您自己的自定義數據存取原則。 本文說明如何設定 Azure Cache for Redis 的自定義資料存取原則,並透過 Microsoft Entra 驗證啟用 RBAC。

可用性範圍

層級 基本、標準、進階 Enterprise,Enterprise Flash
可用性

局限性

  • 企業級和企業級 Flash 層不支援設定資料存取政策。
  • 執行 Redis 第 4 版的 Azure Redis 實例不支援 Redis ACL 和數據存取原則。
  • Microsoft Entra 驗證和授權僅支援安全套接字層(SSL)連線。
  • 某些 Redis 命令在 Azure Cache for Redis 中遭到封鎖。 如需詳細資訊,請參閱 Azure Cache for Redis 中不支援的 Redis 命令

Redis ACL 權限

Redis 6.0 版中的 Redis ACL 允許設定三個區域的訪問許可權:命令類別、命令和密鑰。

命令類別

Redis 建立了 命令類別,例如系統管理命令和危險命令,讓一組命令的許可權更容易設定。 在權限字串中,使用 +@<category> 來允許命令類別目錄或 -@<category> 不允許命令類別目錄。

Redis 支援下列實用的命令類別。 如需詳細資訊和完整清單,請參閱 Redis ACL 檔中命令類別標題。

類別 說明
admin 系統管理指令,例如 MONITORSHUTDOWN。 一般應用程式永遠不需要使用這些命令。
dangerous 潛在的危險命令,包括FLUSHALLRESTORESORTKEYS、、、CLIENTDEBUGINFOCONFIG。 請謹慎考慮每個專案,原因各有不同。
keyspace 包括DELRESTOREDUMP、、RENAMEEXISTSDBSIZEKEYSEXPIRE、、 TTLFLUSHALL。 以類型無關的方式從鍵值、資料庫或其中繼資料中寫入或讀取。 只讀取資料空間(keyspace)、鍵(key)或元數據(metadata)的命令擁有 read 類別。 可以修改 keyspace、key 或 metadata 的命令也屬於 write 類別。
pubsub 與 PubSub 有關的指令。
read 從金鑰、值或中繼資料讀取。 不會與鍵互動的命令沒有 readwrite
set 資料類型:集合相關。
sortedset 資料類型:與已排序集合相關。
stream 資料類型:資料流相關。
string 資料類型:字串相關。
write 將值或元數據寫入鍵中。

備註

針對 Azure Redis 封鎖 的命令在類別內仍會遭到封鎖。

指令

命令 可讓您控制特定 Redis 使用者可以執行的特定命令。 在許可權字串中,使用 +<command> 來允許命令或 -<command> 不允許命令。

鑰匙/鍵

金鑰 可讓您控制對儲存在快取中的特定金鑰或金鑰群組的存取。 使用權限字串中的 ~<pattern> 來提供金鑰的模式。 使用~*allkeys來表示權限會套用至快取中的所有索引鍵。

設定應用程式的自訂資料存取原則

若要設定自定義數據存取原則,您可以建立許可權字串來作為自定義存取原則,並啟用快取Microsoft Entra 驗證。

指定許可權

根據您的需求設定許可權字串。 下列範例顯示各種案例的權限字串:

許可權字串 說明
+@all allkeys 允許應用程式對所有金鑰執行所有命令。
+@read ~* 允許應用程式只執行 read 命令類別。
+@read +set ~Az* 允許應用程式執行 read 命令類別,並在具有前置詞 Az的索引鍵上設定命令。

建立自定義數據存取原則

  1. 在 Azure 入口網站中,選取您想要在其中建立數據存取原則的 Azure Redis 快取。

  2. 在左側導覽功能表中的 [設定] 下,選取 [數據存取組態]。

    顯示 [資源] 功能表中醒目標示的 [資料存取配置] 的螢幕擷圖。

  3. 在 [ 數據存取組態 ] 頁面上,選取 [新增>存取原則]。

  4. 在 [ 新增/編輯自定義存取原則 ] 畫面上,提供存取原則的名稱。

  5. [許可權] 底下,新增您的自定義許可權字串,然後選取 [ 套用]。

    顯示要新增自訂存取原則的表單螢幕擷取畫面。

自定義原則現在會出現在 [數據存取組態] 頁面的 [存取原則] 索引卷標上,以及三個內建的 Azure Redis 原則。

啟用 Microsoft Entra 驗證

若要使用 Microsoft Entra 將使用者指派給存取原則,您必須在快取上啟用 Microsoft Entra,而不是存取金鑰驗證。 若要檢查您的驗證方法,請在快取的左側導覽功能表下的 [設定] 中選取 [驗證]。

在 [ 驗證 ] 畫面上,如果已選取 [停用存取密鑰驗證 ],且畫面上未顯示存取密鑰,則快取已使用 Microsoft Entra 驗證。 否則,請選取 [停用存取密鑰驗證 ] 旁的複選框,然後選取 [ 儲存]。

停用存取金鑰驗證的螢幕快照。

回應 [是 ] 快顯對話框,詢問您是否要停用存取密鑰驗證。

重要

Microsoft Entra 啟用作業完成後,快取實例中的節點會重新啟動以載入新的組態。 此作業最多可能需要 30 分鐘的時間。 最好在維護期間或高峰時段外執行這項作業。

設定 Redis 用戶端以使用 Microsoft Entra ID

大部分的 Azure Cache for Redis 用戶端都假設使用密碼和存取密鑰進行驗證。 您可能需要更新用戶端工作流程,以支援使用特定Microsoft Entra 使用者名稱和密碼的驗證和授權。 若要瞭解如何將用戶端應用程式設定為以特定 Redis 使用者身分連線到快取實例,請參閱 將 Redis 用戶端設定為使用 Microsoft Entra ID