除了 Identity and Access Management (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
授予角色
如要設定以權杖為依據的基本驗證機制,或查看執行個體的驗證權杖,您需要專案的 Memorystore 管理員 (roles/memorystore.admin) IAM 角色。 Google Cloud 如要進一步瞭解如何授予這個角色,請參閱「存取控管」。
管理執行個體的基本權杖型驗證
Memorystore for Valkey 支援下列操作,可管理執行個體的基本權杖型驗證:
- 建立具有基本權杖型驗證機制的執行個體
- 為執行個體啟用基本的權杖型驗證機制
- 為執行個體建立基本的權杖型驗證使用者
- 列出執行個體的基本權杖型驗證使用者
- 查看基本權杖型驗證使用者的相關資訊
- 從執行個體中刪除基本權杖型驗證使用者
建立採用基本權杖型驗證機制的執行個體
建立採用基本權杖型驗證機制的執行個體,即可透過輕量且廣受支援的方法,限制使用者對執行個體的存取權。
您可以使用 Google Cloud 控制台或 gcloud CLI 建立執行個體。
控制台
如要建立執行個體並啟用基本權杖型驗證,請參閱「建立執行個體」。
gcloud
如要建立執行個體並啟用基本的權杖型驗證機制,請使用 gcloud memorystore instances create 指令。
gcloud memorystore instances create INSTANCE_ID \ --location=REGION \ --authorization-mode=token-auth
請依指示取代下列項目:
- INSTANCE_ID:要建立並使用基本權杖型驗證的執行個體 ID
- REGION:執行個體所在的區域
為執行個體啟用基本的權杖型驗證機制
為執行個體啟用基本的權杖型驗證機制後,您就能透過輕量且廣泛支援的方法,限制使用者存取執行個體。
default 使用者只要使用權杖,即可向執行個體驗證身分。其他使用者則會使用標準使用者名稱和權杖進行驗證。詳情請參閱「確認用戶端支援基本權杖型驗證」。
啟用基本的權杖驗證機制後,如果應用程式嘗試建立新連線,可能會發生停機,因為 Memorystore for Valkey 需要經過驗證的要求。雖然現有連線不受影響,但如要使用基本的權杖型驗證機制,對執行個體進行後續連線嘗試,您必須更新應用程式。詳情請參閱「使用基本權杖型驗證連線至執行個體」。
您可以使用 Google Cloud 控制台或 gcloud CLI,為執行個體啟用基本權杖型驗證。
控制台
前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。
按一下要啟用基本權杖型驗證機制的執行個體。
在「執行個體一覽」頁面中,捲動至「安全性」資訊卡。
按一下「Auth Mode」(驗證模式) 欄位旁的「Edit」(編輯) 圖示 edit。
如果欄位旁顯示「IAM Auth」或「Token Auth」,表示您已為執行個體啟用 IAM 驗證或基本權杖驗證。
在「Auth Mode」對話方塊中,選取「Token Auth」選項,然後按一下「Update instance」。
gcloud
如要啟用基本的權杖型驗證機制,請使用 gcloud memorystore instances update 指令。
gcloud memorystore instances update INSTANCE_ID \ --location=REGION \ --authorization-mode=token-auth
請依指示取代下列項目:
- INSTANCE_ID:要啟用基本權杖型驗證機制的執行個體 ID
- REGION:執行個體所在的區域
為執行個體建立基本權杖型驗證使用者
為執行個體建立基本的權杖型驗證使用者,即可設定執行個體,允許多使用者驗證。使用者首次登入後,這種驗證模式會做為安全且可撤銷的憑證,用於新的連線。使用者可以繼續使用驗證權杖,直到刪除權杖或使用者遭移除為止。
您可以使用 Google Cloud 控制台或 gcloud CLI,建立以權杖為基礎的基本驗證使用者。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Valkey」頁面。
按一下要建立基本權杖型驗證使用者的執行個體。
在導覽匣中,按一下「使用者」選單項目。
如果抽屜式選單中未顯示這個選單項目,表示您尚未建立具有基本驗證的例項,或為例項啟用以基本權杖為依據的驗證機制。
在「使用者」頁面,按一下「新增使用者」。
在「Add user」(新增使用者) 對話方塊中,輸入使用者 ID,然後按一下「Add」(新增)。
gcloud
如要建立使用者,請使用 gcloud memorystore instances create-token-auth-user 指令。
gcloud memorystore instances create-token-auth-user INSTANCE_ID \ --location=REGION \ --token-auth-user=USERNAME
請將下列項目改為對應的值:
- INSTANCE_ID:要建立基本權杖型驗證使用者的執行個體 ID
- REGION:執行個體所在的區域
- USERNAME:使用者的使用者名稱
列出執行個體的基本權杖型驗證使用者
您可以使用 Google Cloud 控制台或 gcloud CLI,擷取執行個體的基本權杖型驗證使用者清單。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Valkey」頁面。
按一下要擷取基本權杖型驗證使用者清單的執行個體。
在導覽匣中,按一下「使用者」選單項目。「Users」(使用者) 頁面會顯示基本權杖型驗證使用者清單。
如果導覽匣中沒有顯示「使用者」選單項目,表示您尚未建立具有基本驗證的執行個體,或為執行個體啟用基本的權杖型驗證機制。
gcloud
如要列出使用者,請使用 gcloud memorystore instances token-auth-users list 指令。
gcloud memorystore instances token-auth-users list \ --instance=INSTANCE_ID \ --location=REGION
請依指示取代下列項目:
- INSTANCE_ID:您要擷取基本權杖型驗證使用者清單的執行個體 ID
- REGION:執行個體所在的區域
查看基本權杖型驗證使用者的相關資訊
您可以使用 gcloud CLI,查看基本權杖型驗證使用者的相關資訊。
如要查看使用者資訊,請使用 gcloud memorystore instances token-auth-users describe 指令。
gcloud memorystore instances token-auth-users describe USERNAME \ --instance=INSTANCE_ID \ --location=REGION
請依指示取代下列項目:
- USERNAME:要查看資訊的基本權杖型驗證使用者名稱
- INSTANCE_ID:使用者可驗證的執行個體 ID
- REGION:執行個體所在的區域
從執行個體中刪除基本權杖型驗證使用者
從執行個體刪除基本權杖型驗證使用者,即可撤銷該使用者對執行個體的存取權。
如要從執行個體刪除基本權杖型驗證使用者,請使用 Google Cloud 控制台或 gcloud CLI。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Valkey」頁面。
按一下要刪除基本權杖型驗證使用者的執行個體。
在導覽匣中,按一下「使用者」選單項目。
如果抽屜式選單中未顯示該選單項目,表示您尚未建立具有基本驗證的例項,或為例項啟用基本權杖型驗證。
在「使用者」頁面中,找出要刪除的使用者 ID,然後按一下旁邊的「動作」圖示 more_vert。
在隨即顯示的選單中,選取「移除使用者」。
在「Delete user?」(要刪除使用者嗎?) 對話方塊中,輸入使用者 ID,然後按一下「Delete」(刪除)。Memorystore for Valkey 會刪除使用者,以及與該使用者相關聯的所有驗證權杖。
選用:針對要刪除的使用者,Memorystore for Valkey 不會終止現有連線。如要結束這些連線,請在執行個體的所有節點上執行下列指令:
CLIENT KILL USER USERNAME
gcloud
如要刪除使用者,請使用 gcloud memorystore instances token-auth-users delete 指令。
gcloud memorystore instances token-auth-users delete USERNAME \ --instance=INSTANCE_ID \ --location=REGION
請將下列項目改為對應的值:
- USERNAME:基本權杖型驗證使用者的使用者名稱
- INSTANCE_ID:要刪除使用者的執行個體 ID
- REGION:執行個體所在的區域
針對您要刪除的使用者,Memorystore for Valkey 也會刪除與該使用者相關聯的所有驗證權杖。此外,Memorystore for Valkey 不會終止現有連線。如要結束這些連線,請在執行個體的所有節點上執行下列指令:
CLIENT KILL USER USERNAME
管理使用者的基本權杖型驗證
Memorystore for Valkey 支援下列動作,可管理使用者的基本權杖式驗證:
為使用者建立驗證權杖
當您為執行個體建立基本的權杖型驗證使用者時,Memorystore for Valkey 會自動為使用者建立驗證權杖。不過,您可以為使用者建立額外的驗證權杖。這樣做即可輪替現有使用者權杖,不會造成應用程式停機。
您可以使用 Google Cloud 控制台或 gcloud CLI,為使用者建立驗證權杖。
控制台
在 Google Cloud 控制台中,前往「Memorystore for Valkey」頁面。
按一下要為使用者建立驗證權杖的執行個體。
在導覽匣中,按一下「使用者」選單項目。
如果選單項目未顯示在導覽匣中,表示您尚未建立採用基本驗證機制的執行個體,或為執行個體啟用基本權杖型驗證機制。
在「Users」(使用者) 頁面中,找出要建立驗證權杖的使用者 ID,然後按一下旁邊的「Actions」(動作) (more_vert)。
在隨即顯示的選單中,選取「新增驗證權杖」。
在「Add auth token」對話方塊中,按一下「Add」。
如果使用者已有兩個驗證權杖,您必須先刪除現有權杖,才能為使用者建立其他權杖。
gcloud
如要建立權杖,請使用 gcloud memorystore instances token-auth-users create-auth-token 指令。
gcloud memorystore instances token-auth-users create-auth-token USERNAME \ --instance=INSTANCE_ID \ --location=REGION
請依指示取代下列項目:
- USERNAME:要建立驗證權杖的使用者名稱
- INSTANCE_ID:使用者可透過權杖存取的執行個體 ID
- REGION:執行個體所在的區域
如果使用者已有兩個驗證權杖,您必須刪除現有權杖,才能為該使用者建立另一個權杖。
列出使用者的驗證權杖
您可以使用 gcloud CLI 擷取使用者的驗證權杖清單。
如要列出權杖,請使用 gcloud memorystore instances token-auth-users auth-tokens list 指令。
gcloud memorystore instances token-auth-users auth-tokens list \ --token-auth-user=USERNAME \ --instance=INSTANCE_ID \ --location=REGION
請依指示取代下列項目:
- USERNAME:驗證權杖所屬使用者的使用者名稱
- INSTANCE_ID:使用者可透過驗證權杖存取的執行個體 ID
- REGION:執行個體所在的區域
查看使用者的驗證權杖資訊
您可以使用 Google Cloud 控制台或 gcloud CLI,查看使用者的驗證權杖相關資訊。
控制台
前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。
按一下含有您要查看資訊的使用者驗證權杖的執行個體。
在導覽匣中,按一下「使用者」選單項目。
如果抽屜式選單中未顯示該選單項目,表示您尚未建立具有基本驗證的例項,或為例項啟用基本權杖型驗證。
在「使用者」頁面中,按一下使用者 ID 旁邊的「動作」(more_vert)。
在隨即顯示的選單中,選取「查看驗證權杖」。「Auth tokens」(驗證權杖)對話方塊會顯示下列資訊:
- 使用者的 ID。
- 使用者擁有的驗證權杖數量 (一或兩個)。
- 每個驗證權杖的版本,以及 Memorystore for Valkey 建立各個版本的日期和時間。每當您為使用者建立驗證權杖,Memorystore for Valkey 都會建立遞增版本的權杖。
- 驗證權杖。
選用:如要取得使用者的驗證權杖,以便連線至執行個體,請按一下權杖旁的「複製」圖示 (content_copy),然後將權杖貼到文字編輯器中。
按一下「完成」。
gcloud
如要查看資訊,請使用 gcloud memorystore instances token-auth-users auth-tokens describe 指令。
gcloud 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:驗證權杖所屬使用者的使用者名稱
刪除使用者的驗證權杖
刪除使用者的驗證權杖是重要的安全性動作,會使權杖失效。
您可以使用 Google Cloud 控制台或 gcloud CLI,刪除使用者的驗證權杖。
控制台
前往 Google Cloud 控制台的「Memorystore for Valkey」頁面。
按一下要刪除驗證權杖的使用者所在的執行個體。
在導覽匣中,按一下「使用者」選單項目。
如果抽屜式選單中未顯示該選單項目,表示您尚未建立具有基本驗證的例項,或為例項啟用基本權杖型驗證。
在「Users」(使用者) 頁面中,找出要刪除驗證權杖的使用者 ID,然後按一下旁邊的「Actions」(動作) (more_vert)。
在隨即顯示的選單中,選取「刪除驗證權杖」。
在「Delete Auth Token?」(要刪除驗證權杖嗎?) 對話方塊中,執行下列操作:
- 在「驗證權杖」選單中,選取要刪除的驗證權杖。
- 在「Auth token ID」(授權權杖 ID) 欄位中,輸入權杖版本號碼 (例如
version-1)。 - 點選「刪除」。
gcloud
如要刪除權杖,請使用 gcloud memorystore instances token-auth-users auth-tokens delete 指令。
gcloud 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:使用者的驗證權杖。
如果提供的權杖不正確或無效,就無法連線至執行個體。Memorystore for Valkey 會在資料存取稽核記錄中,為這項操作建立項目。您可以查看記錄檔,偵測安全威脅,或排解因權杖過期或格式不正確而導致的連線問題。如要進一步瞭解如何查看資料存取稽核記錄,請參閱「查看記錄」。
IP_ADDRESS:執行個體的 IP 位址。
PORT:為執行個體保留的通訊埠編號。
如果您在執行個體上啟用傳輸中加密,則必須使用安全通訊協定 (rediss://) 並附加 TLS 旗標。例如:
valkey-cli -u rediss://USERNAME:TOKEN@IP_ADDRESS:PORT --tls --cacert /tmp/server_ca.pem
使用旗標
如要使用旗標從 Compute Engine VM 或支援的環境連線,請使用下列指令:
valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT
請依指示取代下列項目:
- USERNAME:嘗試連線至執行個體的使用者名稱。
TOKEN:使用者的驗證權杖。
如果提供的權杖不正確或無效,就無法連線至執行個體。Memorystore for Valkey 會在資料存取稽核記錄中,為這項操作建立項目。您可以查看記錄,偵測安全性威脅,或排解因權杖過期或格式不正確而造成的連線問題。如要進一步瞭解如何查看資料存取稽核記錄,請參閱「查看記錄」。
IP_ADDRESS:執行個體的 IP 位址。
PORT:為執行個體保留的通訊埠編號。
如果您在執行個體上啟用傳輸中資料加密,就必須附加 TLS 旗標。例如:
valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT --tls --cacert /tmp/server_ca.pem
在不停機的情況下輪換使用者的驗證權杖
如要輪換使用者的驗證權杖,同時避免應用程式停機,請按照下列步驟操作:
- 為使用者建立額外的驗證權杖: Memorystore for Valkey 會產生第二個有效權杖。兩個權杖都有效。
- 更新應用程式:更新應用程式以使用新權杖。
- 刪除使用者的驗證權杖: Memorystore for Valkey 會移除第一個權杖。使用者只能使用第二個權杖,在您的應用程式中進行驗證。
基本權杖型驗證的存取記錄
Memorystore for Valkey 會針對與驗證權杖和使用者相關聯的作業,產生管理員活動和資料存取稽核記錄。如要進一步瞭解這些稽核記錄,請參閱「使用稽核記錄監控存取權」。