使用 ACL 政策確保執行個體存取安全

在 Memorystore for Valkey 中使用存取控制清單 (ACL) 政策,即可確保執行個體的存取安全。您可以限制使用者和服務存取特定金鑰、指令和 Pub/Sub 管道,啟用精細的安全防護機制。

以下是使用 ACL 政策保護執行個體存取權的範例用途:

  • 提供角色式存取控管 (RBAC):為應用程式的不同元件建立不同的使用者設定檔。舉例來說,網頁前端可以具備唯讀存取權,而背景工作服務則具備讀取/寫入存取權。避免資料意外外洩或遭到竄改。
  • 避免破壞性指令:限制高階管理員才能使用危險指令,例如 FLUSHALLFLUSHDBCONFIG。確保資料完整性,避免軟體錯誤或人為錯誤。
  • 提供多租戶應用程式安全性:為不同微服務或外部合作夥伴使用不同的 ACL 使用者。確保某項服務的使用者無法讀取或修改其他服務擁有的金鑰。

    Memorystore for Valkey 不提供資源層級的多租戶。即使鍵空間已分割,單一服務仍可能耗用不成比例的記憶體或 CPU 資源。

  • 執行唯讀分析和監控:指派專屬使用者,只能使用 GET 或其他唯讀指令 (例如 SCANTYPE),用於分析引擎或資訊主頁應用程式。防止意外寫入或刪除資料。

  • 安全資料庫金鑰:限制應用程式只能與符合特定模式 (例如 app1:*) 的金鑰互動,在例項中提供資料的邏輯分離。

  • 停用 Lua 指令碼:使用 ACL 政策管理執行個體的 Lua 指令碼功能。停用或限制 Lua 指令碼有助於調整效能、簡化執行個體的功能,或遵守貴機構的安全防護指南。

事前準備

開始使用 ACL 政策前,請先完成本節中的操作說明。

使用 Google Cloud 控制台、Google Cloud CLI 和 API

如要使用 Google Cloud 控制台、Google Cloud CLI 和 API,請執行下列步驟:

  1. 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案

    注意:如果您不打算保留在這項程序中建立的資源,請建立新專案,而不要選取現有專案。這樣在完成這些步驟之後,您就可以刪除專案,並移除與該專案相關聯的所有資源。


    前往專案選取器
  2. 請確認您已為專案啟用計費功能。瞭解如何檢查專案是否已啟用計費功能
  3. 安裝初始化 Google Cloud CLI。

    注意:如果您先前已安裝 gcloud CLI,請執行 gcloud components update,確認目前使用的是最新版本。如要存取 Memorystore for Valkey gcloud CLI 指令,您至少需要 gcloud CLI 489.0.0 版。

  4. 啟用 Memorystore for Valkey API。
    Memorystore for Valkey
  5. 啟用 Network Connectivity API。
    Network Connectivity API
  6. 啟用 Service Consumer Management API。
    Service Consumer Management API

指派 Memorystore for Valkey 角色

請確認您或所用的使用者帳戶具備執行所需動作的必要權限

如要執行所有 ACL 政策作業,請使用 Memorystore 管理員 (roles/memorystore.admin) 和 Memorystore 編輯者 (roles/memorystore.editor) 角色。如要只查看 ACL 政策,請使用「Memorystore 檢視者」 (roles/memorystore.viewer) 角色。

指派 Memorystore for Valkey 權限

除了 Memorystore 管理員、編輯者和檢視者角色,如要在 Memorystore for Valkey 中使用 ACL 政策,您還需要下列權限:

動作 權限
建立 ACL 政策 memorystore.aclPolicies.create
將 ACL 政策指派給執行個體 memorystore.instances.update
查看 ACL 政策的相關資訊 memorystore.aclPolicies.list
查看 ACL 政策的相關資訊 memorystore.aclPolicies.get
查看 ACL 政策修訂版本資訊 memorystore.aclPolicyRevisions.list
查看 ACL 政策修訂版本資訊 memorystore.aclPolicyRevisions.get
修改 ACL 政策 memorystore.aclPolicies.update
從執行個體移除 ACL 政策 memorystore.instances.update
刪除 ACL 政策 memorystore.aclPolicies.delete

建立 ACL 政策

在 Memorystore for Valkey 中建立 ACL 政策,可限制使用者存取特定鍵、指令和 Pub/Sub 管道,進而提升執行個體的安全性。

您可以使用 Google Cloud 控制台或 gcloud CLI 建立 ACL 政策。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 在「ACL policies」頁面中,按一下「Create policy」

  4. 在「建立政策」視窗中,執行下列操作:

    1. 在「Policy name」(政策名稱) 欄位,輸入 ACL 政策的名稱。政策名稱只能使用小寫英文字母、數字和連字號,開頭須為英文字母,且於所在區域中不得重複。

    2. 從「Region」(區域) 選單中,選取要讓 Memorystore for Valkey 建立 ACL 政策的區域。

    3. 按一下「Add rule」(新增規則)

    4. 在「使用者 ID」欄位中,輸入要套用 ACL 政策的使用者名稱。

    5. 在「Access string」(存取字串) 欄位中,輸入政策的存取字串。 存取字串是使用者可判讀的規則,可定義使用者的特定權限。

      舉例來說,如要授予 default 超級使用者執行個體所有 ACL 金鑰的讀取和寫入權限,請填寫「使用者 ID」和「存取字串」欄位,如下所示:

      使用者 ID 存取字串
      default on ~* &* +@all

      這項規則會將下列權限授予 default 使用者:

      • on:使用者已啟用且可進行驗證
      • ~*:使用者擁有所有可能金鑰的讀取和寫入權限
      • &*:使用者可存取所有 Pub/Sub 管道
      • +@all:使用者可以執行所有可用指令

      如要進一步瞭解可建立的其他 ACL 規則和政策,請參閱 Valkey 說明文件中的「ACL」。

    6. 針對要為政策建立的其他 ACL 規則,重複執行步驟 c 到 e。

    7. 點選「建立」

gcloud

如要建立 ACL 政策,請使用 gcloud memorystore acl-policies create 指令。

gcloud memorystore acl-policies create ACL_POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all",username="lucian" \
--rules=rule="on +get",username="taylor"

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:您要建立的 ACL 政策名稱。政策名稱只能使用小寫英文字母、數字和連字號,開頭須為英文字母,且於所在區域中不得重複。
  • REGION:您要將 ACL 政策放在哪個區域。

這項政策使用基本的權杖型驗證機制,並包含可執行下列動作的規則:

  • 第一條規則會授予 lucian ~* +@all 權限。這項權限可讓使用者存取所有金鑰並執行所有指令。
  • 第二項規則會將 get 權限授予 taylor。這項權限可讓使用者擷取與金鑰相關聯的值。這項功能會限制使用者存取唯讀資料作業,並防止使用者修改金鑰。

如要為使用 Identity and Access Management (IAM) 驗證的 ACL 政策建立規則,建議您使用 IAM 主體做為使用者名稱 (例如使用者的電子郵件地址)。

gcloud memorystore acl-policies create ACL_POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all",username="lucian@example.com" \
--rules=rule="on +get",username="taylor@example.com"

如要為不使用驗證的 ACL 政策建立規則,使用者必須是 default 使用者。

gcloud memorystore acl-policies create ACL_POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all",username="default"

如要進一步瞭解基本的權杖型驗證和 IAM 驗證,請參閱「透過基本的權杖型驗證機制確保執行個體的存取安全」和「關於 IAM 驗證」。

如要進一步瞭解可建立的其他 ACL 規則和政策,請參閱 Valkey 說明文件中的 ACL

將 ACL 政策指派給執行個體

將 ACL 政策指派給執行個體,或取代已指派的政策後,Memorystore for Valkey 就能將政策規則套用至執行個體。因此,您可以限制使用者存取特定金鑰、指令和 Pub/Sub 管道。

您可以使用Google Cloud 控制台或 gcloud CLI,將 ACL 政策指派給執行個體。

將政策指派給新的執行個體

如要建立執行個體並將 ACL 政策指派給執行個體,請參閱「建立執行個體」一文。

將政策指派給現有執行個體

如要提高現有執行個體的安全性,可以為執行個體指派 ACL 政策。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 按一下要指派 ACL 政策的執行個體 ID。

  3. 在「執行個體一覽」頁面中,捲動至「安全性」資訊卡。

  4. 按一下「ACL policy」欄位旁邊的「Edit」 ()。

  5. 在「編輯 ACL 政策」視窗中,執行下列操作:

    1. 從「政策」選單中,選取要指派給執行個體的政策。

    2. 按一下「更新執行個體」

gcloud

如要將 ACL 政策指派給現有執行個體,請使用 gcloud memorystore instances update 指令。

gcloud memorystore instances update INSTANCE_ID \
--update_mask=acl_policy \
--acl-policy=ACL_POLICY_NAME \
--location=REGION

請將下列項目改為對應的值:

  • INSTANCE_ID:要指派 ACL 政策的執行個體 ID
  • ACL_POLICY_NAME:ACL 政策的名稱
  • REGION:執行個體所在的區域

查看 ACL 政策的相關資訊

查看 Memorystore for Valkey 中的 ACL 政策資訊,有助於維護安全性、確保環境運作穩定性,以及稽核記憶體內資料。這些政策會定義哪些使用者可以讀取或修改特定金鑰模式、執行特定指令,或是存取特定 Pub/Sub 管道。

您可以使用Google Cloud 控制台或 gcloud CLI 查看 ACL 政策的相關資訊。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

    在「ACL policies」頁面中,您可以查看每項 ACL 政策的下列資訊:

    • 政策 ID:政策的專屬 ID
    • 位置:政策所在的區域
    • 建立時間:政策建立的日期和時間
    • 更新時間:政策上次更新的日期和時間
    • 規則數量:政策的規則總數
    • 由執行個體使用:指派給政策的執行個體

gcloud

如要查看 ACL 政策的相關資訊,請使用 gcloud memorystore acl-policies list 指令。

gcloud memorystore acl-policies list
--location=REGION

REGION 替換為 ACL 政策所在的區域。

查看 ACL 政策的相關資訊

查看 Memorystore for Valkey 中的 ACL 政策資訊,有助於執行安全稽核、排解存取錯誤,以及驗證使用者指令、金鑰權限和 Pub/Sub 管道存取權,進而落實最低權限原則。此外,管理員可以查看 ACL 政策,確保應用程式擁有適當的存取權,並偵測過於寬鬆的規則。

您可以使用 gcloud CLI 查看 ACL 政策的相關資訊。如要查看這項資訊,請使用 gcloud memorystore acl-policies describe 指令。

gcloud memorystore acl-policies describe ACL_POLICY_NAME \
--location=REGION

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:要查看資訊的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

查看 ACL 政策修訂版本資訊

建立存取控管清單政策時,Memorystore for Valkey 會建立政策版本 (修訂版本)。每當您修改政策時,Memorystore for Valkey 就會建立後續的政策修訂版本。

由於 Memorystore for Valkey 會自動產生這些修訂版本,因此您可以將其用於內部追蹤和稽核。此外,您也可以查看修訂版本,瞭解每個歷史版本中 ACL 政策的確切內容。

使用 ACL 政策修訂版本,您可以追蹤哪些執行個體使用政策的哪個修訂版本。這有助於您掌握狀況,並確保在政策更新後,執行個體在最終一致性期間內使用正確版本。

您可以使用Google Cloud 控制台或 gcloud CLI,查看 ACL 政策修訂版本資訊。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 在「ACL policies」頁面中,按一下要查看修訂版本的 ACL 政策 ID。「ACL 政策修訂版本」頁面會顯示下列資訊:

    • 修訂版本 ID:每個 ACL 政策修訂版本的 ID
    • 修訂版本號碼:每個 ACL 政策修訂版本的號碼
    • 位置:每個 ACL 政策修訂版本所在的區域
    • 建立時間:每個存取控管清單政策修訂版本的建立日期和時間
    • 附加的執行個體指派給各個 ACL 政策修訂版本的執行個體
    • 快照:每個存取控管清單政策修訂版本的詳細資訊

gcloud

如要查看 ACL 政策修訂版本的相關資訊,請使用 gcloud memorystore acl-policies revisions list 指令。

gcloud memorystore acl-policies revisions list \
--acl-policy=ACL_POLICY_NAME \
--location=REGION

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:包含您要查看資訊的修訂版本的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

記下輸出內容中的修訂版本 ID,您需要這些 ID,才能查看特定 ACL 政策修訂版本的相關資訊。

查看 ACL 政策修訂版本資訊

查看 ACL 政策修訂版本時,您可以查看其規則、中繼資料,以及所有附加執行個體的清單。您可以使用 Google Cloud 控制台或 gcloud CLI,查看 ACL 政策修訂版本的相關資訊。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 在「ACL policies」頁面中,點選要查看修訂版本的 ACL 政策 ID。

  4. 在「ACL policy revisions」(存取控管清單政策修訂版本) 頁面中,點選要查看資訊的存取控管清單政策修訂版本旁的「Snapshot」(快照) 連結。

gcloud

如要查看 ACL 政策修訂版本的相關資訊,請使用 gcloud memorystore acl-policies revisions describe 指令。

gcloud memorystore acl-policies revisions describe ACL_POLICY_REVISION_ID \
--acl-policy=ACL_POLICY_NAME \
--location=REGION

請將下列項目改為對應的值:

  • ACL_POLICY_REVISION_ID:您要查看資訊的 ACL 政策修訂版本 ID。您在查看 ACL 政策修訂版本資訊時,會看到這個 ID。
  • ACL_POLICY_NAME:包含修訂版本的 ACL 政策名稱。
  • REGION:ACL 政策所在的區域。

修改 ACL 政策

在 Memorystore for Valkey 中修改 ACL 政策,可提高安全性、強制執行最小權限存取,以及管理作業安全。您可以使用 Google Cloud 控制台或 gcloud CLI 修改政策。

在 ACL 政策中新增規則

如要提高 ACL 政策的安全性,請在政策中新增規則。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 在要新增規則的 ACL 政策旁邊,按一下「更多動作」 (),然後選取「編輯」

  4. 在「編輯政策」視窗中,按一下「新增規則」

  5. 在「使用者 ID」欄位中,輸入要套用 ACL 政策的使用者名稱。

  6. 在「Access string」(存取字串) 欄位中,輸入政策的存取字串。如要進一步瞭解 ACL 政策的存取字串,請參閱「建立 ACL 政策」。

  7. 如要為政策新增其他 ACL 規則,請重複執行步驟 4 到 6。

  8. 按一下 [儲存]

gcloud

如要將規則新增至 ACL 政策,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update ACL_POLICY_NAME \
--location=REGION \
--add-rules=rule="on ~list:*",username="lucian"

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:您要新增 ACL 規則的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

這項規則會授予 lucian 存取所有以 list: 開頭的鍵。

修改 ACL 政策的規則

修改 ACL 政策的 ACL 規則可提高安全性、改善作業安全,並更精細地控管使用者存取權。舉例來說,您可以在事件應變期間撤銷權限,或啟用臨時存取權以進行偵錯。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 找出要修改規則的 ACL 政策,然後依序按一下「更多動作」圖示 () 和「編輯」

  4. 在「編輯政策」視窗中,按一下「新增規則」

  5. 在「User ID」(使用者 ID) 和「Access string」(存取字串) 欄位中,修改政策的使用者 ID 或存取字串。如要進一步瞭解 ACL 政策的存取字串,請參閱「建立 ACL 政策」。

  6. 如要修改政策的其他 ACL 規則,請重複執行步驟 4 和 5。

  7. 按一下 [儲存]

取代 ACL 政策的規則

與修改政策規則類似,取代政策規則可提供更嚴密的安全性、提升作業安全,以及更精細的使用者存取控管。

gcloud

如要取代 ACL 政策的規則,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update ACL_POLICY_NAME \
--location=REGION \
--rules=rule="on ~c*che",username="lucian"

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:要取代 ACL 規則的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

您要替換的政策規則會授予 lucian 存取權,允許存取所有符合 c*che 模式的金鑰。例如:cachecaacheceche

從 ACL 政策中移除規則

如果 ACL 規則不再適用於 ACL 政策,您可以移除該規則。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 找出要移除規則的 ACL 政策,然後依序按一下「更多動作」圖示 () 和「編輯」

  4. 在「編輯政策」視窗中,找出要從政策中移除的規則,然後按一下旁邊的「刪除規則」圖示 ()。

  5. 如要從政策中移除其他 ACL 規則,請重複執行步驟 4。

  6. 按一下 [儲存]

gcloud

如要從 ACL 政策移除規則,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update ACL_POLICY_NAME \
--location=REGION \
--remove-rules=rule="on ~set",username="lucian"

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:要移除 ACL 規則的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

移除這項規則會撤銷 lucian 的相關權限。如要存取執行個體,lucian 現在必須以 default 使用者身分連線,並受該使用者的權限限制。

從執行個體移除 ACL 政策

如果 ACL 政策不再適用於 Memorystore for Valkey 執行個體,您可以移除該政策。您可以使用Google Cloud 控制台或 gcloud CLI 移除政策。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 找出要移除 ACL 政策的執行個體,然後按一下該執行個體的 ID。

  3. 在「執行個體一覽」頁面中,捲動至「安全性」資訊卡。

  4. 按一下「ACL policy」欄位旁邊的「Edit」 ()。

  5. 在「編輯 ACL 政策」視窗中,執行下列操作:

    1. 從「政策」選單中選取「無政策」

    2. 按一下「更新執行個體」

gcloud

如要從執行個體移除 ACL 政策,請使用 gcloud memorystore instances update 指令。

gcloud memorystore instances update INSTANCE_ID \
--clear-acl-policy \
--location=REGION

請將下列項目改為對應的值:

  • INSTANCE_ID:您要移除 ACL 政策的執行個體 ID
  • REGION:執行個體所在的區域

刪除 ACL 政策

如果不再需要 ACL 政策,可以將其刪除。您可以使用 Google Cloud 控制台或 gcloud CLI 刪除政策。

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。

    Memorystore for Valkey

  2. 在側邊導覽面板中,按一下「ACL 政策」

  3. 找出要刪除的 ACL 政策,然後依序點選旁邊的「更多動作」圖示 () 和「刪除」

    如果「刪除」選單項目已停用,表示政策已指派給執行個體。如要刪除政策,請先從每個執行個體中移除政策。

  4. 在「Delete policy」(刪除政策) 視窗中,執行下列操作:

    1. 在文字欄位中輸入政策名稱。

    2. 按一下「Delete」

gcloud

如要刪除 ACL 政策,請使用 gcloud memorystore acl-policies delete 指令。

gcloud memorystore acl-policies delete ACL_POLICY_NAME \
--location=REGION

請將下列項目改為對應的值:

  • ACL_POLICY_NAME:要刪除的 ACL 政策名稱
  • REGION:ACL 政策所在的區域

停用 Lua 指令碼

您可以使用 ACL 政策管理執行個體的 Lua 指令碼功能。停用或限制 Lua 指令碼有助於調整效能、簡化執行個體的功能,或遵守貴機構的安全防護指南。

為使用者停用指令碼指令

如要停用 Lua 指令碼,禁止使用者執行,您必須使用 ACL 政策,並從使用者的 ACL 規則字串中移除指令碼指令的權限。

Valkey 會將指令分類到各個群組。Lua 指令碼屬於 @scripting 類別。您必須移除使用者權限的主要指令如下:

您可以為使用者停用所有指令碼指令,也可以停用特定指令。 如要停用指令碼指令,請使用 gcloud CLI,並在指令或類別前加上減號 (-)。

為使用者停用所有指令碼指令

如要為使用者停用所有指令碼指令,請建立 ACL 政策並指派給執行個體,或修改指派給執行個體的 ACL 政策。

建立政策

如要建立 ACL 政策,為名為 lucian 的使用者停用所有指令碼指令,請使用 gcloud memorystore acl-policies create 指令。

gcloud memorystore acl-policies create POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:要將 ACL 政策放在哪個區域

建立政策後,您必須將政策指派給現有執行個體。

修改政策

如要修改 ACL 政策,停用 lucian 的所有指令碼指令,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all -@scripting",username=lucian

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:ACL 政策所在的區域

如要只授予使用者所需的特定權限,請變更 +@all 值。舉例來說,如要讓使用者只能存取唯讀指令,請將 +@all 變更為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Valkey ACL 說明文件。

為使用者停用指令碼指令

您可以指定要為使用者停用的指令。舉例來說,您可以允許使用者執行所有指令碼指令,但 SCRIPT FLUSH 指令除外。如要為使用者停用指令碼指令,請建立 ACL 政策並指派給執行個體,或修改指派給執行個體的 ACL 政策。

您可以停用任何指令碼指令。在本節範例中,您會為使用者停用 SCRIPT FLUSH 指令。如需指令碼指令清單,請參閱「為使用者停用指令碼指令」。

建立政策

如要建立 ACL 政策,停用 lucianSCRIPT FLUSH 指令碼指令,請使用 gcloud memorystore acl-policies create 指令。

gcloud memorystore acl-policies create POLICY_NAME \
--location=REGION \
--rules=rule="on ~* -script|flush",username=lucian

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:要將 ACL 政策放在哪個區域

建立政策後,您必須將政策指派給現有執行個體。

修改政策

如要修改 ACL 政策,停用 lucian 的所有指令碼指令,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update POLICY_NAME \
--location=REGION \
--rules=rule="on ~* -script|flush",username=lucian

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:ACL 政策所在的區域

如要只授予使用者所需的特定權限,請變更 +@all 值。舉例來說,如要讓使用者只能存取唯讀指令,請將 +@all 變更為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Valkey ACL 說明文件。

保護預設使用者

如要停用 default 超級使用者的指令碼權限,請建立 ACL 政策並指派給執行個體,或修改指派給執行個體的 ACL 政策。

建立政策

如要建立 ACL 政策,停用 default 使用者的所有指令碼指令,請使用 gcloud memorystore acl-policies create 指令。

gcloud memorystore acl-policies create POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:要將 ACL 政策放在哪個區域

建立政策後,您必須將政策指派給現有執行個體。

修改政策

如要修改 ACL 政策,為 default 使用者停用所有指令碼指令,請使用 gcloud memorystore acl-policies update 指令。

gcloud memorystore acl-policies update POLICY_NAME \
--location=REGION \
--rules=rule="on ~* +@all -@scripting",username=default

請將下列項目改為對應的值:

  • POLICY_NAME:ACL 政策的名稱
  • REGION:ACL 政策所在的區域

如要只授予 default 使用者需要的特定權限,請變更 +@all 值。舉例來說,如要讓使用者只能存取唯讀指令,請將 +@all 變更為 +@read。如要進一步瞭解可設定的使用者權限,請參閱 Valkey 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 政策中使用密碼字元 (例如 <>#!) 或相關指令 (例如 nopassresetpassreset)。 從 ACL 政策的規則中,移除所有密碼字元和相關指令。然後再次建立 ACL 政策。如要設定驗證,請啟用基本驗證或以 IAM 為基礎的驗證
passwords not allowed in ACL rules (token starts with char). use either IAM or Basic Auth features to enable authentication 您無法在 ACL 政策中使用密碼字元 (例如 <>#!) 或相關指令 (例如 nopassresetpassreset)。 從 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 instances 您嘗試刪除的 ACL 政策已指派給至少一個執行個體。 如要刪除 ACL 政策,請先從所有已指派該政策的執行個體移除政策。如要判斷哪些執行個體已指派政策,請參閱「查看 ACL 政策的相關資訊」。
fast-failing the workflow as the resource is in DELETING state 您嘗試修改狀態為 DELETING 的 ACL 政策。 如果 ACL 政策的狀態為 DELETING,您就無法修改政策。