אבטחת הנתונים באמצעות רשות אישורים (CA) לכל מופע

אתם יכולים להצפין בצורה מאובטחת את כל הנתונים שמועברים בין אפליקציות הלקוח שלכם לבין Memorystore for Valkey. זוהי הצפנה בזמן ההעברה. באמצעות הצפנה בזמן ההעברה, כל התעבורה ב-Valkey מוצפנת באמצעות פרוטוקול Transport Layer Security ‏ (TLS). כך מובטח שכל הנתונים שעוברים בין האפליקציות שלכם לבין Memorystore for Valkey יישארו סודיים ולא ישונו.

כשההצפנה במעבר מופעלת, לקוחות Valkey מתקשרים באופן בלעדי באמצעות חיבור מאובטח. לקוחות Valkey שלא הוגדרו ל-TLS נחסמים. אם בוחרים להשתמש בהצפנה במעבר, האחריות לוודא שלקוח Valkey יכול להשתמש בפרוטוקול TLS מוטלת עליכם.

למקרים שבהם נעשה שימוש בהצפנה במעבר יש רשויות אישורים (CA). אתם משתמשים ב-CA כדי לאמת את האישורים של המכונות במופעים שלכם.

אחד ממצבי ה-CA שבהם אפשר להשתמש הוא CA לכל מופע. ‫Memorystore for Valkey מקצה לכל מופע תשתית CA ייחודית משלו. כדי לגשת למופע בצורה מאובטחת, צריך להגדיר את אפליקציית הלקוח כך שתיתן אמון בהיררכיית ה-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: המזהה של המכונה שיוצרים. מזהה המופע צריך להיות באורך של 1 עד 63 תווים, ולהכיל רק אותיות קטנות, מספרים או מקפים. הוא צריך להתחיל באות קטנה ולהסתיים באות קטנה או במספר.

  • REGION_ID: האזור שבו רוצים שהמכונה תמוקם.

  • PROJECT_ID: המזהה של הפרויקט שבו רוצים ליצור את המופע.

  • NETWORK_ID: המזהה של הרשת שרוצים להשתמש בה כדי ליצור את המכונה.

  • REPLICA_COUNT: מספר העותקים (לכל רסיס). הערכים הקבילים הם 0 עד 5.

  • NODE_TYPE: סוג הצומת של המכונה.

  • SHARD_COUNT: מספר הרסיסים במופע. מספר הרסיסים קובע את קיבולת הזיכרון הכוללת לאחסון נתוני המופע. מידע נוסף על מפרטים של מופעים זמין במאמר מפרט של מופע וצומת.

  • ENGINE_VERSION: הגרסה של המכונה. הערכים הקבילים לפרמטר הזה הם VALKEY_7_2,‏ VALKEY_8_0,‏ VALKEY_9_0 ו-VALKEY_9_1 (גרסת Preview). אם לא מציינים ערך, ערך ברירת המחדל הוא VALKEY_9_0.

  • MODE: קובעת אם המופע הוא Cluster Mode Enabled או Cluster Mode Disabled. אם לא מציינים את השדה הזה, ברירת המחדל של המופע היא Cluster Mode Enabled. מידע נוסף מופיע במאמר בנושא הפעלה והשבתה של מצב אשכול.

הפרמטר 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_1 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca

הורדת רשויות האישורים

אם מפעילים הצפנה במעבר למופע, כשמשתמשים בפקודה get-certificate-authority, מופיעים האישורים של רשויות האישורים.

gcloud memorystore instances get-certificate-authority INSTANCE_ID

מחליפים את INSTANCE_ID במזהה המכונה.

גוף התגובה כולל אישורים לכל רשויות האישורים הרלוונטיות.

התקנת אישורי CA בלקוח

צריך להתקין את אישורי ה-CA בלקוח שמתחבר למופע. ההתקנה של אישור CA עשויה להשתנות בהתאם לסוג הלקוח.

כדי להתקין אישור CA במכונה וירטואלית של Linux ב-Compute Engine, צריך לבצע את הפעולות הבאות:

  1. משתמשים ב-SSH כדי להתחבר ללקוח Linux ב-Compute Engine.

  2. בצד הלקוח, משתמשים בפקודה הבאה כדי ליצור קובץ server_ca.pem:

    sudo vim /tmp/server_ca.pem
    
  3. מורידים את רשויות האישורים ומדביקים אותן בקובץ server_ca.pem.

    צריך לעצב את הטקסט של רשויות האישורים בצורה נכונה. קובץ 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-----
    

    כדי לעצב את הטקסט בקובץ בצורה נכונה, צריך לפעול לפי ההנחיות הבאות:

    • מעתיקים את כל רשות האישורים, כולל השורות -----BEGIN CERTIFICATE----- ו-
      -----END CERTIFICATE-----.

    • חשוב לוודא שהטקסט של רשויות האישורים מיושר לשמאל באופן מלא. מוודאים שלא מופיעים רווחים לפני אף שורה של רשויות האישורים.

    • מוסיפים כל רשות אישורים בשורה חדשה. מוודאים שאין שורות ריקות בין רשויות האישורים.

הגדרת הצפנה בזמן ההעברה בלקוח

הלקוח שבו אתם משתמשים כדי להתחבר למופע צריך לתמוך ב-TLS או להשתמש ב-sidecar של צד שלישי כדי להפעיל TLS.

אם הלקוח תומך ב-TLS, צריך להגדיר אותו כך שיצביע על כתובת ה-IP של המופע, על יציאה 6379 ועל הקובץ שמכיל את רשות האישורים. במאמר הזה יש דוגמאות לאופן ההתחברות למופע של Memorystore for Valkey עם הצפנה במעבר שהופעלה, במצב Cluster Mode Enabled או במצב Cluster Mode Disabled.

ניהול סבב אישורים

מומלץ להתקין את כל אישורי ה-CA שניתן להוריד בלקוחות שיש להם גישה למופע.

התקנה תקופתית של אישורי ה-CA העדכניים מבטיחה שיהיו לכם האישורים הנדרשים כש-Memorystore for Valkey יבצע רוטציה של רשויות האישורים. במהלך הרוטציה הזו, גם האישורים הקיימים וגם האישורים החדשים פעילים.

דוגמת קוד להתחברות למופע שמשתמש בהצפנה במעבר

כדי לראות דוגמת קוד להגדרת ספריית לקוח להתחברות למופע שמשתמש בהצפנה במעבר, אפשר לעיין בדוגמת קוד לאימות IAM ולהצפנה במעבר.