使用以權杖為準的基本驗證,確保執行個體的存取安全

除了身分與存取權管理 (IAM) 驗證,您也可以使用基本權杖驗證,確保對 Memorystore for Valkey 執行個體的存取安全。基本權杖式驗證是輕量型解決方案,可讓用戶端使用權杖在應用程式中驗證身分。

基本權杖式驗證的資源需求極低,資源負擔也很小。此外,如果您目前在 Memorystore for Redis 或地端部署應用程式上的工作負載,已使用基本權杖式驗證,那麼在遷移至 Memorystore for Valkey 時,這項功能可協助您順利轉換。

優點

使用基本權杖式驗證可享有下列好處:

  • 彈性:您可以隨時為新舊執行個體啟用驗證。啟用基本權杖型驗證後,執行個體就會受到保護。對於所有新連線,使用者必須提供驗證權杖,才能驗證執行個體。
  • 零停機時間輪替:輪替使用者權杖,不會造成應用程式停機。
  • 相容性default 超級使用者會保留授予這位使用者的權限。以權杖為基礎的基本驗證可多添一層保護。這樣一來,您將工作負載從 Memorystore for Redis 遷移至 Memorystore for Valkey 時,就能確保回溯相容性。

驗證模式

以權杖為基礎的基本驗證支援兩種主要驗證模式:

  • 簡單驗證:使用者傳送驗證權杖,將自己驗證為 default 使用者的簡單方法
  • 多使用者驗證:管理多位使用者,驗證存取執行個體的權限

最佳做法

為確保安全性,建議您採用下列最佳做法,進行基本權杖式驗證:

  • 輪替使用者權杖:為使用者權杖採用輪替政策
  • 使用 Secret Manager:請勿在應用程式程式碼中,以硬式編碼方式加入使用者的基本權杖式驗證憑證。請改為將密鑰儲存在 Secret Manager 中,並在執行階段擷取。

    Secret Manager 提供集中式加密保管庫,可存放使用者憑證,因此能避免密鑰散布,並減少手動管理憑證的作業負擔。並使用 IAM 強制執行存取控管,以及自動產生稽核記錄。確保符合規定,並防止憑證外洩。

  • 將基本憑證式驗證與傳輸層安全標準 (TLS) 結合使用: 使用基本憑證式驗證時,建議您啟用傳輸中加密。確保使用者名稱和驗證權杖不會透過網路以純文字傳送。

事前準備

開始使用基本權杖式驗證保護執行個體安全之前,請先完成本節中的必要條件。

確認用戶端支援以基本權杖為基礎的驗證

如要確認用戶端應用程式是否支援基本權杖型驗證,請確保應用程式可以使用 AUTH 指令。

default 使用者會透過下列指令,向用戶端應用程式進行驗證:

AUTH TOKEN

這個指令的 TOKEN 是預設使用者的驗證權杖。

其他使用者則使用下列指令進行驗證:

AUTH USERNAME TOKEN

在這個指令中,USERNAMETOKEN 是使用者的使用者名稱和驗證權杖。

如要進一步瞭解 AUTH 指令,請參閱 Valkey 說明文件中的「AUTH」。

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

如要使用 Google Cloud 控制台、gcloud CLI 和 API,請按照下列步驟操作:

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

    前往專案選取器

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

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

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

指派角色

如要為執行個體設定基本權杖式驗證,您必須在 Google Cloud 專案中擁有下列其中一個 IAM 角色

  • roles/memorystore.admin (Memorystore 管理員角色)
  • roles/owner (擁有者角色)
  • roles/editor (編輯者角色)

管理執行個體的基本權杖式驗證

Memorystore for Valkey 支援下列動作,可管理執行個體的基本權杖式驗證:

使用基本權杖型驗證建立執行個體

建立採用基本權杖式驗證的執行個體,即可使用輕量級且廣泛支援的方法,限制使用者存取執行個體。

您可以使用 gcloud CLI 建立執行個體。

如要建立啟用基本權杖式驗證的執行個體,請使用 gcloud beta memorystore instances create 指令。

gcloud beta memorystore instances create INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

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

  • INSTANCE_ID:您要建立的執行個體 ID,用於基本權杖式驗證
  • REGION:您希望執行個體所在的區域

為執行個體啟用基本權杖型驗證

為執行個體啟用基本權杖式驗證後,您就能以輕量且廣泛支援的方法,限制使用者存取執行個體。

default使用者只要使用權杖,即可向執行個體進行驗證。 其他所有使用者則透過標準使用者名稱和權杖進行驗證。詳情請參閱「確認用戶端支援以權杖為基礎的基本驗證」。

啟用基本權杖式驗證後,嘗試建立新連線的應用程式可能會停機,因為 Memorystore for Valkey 需要經過驗證的要求。現有連線不會受到影響,但如要對後續的執行個體連線嘗試使用基本權杖式驗證,就必須更新應用程式。詳情請參閱「使用基本權杖式驗證連線至執行個體」。

您可以使用 gcloud CLI 為執行個體啟用基本權杖型驗證。

如要啟用基本權杖驗證,請使用 gcloud beta memorystore instances update 指令。

gcloud beta memorystore instances update INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

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

  • INSTANCE_ID:您要為其啟用基本權杖式驗證的執行個體 ID
  • REGION:執行個體所在的區域

為執行個體建立以權杖為基礎的基本驗證使用者

為執行個體建立基本權杖式驗證使用者,即可設定執行個體以允許多使用者驗證。使用者首次登入後,這種驗證模式會做為新連線的安全憑證,且可撤銷。使用者可以繼續使用驗證權杖,直到刪除權杖或使用者遭移除為止。

您可以使用 gcloud CLI 建立基本權杖式驗證使用者。

如要建立使用者,請使用 gcloud beta memorystore instances create-token-auth-user 指令。

gcloud beta memorystore instances create-token-auth-user INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

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

  • INSTANCE_ID:您要為其建立基本權杖式驗證使用者的執行個體 ID
  • REGION:執行個體所在的區域
  • USERNAME:使用者的使用者名稱

列出執行個體的基本權杖式驗證使用者

您可以使用 gcloud CLI,擷取執行個體的基本權杖型驗證使用者清單。

如要列出使用者,請使用 gcloud beta memorystore instances token-auth-users list 指令。

gcloud beta memorystore instances token-auth-users list \
--instance=INSTANCE_ID \
--location=REGION

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

  • INSTANCE_ID:要擷取基本權杖式驗證使用者清單的例項 ID
  • REGION:執行個體所在的區域

查看基本權杖驗證使用者的相關資訊

您可以使用 gcloud CLI 查看基本權杖型驗證使用者的相關資訊。

如要查看使用者資訊,請使用 gcloud beta memorystore instances token-auth-users describe 指令。

gcloud beta memorystore instances token-auth-users describe USERNAME \
--instance=INSTANCE_ID \
--location=REGION

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

  • USERNAME:您要查看資訊的基本權杖式驗證使用者名稱
  • INSTANCE_ID:使用者可驗證的執行個體 ID
  • REGION:執行個體所在的區域

從執行個體中刪除以基本權杖為基礎的驗證使用者

從執行個體中刪除基本權杖式驗證使用者,即可撤銷該使用者對執行個體的存取權。

您可以使用 gcloud CLI,從執行個體中刪除基本權杖式驗證使用者。

如要刪除使用者,請使用 gcloud beta memorystore instances token-auth-users delete 指令。

gcloud beta memorystore instances token-auth-users delete USERNAME \
--instance=INSTANCE_ID \
--location=REGION

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

  • USERNAME:以基本權杖為基礎的驗證使用者名稱
  • INSTANCE_ID:您要從中刪除使用者的執行個體 ID
  • REGION:執行個體所在的區域

針對要刪除的使用者,Memorystore for Valkey 不會終止現有連線。如要終止這些連線,請在執行個體中的所有節點上執行下列指令:

CLIENT KILL USER USERNAME

管理使用者的基本權杖式驗證

Memorystore for Valkey 支援下列動作,可管理使用者的基本權杖式驗證:

為使用者建立驗證權杖

為使用者建立驗證權杖後,您就能輪替使用者的現有權杖,不必讓應用程式停機。

您可以使用 gcloud CLI 為使用者建立驗證權杖。

如要建立使用者,請使用 gcloud beta memorystore instances token-auth-users create-auth-token 指令。

gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \
--instance=INSTANCE_ID \
--location=REGION

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

  • USERNAME:您要為其建立驗證權杖的使用者名稱
  • INSTANCE_ID:使用者可使用權杖存取的執行個體 ID
  • REGION:執行個體所在的區域

列出使用者的驗證權杖

您可以使用 gcloud CLI 擷取使用者的驗證權杖清單。

如要列出權杖,請使用 gcloud beta memorystore instances token-auth-users auth-tokens list 指令。

gcloud beta memorystore instances token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--instance=INSTANCE_ID \
--location=REGION

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

  • USERNAME:驗證權杖所屬使用者的使用者名稱
  • INSTANCE_ID:使用者可透過驗證權杖存取的執行個體 ID
  • REGION:執行個體所在的區域

查看使用者的驗證權杖相關資訊

您可以使用 gcloud CLI 查看使用者驗證權杖的相關資訊。

如要查看資訊,請使用 gcloud beta memorystore instances token-auth-users auth-tokens describe 指令。

gcloud beta memorystore instances token-auth-users auth-tokens describe AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

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

  • AUTH_TOKEN:要查看資訊的驗證權杖名稱
  • INSTANCE_ID:使用者可使用權杖存取的執行個體 ID
  • REGION:執行個體所在的區域
  • USERNAME:驗證權杖所屬使用者的使用者名稱

刪除使用者的驗證權杖

從使用者刪除驗證權杖是重要的安全措施,可讓權杖失效。

您可以使用 gcloud CLI 刪除使用者的驗證權杖。

如要刪除權杖,請使用 gcloud beta memorystore instances token-auth-users auth-tokens delete 指令。

gcloud beta memorystore instances token-auth-users auth-tokens delete AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

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

  • AUTH_TOKEN:要從使用者刪除的驗證權杖名稱
  • INSTANCE_ID:您要刪除權杖,防止使用者存取的執行個體 ID
  • REGION:執行個體所在的區域
  • USERNAME:要刪除權杖的使用者名稱

使用基本權杖型驗證機制連線至執行個體

您可以使用下列方法,透過基本權杖式驗證連線至執行個體:

  • 統一資源識別碼 (URI) 字串:這個格式化的單一字串非常方便,因為所有必要的連線資訊 (例如使用者的使用者名稱和驗證權杖,以及執行個體的 IP 位址和主機名稱) 都包含在一個字串中。
  • 旗標:這個方法較適合用於個別指令列工具、指令碼,或設定分成多個獨立環境變數的環境 (使用多個獨立引數)。

以下各節將說明每種連線方法。

使用 URI 字串

如要從 Compute Engine VM 或支援的環境使用 URI 字串連線,請使用下列指令:

valkey-cli -u
redis://USERNAME:TOKEN@IP_ADDRESS:PORT

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

  • USERNAME:嘗試連線至執行個體的使用者名稱
  • TOKEN:使用者的驗證權杖
  • IP_ADDRESS:執行個體的 IP 位址
  • PORT:為執行個體保留的通訊埠編號

使用旗標

如要從 Compute Engine VM 或支援的環境使用旗標連線,請執行下列指令:

valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT

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

  • USERNAME:嘗試連線至執行個體的使用者名稱
  • TOKEN:使用者的驗證權杖
  • IP_ADDRESS:執行個體的 IP 位址
  • PORT:為執行個體保留的通訊埠編號

在不停機的狀態下輪替使用者的驗證權杖

如要輪替使用者的驗證權杖,同時避免應用程式停機,請執行下列步驟:

  1. 為使用者建立額外的驗證權杖: Memorystore for Valkey 會產生第二個有效權杖。兩個權杖都有效。
  2. 更新應用程式:更新應用程式,改用新權杖。
  3. 刪除使用者的驗證權杖: Memorystore for Valkey 會移除第一個權杖。使用者只能使用第二個權杖驗證應用程式。

基本權杖式驗證的存取記錄

Memorystore for Valkey 會針對與驗證權杖和使用者相關聯的作業,產生管理員活動和資料存取稽核記錄。如要進一步瞭解這些稽核記錄,請參閱「使用稽核記錄監控存取權」。