除了身分與存取權管理 (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
在這個指令中,USERNAME 和 TOKEN 是使用者的使用者名稱和驗證權杖。
如要進一步瞭解 AUTH 指令,請參閱 Valkey 說明文件中的「AUTH」。
使用 Google Cloud 控制台、Google Cloud CLI 和 API
如要使用 Google Cloud 控制台、gcloud CLI 和 API,請按照下列步驟操作:
- 在 Google Cloud 控制台的專案選擇器頁面中,選取或建立 Google Cloud 專案。
- 請確認您已為專案啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
安裝並初始化 Google Cloud CLI (gcloud CLI)。
注意:如果您已安裝 gcloud CLI,請執行
gcloud components update,確認您使用的是最新版本。如要存取 Memorystore for Valkey gcloud CLI 指令,您至少需要 gcloud CLI489.0.0版。-
啟用 Memorystore for Valkey API。
Memorystore for Valkey API -
啟用 Network Connectivity API。
Network Connectivity API -
啟用 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:為執行個體保留的通訊埠編號
在不停機的狀態下輪替使用者的驗證權杖
如要輪替使用者的驗證權杖,同時避免應用程式停機,請執行下列步驟:
- 為使用者建立額外的驗證權杖: Memorystore for Valkey 會產生第二個有效權杖。兩個權杖都有效。
- 更新應用程式:更新應用程式,改用新權杖。
- 刪除使用者的驗證權杖: Memorystore for Valkey 會移除第一個權杖。使用者只能使用第二個權杖驗證應用程式。
基本權杖式驗證的存取記錄
Memorystore for Valkey 會針對與驗證權杖和使用者相關聯的作業,產生管理員活動和資料存取稽核記錄。如要進一步瞭解這些稽核記錄,請參閱「使用稽核記錄監控存取權」。