您可以安全地加密用戶端應用程式與 Memorystore for Redis Cluster 之間的所有資料。這就是傳輸加密。使用傳輸中加密功能後,所有 Redis 流量都會透過傳輸層安全標準 (TLS) 通訊協定加密。這可確保應用程式與 Memorystore for Redis Cluster 之間的所有資料傳輸作業,都維持機密且未遭竄改。
啟用傳輸中資料加密功能後,Redis 用戶端僅會透過安全連線進行通訊。系統會封鎖未設定 TLS 的 Redis 用戶端。如果您選擇使用傳輸中加密,則必須確保 Redis 用戶端可以使用 TLS 通訊協定。
使用傳輸中加密的叢集有憑證授權單位 (CA)。您可以使用 CA 驗證叢集中機器的憑證。
您可以使用的 CA 模式之一是每個執行個體一個 CA。Memorystore for Redis Cluster 會為每個叢集提供專屬的叢集根憑證授權單位基礎架構。如要安全地存取叢集,您必須設定用戶端應用程式,信任這個 CA 層級。這包括在會存取叢集的各個用戶端下載並安裝 CA 憑證。
建立使用每個執行個體 CA 的叢集
控制台
請按照「建立執行個體」中的步驟操作。
gcloud
如要建立使用每個執行個體 CA 的叢集,請使用 gcloud redis clusters create 指令。
gcloud redis clusters create CLUSTER_ID \ --region=REGION_ID \ --network=NETWORK \ --replica-count=REPLICA_COUNT \ --node-type=NODE_TYPE \ --shard-count=SHARD_COUNT \ --transit-encryption-mode=server-authentication \ --server-ca-mode=google-managed-per-instance-ca
請替換下列項目:
CLUSTER_ID:您要建立的叢集 ID。叢集 ID 的長度須介於 1 至 63 個字元之間,而且只能使用小寫英文字母、數字或連字號。開頭必須是小寫英文字母,結尾則須為小寫英文字母或數字。
REGION_ID:叢集所在的區域。
NETWORK:用於建立叢集的網路。格式必須為
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID。您使用的網路 ID 必須與服務連線政策使用的網路 ID 相符。否則無法建立叢集。REPLICA_COUNT:副本數量 (每個分片)。可接受的值為
0到5。NODE_TYPE:叢集的節點類型。
SHARD_COUNT:叢集中的分片數量。資料分割數量決定了儲存叢集資料的記憶體總容量。如要進一步瞭解叢集規格,請參閱「叢集和節點規格」。
server-ca-mode 參數代表叢集的 CA 模式。如果是每個執行個體專屬的 CA,google-managed-per-instance-ca 是參數的值。如未使用這個參數,預設的 CA 模式為每個執行個體。
例如:
gcloud redis clusters create my-cluster \ --region=us-central1 \ --network=projects/my-network-project/global/networks/default \ --replica-count=1 \ --node-type=redis-highmem-medium \ --shard-count=3 \ --transit-encryption-mode=server-authentication \ --server-ca-mode=google-managed-per-instance-ca
下載 CA
如果為叢集啟用傳輸中加密功能,使用 get-cluster-certificate-authority 指令時,系統會顯示 CA 的憑證。
gcloud redis clusters get-cluster-certificate-authority CLUSTER_ID
將 CLUSTER_ID 替換為叢集 ID。
回應主體會包含所有適用 CA 的憑證。
在用戶端安裝 CA 憑證
您必須在連線至叢集的用戶端上安裝 CA 憑證。 視用戶端類型而定,安裝 CA 憑證的方式可能有所不同。
如要在 Compute Engine Linux VM 上安裝 CA 憑證,請執行下列操作:
使用 SSH 連線至 Compute Engine Linux 用戶端。
在用戶端中,使用下列指令建立
server_ca.pem檔案:sudo vim /tmp/server_ca.pem
下載 CA,然後貼到
server_ca.pem檔案中。您必須正確設定 CA 文字的格式。系統可能會顯示
server_ca.pem檔案,如下所示:-----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1 MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H 8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0 3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh 1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3 84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7 xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn 662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g lEtWs4V/YBhKA56CW6ASZS8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4 ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2 MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD 8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6 97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq 5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM 0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9 9DmrfdF0eFrfWw3VRNLwwXg= -----END CERTIFICATE-----
如上一個範例所示,檔案應遵循下列規範:
複製整個 CA,包括
-----BEGIN CERTIFICATE-----和
-----END CERTIFICATE-----行。請確認 CA 的文字完全靠左對齊。確認 CA 的任何一行前面都沒有空格。
逐行新增每個 CA。確認 CA 之間沒有空白行。
設定用戶端,啟用傳輸中資料加密功能
用來連線至叢集的用戶端必須支援 TLS,或使用第三方 Sidecar 啟用 TLS。
如果用戶端支援 TLS,請將其設定為指向叢集的 IP 位址、通訊埠 6379,以及包含 CA 的檔案。您可以查看如何連線至啟用傳輸中加密的叢集範例。
管理 CA 輪替
建議您在存取叢集的用戶端上,安裝所有可下載的 CA 憑證。
定期安裝最新的 CA 憑證,可確保在 Memorystore for Redis Cluster 輪替 CA 時,您擁有必要的憑證。輪替期間,現有和新的 CA 都會處於啟用狀態。
連線至使用傳輸中資料加密的叢集時,可參考的程式碼範例
如要查看如何設定用戶端程式庫以連線至使用傳輸中加密的叢集,請參閱「傳輸中加密用戶端程式庫程式碼範例」。