使用每個執行個體的憑證授權單位 (CA) 保護資料

您可以安全地加密用戶端應用程式與 Memorystore for Valkey 之間的所有資料。這就是傳輸加密。使用傳輸中加密功能後,所有 Valkey 流量都會透過傳輸層安全標準 (TLS) 通訊協定加密。這可確保應用程式與 Memorystore for Valkey 之間的所有資料傳輸都經過加密,不會外洩或遭到竄改。

啟用傳輸中資料加密機制後,Valkey 用戶端只會透過安全連線進行通訊。系統會封鎖未設定 TLS 的 Valkey 用戶端。如果您選擇使用傳輸中資料加密,則必須確保 Valkey 用戶端可以使用 TLS 通訊協定。

使用傳輸中加密的執行個體具有憑證授權單位 (CA)。您可以使用 CA 驗證執行個體中機器的憑證。

您可以使用的 CA 模式之一是每個執行個體一個 CA。Memorystore for Valkey 會為每個執行個體提供專屬的叢集根憑證授權單位基礎架構。如要安全地存取執行個體,您必須將用戶端應用程式設定為信任這個 CA 層級。這包括在會存取執行個體的各個用戶端下載並安裝 CA 憑證。

建立使用每個執行個體 CA 的執行個體

控制台

請按照「建立執行個體」中的步驟操作。

gcloud

如要建立使用每個執行個體專屬 CA 的執行個體,請使用 gcloud memorystore instances create 指令。

gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

請替換下列項目:

  • INSTANCE_ID:您要建立的執行個體 ID。執行個體 ID 長度須介於 1 至 63 個字元之間,且只能使用小寫字母、數字或連字號。開頭必須是小寫英文字母,結尾則須為小寫英文字母或數字。

  • REGION_ID:您希望執行個體所在的區域。

  • PROJECT_ID:您要在其中建立執行個體的專案 ID。

  • NETWORK_ID:要用於建立執行個體的網路 ID。

  • REPLICA_COUNT:副本數量 (每個分片)。可接受的值為 05

  • NODE_TYPE:執行個體的節點類型

  • SHARD_COUNT:執行個體中的分片數量。Shard 數量決定了儲存執行個體資料的總記憶體容量。如要進一步瞭解執行個體規格,請參閱「執行個體和節點規格」。

  • ENGINE_VERSION:執行個體的版本。這個參數可接受的值為 VALKEY_7_2VALKEY_8_0VALKEY_9_0。如未指定值,預設值為 VALKEY_9_0

  • MODE:判斷執行個體是否已啟用或停用叢集模式。如果省略這個欄位,執行個體預設會啟用叢集模式。詳情請參閱「啟用及停用叢集模式」。

server-ca-mode 參數代表執行個體的 CA 模式。如果是每個執行個體專屬的 CA,google-managed-per-instance-ca 是參數的值。如未使用這個參數,預設的 CA 模式為每個執行個體。

例如:

gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

下載 CA

如果您為執行個體啟用傳輸中資料加密,使用 get-certificate-authority 指令時,系統會顯示 CA 的憑證。

gcloud memorystore instances get-certificate-authority INSTANCE_ID

INSTANCE_ID 替換為執行個體 ID。

回應主體會包含所有適用 CA 的憑證。

在用戶端安裝 CA 憑證

您必須在連線至執行個體的用戶端上安裝 CA 憑證。視用戶端類型而定,CA 憑證的安裝方式可能有所不同。

如要在 Compute Engine Linux VM 上安裝 CA 憑證,請執行下列操作:

  1. 使用 SSH 連線至 Compute Engine Linux 用戶端。

  2. 在用戶端中,使用下列指令建立 server_ca.pem 檔案:

    sudo vim /tmp/server_ca.pem
    
  3. 下載 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 的檔案。您可以查看範例,瞭解如何連線至已啟用傳輸中加密的 Memorystore for Valkey 叢集模式停用叢集模式執行個體。

管理 CA 輪替

建議您在存取執行個體的用戶端上,安裝所有可下載的 CA 憑證。

定期安裝最新的 CA 憑證,可確保在 Memorystore for Valkey 輪替 CA 時,您擁有必要的憑證。輪替期間,現有和新的 CA 都會處於啟用狀態。

連線至使用傳輸中資料加密的執行個體時,可參考的程式碼範例

如要查看程式碼範例,瞭解如何設定用戶端程式庫來連線至使用傳輸中加密的執行個體,請參閱「同時使用 IAM 驗證和傳輸中加密的程式碼範例」。