使用資料存取原則來設定角色型存取控制
管理 Azure Cache for Redis 執行個體的存取是確保正確的使用者能夠存取一組正確的資料和命令的關鍵。 Redis 第 6 版引進了存取控制清單 (英文) (ACL)。 ACL 會限制哪些使用者可以執行特定命令,以及使用者可以存取的金鑰。 例如,您可以使用 DEL (英文) 命令禁止特定使用者刪除快取中的金鑰。
Azure Cache for Redis 現在將此 ACL 功能與 Microsoft Entra ID 進行整合,以便您可以為應用程式的服務主體和受控識別設定資料存取原則。
Azure Cache for Redis 提供三個內建存取原則:資料擁有者、資料參與者和資料讀者。 如果內建存取原則不符合您的資料保護和隔離需求,您可以建立和使用自己的自訂資料存取原則,如設定自訂資料存取原則中所述。
可用性範圍
層 | 基本、標準、進階 | Enterprise,Enterprise Flash |
---|---|---|
可用性 | 是 | No |
先決條件與限制
- 執行 Redis 第 4 版的 Azure Cache for Redis 執行個體不支援 Redis ACL 和資料存取原則。
- Microsoft Entra 驗證和授權僅支援用於 SSL 連線。
- 某些 Redis 命令會遭到封鎖 (部分機器翻譯)。
資料存取原則的權限
如 Redis 存取控制清單 (英文) 上所述,Redis 6.0 版中的 ACL 允許設定三個方面的存取權限:
命令類別
Redis 已建立命令群組 (例如系統管理命令、危險命令等) 以便您可以更輕鬆地設定一組命令的權限。
- 使用
+@commandcategory
可允許命令類別 - 使用
-@commandcategory
可禁止命令類別
這些命令 (部分機器翻譯) 仍會遭到封鎖。 下列群組是 Redis 支援的實用命令類別。 如需命令類別的詳細資訊,請參閱命令類別 (英文) 標題底下的完整清單。
admin
- 系統管理命令。 一般應用程式永遠不需要使用這些命令,包括
MONITOR
、SHUTDOWN
等等。
- 系統管理命令。 一般應用程式永遠不需要使用這些命令,包括
dangerous
- 有潛在危險的命令。 因為各種原因,請謹慎考慮每個命令,包括
FLUSHALL
、RESTORE
、SORT
、KEYS
、CLIENT
、DEBUG
、INFO
、CONFIG
等等。
- 有潛在危險的命令。 因為各種原因,請謹慎考慮每個命令,包括
keyspace
- 以與類型無關的方式寫入或讀取金鑰、資料庫或其中繼資料,包括
DEL
、RESTORE
、DUMP
、RENAME
、EXISTS
、DBSIZE
、KEYS
、EXPIRE
、TTL
、FLUSHALL
等等。 可以修改金鑰空間、金鑰或中繼資料的命令也具有寫入類別。 只會讀取金鑰空間、金鑰或中繼資料的命令則具有讀取類別。
- 以與類型無關的方式寫入或讀取金鑰、資料庫或其中繼資料,包括
pubsub
- PubSub 相關命令。
read
- 從金鑰、值或中繼資料讀取。 不會與金鑰互動的命令不會有讀取或寫入。
set
- 資料類型:集合相關。
sortedset
- 資料類型:已排序集合相關。
stream
- 資料類型:資料流相關。
string
- 資料類型:字串相關。
write
- 寫入金鑰中 (值或中繼資料)。
命令
命令可讓您控制特定 Redis 使用者可執行哪些特定命令。
- 使用
+command
可允許命令。 - 使用
-command
可禁止命令。
索引鍵
金鑰可讓您控制對快取中所儲存特定金鑰或金鑰群組的存取。
使用
~<pattern>
可提供金鑰模式。使用
~*
或allkeys
可指出命令類別權限會套用至快取執行個體中的所有金鑰。
如何指定權限
若要指定權限,您必須建立字串以便儲存為自訂存取原則,然後將字串指派給 Azure Cache for Redis 使用者。
下列清單包含各種案例的一些權限字串範例。
允許應用程式對所有金鑰執行所有命令
權限字串:
+@all allkeys
只允許應用程式執行「讀取」命令
權限字串:
+@read ~*
允許應用程式執行「讀取」命令類別,並對前置詞為
Az
的金鑰設定命令。權限字串:
+@read +set ~Az*
設定應用程式的自訂資料存取原則
在 Azure 入口網站中,選取 Azure Cache for Redis 執行個體,您想要在其中設定 Microsoft Entra 權杖型驗證。
從 [資源] 功能表中,選取 [資料存取設定]。
選取 [新增],然後選擇 [新增存取原則]。
為存取原則提供名稱。
根據需求來設定權限。
若要使用 Microsoft Entra ID 將使用者新增至存取原則,您必須先從 [資源] 功能表中選取 [驗證] 以啟用 Microsoft Entra ID。
選取 [啟用 Microsoft Entra 驗證] 做為工作窗格中的索引標籤。
如果尚未核取,請核取標示為 [啟用 Microsoft Entra 驗證] 的方塊,然後選取 [確定]。 然後選取 [儲存]。
隨即會顯示快顯對話方塊,詢問您是否要更新設定,並告知您此作業需要幾分鐘的時間。 選取 [是]。
重要
一旦啟用作業完成,快取執行個體中的節點就會重新啟動以載入新的設定。 建議您在維護視窗期間或在忙碌的上班時間之外執行這項作業。 此作業最多可能需要 30 分鐘的時間。
設定 Redis 用戶端以使用 Microsoft Entra ID
現在您已設定好用於設定角色型存取控制的 Redis 使用者和資料存取原則,接下來您必須更新用戶端工作流程,以支援使用特定使用者/密碼的驗證。 若要瞭解如何將用戶端應用程式設定為以特定 Redis 使用者身分連線到快取實例,請參閱 將 Redis 用戶端設定為使用 Microsoft Entra。