在 Memorystore for Redis Cluster 中使用存取控制清單 (ACL) 政策,即可確保叢集存取安全。您可以限制使用者和服務存取特定金鑰、指令和 Pub/Sub 管道,啟用精細的安全防護機制。
以下是使用 ACL 政策確保叢集存取安全的用途範例:
- 提供角色式存取控管 (RBAC):為應用程式的不同元件建立不同的使用者個人資料。舉例來說,網頁前端可以具備唯讀權限,而背景工作站服務則具備讀取/寫入權限。防止資料意外外洩或遭到竄改。
- 禁止破壞性指令:限制危險指令 (例如
FLUSHALL、FLUSHDB或CONFIG),僅限高階管理員使用。確保資料完整性,避免軟體錯誤或人為錯誤。 提供多租戶應用程式安全防護:為不同的微服務或外部合作夥伴使用不同的 ACL 使用者。這可確保某項服務的使用者無法讀取或修改其他服務擁有的金鑰。
Memorystore for Redis Cluster 不提供資源層級的多用戶群架構。即使鍵空間已分割,某項服務仍可能耗用過多記憶體或 CPU。
執行唯讀分析和監控:指派專屬使用者,只能使用
GET或其他唯讀指令 (例如SCAN或TYPE),對分析引擎或資訊主頁應用程式執行操作。避免意外寫入或刪除資料。保護資料庫金鑰:限制應用程式只能與符合特定模式 (例如
app1:*) 的金鑰互動。這可讓叢集內的資料在邏輯上區隔。停用 Lua 指令碼:使用 ACL 政策管理叢集的 Lua 指令碼功能。停用或限制 Lua 指令碼,有助於調整效能、簡化叢集功能,或遵守貴組織的安全指南。
事前準備
開始使用 ACL 政策前,請先完成本節的操作說明。
使用 Google Cloud 控制台、Google Cloud CLI 和 API
如要使用 Google Cloud 控制台、Google Cloud CLI 和 API,請執行下列步驟:
- 在 Google Cloud 控制台的專案選取器頁面,選取或建立 Google Cloud 專案。
注意:如果您不打算保留在這項程序中建立的資源,請建立新專案,而不要選取現有專案。如果採用這種做法,當您完成這些步驟後,就可以直接刪除該專案,並移除相關聯的所有資源。
前往專案選取器 - 確認專案已啟用計費功能。瞭解如何確認專案是否已啟用計費功能。
注意:如果您先前已安裝 gcloud CLI,請執行
gcloud components update,確認您使用的是最新版本。您至少需要 gcloud CLI440.0.0版,才能存取 Memorystore for Redis Cluster gcloud CLI 指令。-
啟用 Memorystore for Redis API。
Memorystore for Redis -
啟用 Network Connectivity API。
Network Connectivity API -
啟用 Service Consumer Management API。
Service Consumer Management API
指派 Memorystore for Redis Cluster 角色
請確認您或您使用的使用者帳戶具備執行所需動作的必要權限。
如要執行所有 ACL 政策作業,請使用 Redis 管理員 (roles/redis.admin) 和 Redis 編輯者 (roles/redis.editor) 角色。如要只查看 ACL 政策,請使用 Redis 檢視者 (roles/redis.viewer) 角色。
指派 Memorystore for Redis Cluster 權限
除了 Redis 管理員、Redis 編輯者和 Redis 檢視者角色外,如要在 Memorystore for Redis Cluster 使用 ACL 政策,還需要下列權限:
| 動作 | 權限 |
|---|---|
| 建立 ACL 政策 | redis.aclPolicies.create |
| 將 ACL 政策指派給叢集 | redis.clusters.update |
| 查看 ACL 政策相關資訊 | redis.aclPolicies.list |
| 查看 ACL 政策相關資訊 | redis.aclPolicies.get |
| 查看 ACL 政策修訂版本的相關資訊 | redis.aclPolicyRevisions.list |
| 查看 ACL 政策修訂版本的相關資訊 | redis.aclPolicyRevisions.get |
| 修改 ACL 政策 | redis.aclPolicies.update |
| 從叢集移除 ACL 政策 | redis.clusters.update |
| 刪除 ACL 政策 | redis.aclPolicies.delete |
建立 ACL 政策
在 Memorystore for Redis Cluster 建立 ACL 政策,可限制使用者存取特定金鑰、指令和 Pub/Sub 管道,進而強化叢集安全性。
您可以使用 Google Cloud 控制台或 gcloud CLI 建立 ACL 政策。
控制台
前往 Google Cloud 控制台的「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL policies」。
在「ACL policies」頁面中,按一下「Create policy」。
在「Create policy」(建立政策) 視窗中,執行下列操作:
在「Policy name」(政策名稱) 欄位中,輸入 ACL 政策的名稱。政策名稱只能使用小寫英文字母、數字和連字號,開頭須為英文字母,且在所屬區域內不得重複。
從「Region」(區域) 選單,選取要 Memorystore for Redis Cluster 建立 ACL 政策的區域。
按一下「Add rule」(新增規則)。
在「User ID」(使用者 ID) 欄位中,輸入要套用 ACL 政策的使用者名稱。
在「Access string」(存取字串) 欄位中,輸入政策的存取字串。存取字串是人類可讀的規則,可定義使用者的特定權限。
舉例來說,如要授予
default超級使用者叢集所有 ACL 金鑰的讀取和寫入權限,請填寫「User ID」(使用者 ID) 和「Access string」(存取字串) 欄位,如下所示:使用者 ID 存取字串 defaulton ~* &* +@all這項規則會將下列權限授予
default使用者:on:使用者處於有效狀態,且已啟用驗證功能~*:使用者對所有可能的金鑰具有讀取和寫入權限&*:使用者可以存取所有 Pub/Sub 管道+@all:使用者可以執行所有可用指令
如要進一步瞭解可建立的其他 ACL 規則和政策,請參閱 Redis 說明文件中的 ACL。
重複步驟 c 到 e,為政策建立其他 ACL 規則。
點選「建立」。
gcloud
如要建立 ACL 政策,請使用 gcloud redis acl-policies create 指令。
gcloud redis acl-policies create ACL_POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all",username="lucian" \ --rules=rule="on +get",username="taylor"
請依指示取代下列項目:
- ACL_POLICY_NAME:您要建立的 ACL 政策名稱。政策名稱只能使用小寫英文字母、數字和連字號,開頭須為英文字母,且在所屬區域內不得重複。
- REGION:ACL 政策所在的區域。
這項政策採用基本的權杖型驗證機制,並包含執行下列動作的規則:
- 第一項規則會將
~* +@all權限授予lucian。這項權限可讓使用者存取所有金鑰並執行所有指令。 - 第二項規則會將
get權限授予taylor。這項權限可讓使用者擷取與金鑰相關聯的值。這項角色會限制使用者只能執行唯讀資料作業,並防止使用者修改金鑰。
如要為使用 Identity and Access Management (IAM) 驗證的 ACL 政策建立規則,建議您使用 IAM 主體做為使用者名稱 (例如使用者的電子郵件地址)。
gcloud redis acl-policies create ACL_POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all",username="lucian@example.com" \ --rules=rule="on +get",username="taylor@example.com"
如要為不使用驗證機制的 ACL 政策建立規則,使用者必須是 default 使用者。
gcloud redis acl-policies create ACL_POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all",username="default"
如要進一步瞭解基本的權杖型驗證和 IAM 驗證,請參閱「透過基本的權杖型驗證機制確保叢集存取安全」和「關於 IAM 驗證」。
如要進一步瞭解可建立的其他 ACL 規則和政策,請參閱 Redis 說明文件中的 ACL。
將 ACL 政策指派給叢集
將 ACL 政策指派給叢集或取代指派的政策,即可讓 Memorystore for Redis Cluster 將政策規則套用至叢集。因此,您可以限制使用者存取特定金鑰、指令和 Pub/Sub 管道。
您可以使用Google Cloud 控制台或 gcloud CLI,將 ACL 政策指派給叢集。
將政策指派給新叢集
如要建立叢集並將 ACL 政策指派給叢集,請參閱「建立執行個體」。
將政策指派給現有叢集
如要提高現有叢集的安全性,可以為叢集指派 ACL 政策。
控制台
前往 Google Cloud 控制台的「Memorystore for Redis Cluster」頁面。
按一下要指派 ACL 政策的叢集 ID。
在「叢集一覽」頁面,捲動至「安全性」資訊卡。
按一下「ACL policy」欄位旁邊的「Edit」圖示 (edit)。
在「Edit ACL policy」(編輯 ACL 政策) 視窗中,執行下列操作:
從「政策」選單中,選取要指派給叢集的政策。
按一下「更新叢集」。
gcloud
如要將 ACL 政策指派給現有叢集,請使用 gcloud redis clusters update 指令。
gcloud redis clusters update CLUSTER_ID \ --update_mask=acl_policy \ --acl-policy=ACL_POLICY_NAME \ --region=REGION
請將下列項目改為對應的值:
- CLUSTER_ID:要指派 ACL 政策的叢集 ID
- ACL_POLICY_NAME:ACL 政策的名稱
- REGION:叢集所在的區域
查看 ACL 政策相關資訊
查看 Memorystore for Redis Cluster 的 ACL 政策資訊,有助於維護安全性、確保環境作業穩定,以及稽核記憶體內資料。這些政策會定義哪些使用者可以讀取或修改特定金鑰模式、執行特定指令,或存取特定 Pub/Sub 管道。
您可以使用Google Cloud 控制台或 gcloud CLI 查看 ACL 政策的相關資訊。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL 政策」。
在「ACL policies」(ACL 政策) 頁面中,您可以查看各項 ACL 政策的下列資訊:
- 政策 ID:政策的專屬 ID
- 位置:政策所在的區域
- 建立時間:政策建立的日期和時間
- 更新時間:上次更新政策的日期和時間
- 規則數量:政策的規則總數
- 由叢集使用:指派給政策的叢集
gcloud
如要查看 ACL 政策的相關資訊,請使用 gcloud redis acl-policies list 指令。
gcloud redis acl-policies list --region=REGION
將 REGION 替換為 ACL 政策所在的區域。
查看 ACL 政策相關資訊
在 Memorystore for Redis Cluster 查看 ACL 政策相關資訊,即可執行安全性稽核、排解存取錯誤,並驗證使用者指令、金鑰權限和 Pub/Sub 管道存取權,落實最小權限原則。此外,管理員可以查看 ACL 政策,確保應用程式擁有適當的存取權,並偵測過於寬鬆的規則。
您可以使用 gcloud CLI 查看 ACL 政策的相關資訊。如要查看這項資訊,請使用 gcloud redis acl-policies describe 指令。
gcloud redis acl-policies describe ACL_POLICY_NAME \ --region=REGION
請依指示取代下列項目:
- ACL_POLICY_NAME:要查看資訊的 ACL 政策名稱
- REGION:ACL 政策所在的區域
查看 ACL 政策修訂版本的相關資訊
建立 ACL 政策時,Memorystore for Redis Cluster 會為政策建立版本 (修訂版本)。每當您修改政策,Memorystore for Redis Cluster 就會建立後續的政策修訂版本。
由於 Memorystore for Redis Cluster 會自動產生這些修訂版本,因此您可以將其用於內部追蹤和稽核。此外,查看修訂版本可讓您查看每個歷來版本的 ACL 政策確切內容。
您可以使用 ACL 政策修訂版本,追蹤哪些叢集使用政策的哪個修訂版本。這有助於您在政策更新後,於最終一致性期間維持可見度,並確保叢集採用正確版本。
您可以使用Google Cloud 控制台或 gcloud CLI,查看 ACL 政策修訂版本的相關資訊。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL 政策」。
在「ACL policies」頁面中,按一下要查看修訂版本的 ACL 政策 ID。「ACL 政策修訂版本」頁面會顯示下列資訊:
gcloud
如要查看 ACL 政策修訂版本的相關資訊,請使用 gcloud redis acl-policies revisions list 指令。
gcloud redis acl-policies revisions list \ --acl-policy=ACL_POLICY_NAME \ --region=REGION
請將下列項目改為對應的值:
- ACL_POLICY_NAME:ACL 政策名稱,其中包含您要查看資訊的修訂版本
- REGION:ACL 政策所在的區域
記下輸出內容中的修訂版本 ID。您需要這些 ID 才能查看特定 ACL 政策修訂版本的資訊。
查看 ACL 政策修訂版本的相關資訊
查看 ACL 政策修訂版本時,您可以查看其規則、中繼資料,以及所有附加叢集的清單。您可以使用 Google Cloud 控制台或 gcloud CLI,查看 ACL 政策修訂版本的相關資訊。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL policies」。
在「ACL policies」(ACL 政策) 頁面中,按一下要查看修訂版本的 ACL 政策 ID。
在「ACL policy revisions」頁面中,點選要查看資訊的 ACL 政策修訂版本旁的「Snapshot」連結。
gcloud
如要查看 ACL 政策修訂版本的相關資訊,請使用 gcloud redis acl-policies revisions describe 指令。
gcloud redis acl-policies revisions describe ACL_POLICY_REVISION_ID \ --acl-policy=ACL_POLICY_NAME \ --region=REGION
請依指示取代下列項目:
- ACL_POLICY_REVISION_ID:要查看資訊的 ACL 政策修訂版本 ID。您在查看 ACL 政策修訂版本資訊時,會記下這個 ID。
- ACL_POLICY_NAME:包含修訂版本的 ACL 政策名稱。
- REGION:ACL 政策所在的區域。
修改 ACL 政策
修改 Memorystore for Redis Cluster 的 ACL 政策,即可強化安全性、強制執行最小權限存取,以及管理作業安全。您可以使用 Google Cloud 控制台或 gcloud CLI 修改政策。
在 ACL 政策中新增規則
如要提高 ACL 政策的安全性,請新增規則。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL 政策」。
找出要新增規則的存取控制清單政策,按一下旁邊的「更多動作」圖示 (more_vert),然後選取「編輯」。
在「編輯政策」視窗中,按一下「新增規則」。
在「User ID」(使用者 ID) 欄位中,輸入要套用 ACL 政策的使用者名稱。
在「Access string」(存取字串) 欄位中,輸入政策的存取字串。如要進一步瞭解 ACL 政策的存取權字串,請參閱「建立 ACL 政策」。
如要為政策新增其他 ACL 規則,請重複執行步驟 4 到 6。
按一下 [儲存]。
gcloud
如要將規則新增至 ACL 政策,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update ACL_POLICY_NAME \ --region=REGION \ --add-rules=rule="on ~list:*",username="lucian"
請依指示取代下列項目:
- ACL_POLICY_NAME:您要新增 ACL 規則的 ACL 政策名稱
- REGION:ACL 政策所在的區域
這項規則會授予 lucian 存取以 list: 開頭的所有金鑰。
修改 ACL 政策規則
修改 ACL 政策的 ACL 規則,可提高安全性、提升作業安全,並更精細地控管使用者存取權。舉例來說,您可以在事件應變期間撤銷權限,或啟用臨時存取權以進行偵錯。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL 政策」。
找出要修改規則的 ACL 政策,然後按一下「更多動作」圖示 (more_vert), 並選取「編輯」。
在「編輯政策」視窗中,按一下「新增規則」。
在「User ID」(使用者 ID) 和「Access string」(存取字串) 欄位中,修改政策的使用者 ID 或存取字串。如要進一步瞭解 ACL 政策的存取字串,請參閱「建立 ACL 政策」。
如要修改政策的其他 ACL 規則,請重複步驟 4 和 5。
按一下 [儲存]。
取代 ACL 政策的規則
與修改政策規則類似,替換政策規則可提供更嚴格的安全防護、提升作業安全性,以及更精細的使用者存取控管。
gcloud
如要取代 ACL 政策的規則,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update ACL_POLICY_NAME \ --region=REGION \ --rules=rule="on ~c*che",username="lucian"
請依指示取代下列項目:
- ACL_POLICY_NAME:要取代 ACL 規則的 ACL 政策名稱
- REGION:ACL 政策所在的區域
您要取代的政策規則會授予 lucian 存取權,允許存取符合 c*che 模式的所有金鑰。例如:cache、caache 和 ceche。
從 ACL 政策中移除規則
如果 ACL 規則不再適用於 ACL 政策,您可以移除該規則。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL policies」。
找出要移除規則的 ACL 政策,然後依序點選「更多動作」圖示 (more_vert) 和「編輯」。
在「Edit policy」(編輯政策) 視窗中,找出要從政策中移除的規則,然後按一下旁邊的「Delete rule」(刪除規則) (delete)。
如要從政策中移除其他 ACL 規則,請重複步驟 4。
按一下 [儲存]。
gcloud
如要從 ACL 政策中移除規則,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update ACL_POLICY_NAME \ --region=REGION \ --remove-rules=rule="on ~set",username="lucian"
請將下列項目改為對應的值:
- ACL_POLICY_NAME:您要從中移除 ACL 規則的 ACL 政策名稱
- REGION:ACL 政策所在的區域
移除這項規則後,lucian 的相關權限就會撤銷。如要存取叢集,lucian 現在必須以 default 使用者身分連線,並受該使用者的權限限制。
從叢集移除 ACL 政策
如果 ACL 政策不再適用於 Memorystore for Redis Cluster 中的叢集,您可以將其移除。您可以使用Google Cloud 控制台或 gcloud CLI 移除政策。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
按一下要移除 ACL 政策的叢集 ID。
在「叢集一覽」頁面,捲動至「安全性」資訊卡。
按一下「ACL policy」欄位旁邊的「Edit」圖示 (edit)。
在「Edit ACL policy」(編輯 ACL 政策) 視窗中執行下列操作:
在「政策」選單中,選取「無政策」。
按一下「更新叢集」。
gcloud
如要從叢集中移除 ACL 政策,請使用 gcloud redis clusters update 指令。
gcloud redis clusters update CLUSTER_ID \ --acl-policy="" \ --region=REGION
請依指示取代下列項目:
- CLUSTER_ID:您要移除 ACL 政策的叢集 ID
- REGION:叢集所在的區域
acl-policy 參數的 "" 值是空白字串。這表示您要從叢集中移除 ACL 政策。
刪除 ACL 政策
如果不再需要 ACL 政策,可以將其刪除。您可以使用 Google Cloud 控制台或 gcloud CLI 刪除政策。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Redis Cluster」頁面。
在側邊導覽面板中,按一下「ACL 政策」。
找出要刪除的 ACL 政策,然後依序點選旁邊的「更多動作」圖示 (more_vert) 和「刪除」。
如果「刪除」選單項目已停用,表示政策已指派給叢集。如要刪除政策,請先從每個叢集中移除政策。
在「Delete policy」(刪除政策) 視窗中,執行下列操作:
在文字欄位中輸入政策名稱。
按一下「Delete」。
gcloud
如要刪除 ACL 政策,請使用 gcloud redis acl-policies delete 指令。
gcloud redis acl-policies delete ACL_POLICY_NAME \ --region=REGION
請將下列項目改為對應的值:
- ACL_POLICY_NAME:要刪除的 ACL 政策名稱
- REGION:ACL 政策所在的區域
停用 Lua 指令碼
您可以使用 ACL 政策管理叢集的 Lua 指令碼功能。停用或限制 Lua 指令碼可有效調整效能、簡化叢集功能,或遵守貴機構的安全防護指南。
停用使用者的指令碼指令
如要停用 Lua 指令碼,讓使用者無法執行,您必須使用 ACL 政策,並從使用者的 ACL 規則字串中移除指令碼指令的權限。
Redis 會將指令分組。Lua 指令碼屬於 @scripting 類別。您必須移除使用者權限的主要指令如下:
EVAL:執行以字串形式提供的 Lua 指令碼EVALSHA:執行使用SCRIPT LOAD指令快取的 Lua 指令碼SCRIPT:管理指令碼快取 (例如LOAD、FLUSH、EXISTS和KILL)SCRIPT指令包含下列子指令:
您可以為使用者停用所有指令碼指令,或停用特定指令。如要停用指令碼指令,請使用 gcloud CLI,並在指令或類別前加上減號 (-)。
為使用者停用所有指令碼指令
如要為使用者停用所有指令碼指令,請建立 ACL 政策並指派給叢集,或修改指派給叢集的 ACL 政策。
建立政策
如要建立 ACL 政策,為名為 lucian 的使用者停用所有指令碼指令,請使用 gcloud redis acl-policies create 指令。
gcloud redis acl-policies create POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all -@scripting",username=lucian
請依指示取代下列項目:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
修改政策
如要修改 ACL 政策,停用 lucian 的所有指令碼指令,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all -@scripting",username=lucian
請依指示取代下列項目:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
如果只想授予使用者所需的特定權限,請變更 +@all 值。舉例來說,如果您希望使用者只能存取唯讀指令,請將 +@all 變更為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Redis ACL 說明文件。
停用使用者的指令碼指令
您可以指定要為使用者停用哪些指令。舉例來說,您可以允許使用者執行所有指令碼指令,但 SCRIPT FLUSH 指令除外。如要為使用者停用指令碼指令,請建立 ACL 政策並指派給叢集,或修改指派給叢集的 ACL 政策。
您可以停用任何指令碼指令。在本節的範例中,您會為使用者停用 SCRIPT FLUSH 指令。如需指令碼指令清單,請參閱「為使用者停用指令碼指令」。
建立政策
如要建立 ACL 政策,停用 lucian 的 SCRIPT FLUSH 指令碼指令,請使用 gcloud redis acl-policies create 指令。
gcloud redis acl-policies create POLICY_NAME \ --region=REGION \ --rules=rule="on ~* -script|flush",username=lucian
請依指示取代下列項目:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
修改政策
如要修改 ACL 政策,停用 lucian 的所有指令碼指令,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update POLICY_NAME \ --region=REGION \ --rules=rule="on ~* -script|flush",username=lucian
請將下列項目改為對應的值:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
如果只想授予使用者所需的特定權限,請變更 +@all 值。舉例來說,如要讓使用者只能存取唯讀指令,請將 +@all 改為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Redis ACL 說明文件。
保護預設使用者
如要停用 default 超級使用者的指令碼權限,請建立 ACL 政策並指派給叢集,或修改指派給叢集的 ACL 政策。
建立政策
如要建立 ACL 政策,為 default 使用者停用所有指令碼指令,請使用 gcloud redis acl-policies create 指令。
gcloud redis acl-policies create POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all -@scripting",username=default
請依指示取代下列項目:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
修改政策
如要修改 ACL 政策,停用 default 使用者的所有指令碼指令,請使用 gcloud redis acl-policies update 指令。
gcloud redis acl-policies update POLICY_NAME \ --region=REGION \ --rules=rule="on ~* +@all -@scripting",username=default
請依指示取代下列項目:
- POLICY_NAME:ACL 政策的名稱
- REGION:ACL 政策所在的區域
如果只想授予 default 使用者所需的特定權限,請變更 +@all 值。舉例來說,如果只希望使用者存取唯讀指令,請將 +@all 變更為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Redis ACL 說明文件。
疑難排解
本節列出使用 ACL 政策時可能收到的錯誤訊息、這些訊息的原因,以及排解訊息問題的提示。
| 錯誤訊息 | 原因 | 疑難排解 |
|---|---|---|
username cannot be empty |
您在 ACL 政策中為使用者名稱設定了空字串或僅包含空白字元的字串。 | 使用英數字元或特殊字元做為使用者名稱。然後再次建立 ACL 政策。 |
duplicate username found in ACL policy |
ACL 政策中的使用者名稱重複。 | 請使用錯誤記錄找出重複的使用者名稱。修改 ACL 政策建立要求,為使用者名稱指定一項規則。然後再次建立 ACL 政策。 |
ACL rule token cannot contain token. use either
IAM or Basic Auth features to enable authentication
|
您無法在 ACL 政策中使用密碼字元 (例如 <、>、# 和 !) 或相關指令 (例如 nopass、resetpass 和 reset)。 |
從 ACL 政策規則中移除所有密碼字元和相關指令。然後再次建立 ACL 政策。如要設定驗證,請啟用基本驗證或以 IAM 為基礎的驗證。 |
passwords not allowed in ACL rules (token starts with
char). use either IAM or Basic Auth features to
enable authentication |
您無法在 ACL 政策中使用密碼字元 (例如 <、>、# 和 !) 或相關指令 (例如 nopass、resetpass 和 reset)。 |
從 ACL 政策規則中移除所有密碼字元和相關指令。然後再次建立 ACL 政策。如要設定驗證機制,請啟用基本驗證或以 IAM 為基礎的驗證機制。 |
invalid ACL rule syntax |
您未在 ACL 政策的一或多項規則中正確格式化存取字串。 | 正確設定存取字串格式。 |
ACL policy is in DELETING state and cannot be used |
您嘗試將 ACL 政策指派給叢集,但該政策的狀態為 DELETING。 |
為叢集指派其他 ACL 政策。 |
ACL_POLICY_IN_USE: ACL policy is in use by 1 or more clusters
|
您嘗試刪除的 ACL 政策已指派給至少一個叢集。 | 如要刪除 ACL 政策,請先從所有指派的叢集中移除。如要判斷哪些叢集已指派給政策,請參閱「查看 ACL 政策相關資訊」。 |
fast-failing the workflow as the resource is in DELETING
state |
您嘗試修改的 ACL 政策狀態為 DELETING。 |
如果 ACL 政策的狀態為「DELETING」,您就無法修改政策。 |