אתם יכולים להצפין בצורה מאובטחת את כל הנתונים שמועברים בין אפליקציות הלקוח לבין Memorystore for Redis Cluster. זוהי הצפנה בזמן ההעברה. באמצעות הצפנה בזמן ההעברה, כל התעבורה ב-Redis מוצפנת באמצעות פרוטוקול Transport Layer Security (TLS). כך אפשר לוודא שכל הנתונים שעוברים בין האפליקציות שלכם לבין Memorystore for Redis Cluster יישארו סודיים ולא ייערכו בהם שינויים.
כשמופעלת הצפנה במעבר, לקוחות Redis מתקשרים באופן בלעדי באמצעות חיבור מאובטח. לקוחות Redis שלא מוגדרים ל-TLS נחסמים. אם בוחרים להשתמש בהצפנה במעבר, אתם אחראים לוודא שלקוח Redis יכול להשתמש בפרוטוקול TLS.
לצבירים שמשתמשים בהצפנה במעבר יש רשויות אישורים (CA). משתמשים ב-CA כדי לאמת את האישורים של המכונות באשכולות.
אחד ממצבי ה-CA שבהם אפשר להשתמש הוא CA לכל מופע. Memorystore for Redis Cluster מקצה לכל אשכול תשתית CA ייחודית משלו. כדי לגשת לאשכול בצורה מאובטחת, צריך להגדיר את אפליקציית הלקוח כך שתיתן אמון בהיררכיית ה-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: המזהה של האשכול שאתם יוצרים. מזהה האשכול צריך להיות באורך של 1 עד 63 תווים, ולהכיל רק אותיות קטנות, מספרים או מקפים. הוא צריך להתחיל באות קטנה ולהסתיים באות קטנה או במספר.
REGION_ID: האזור שבו רוצים שהאשכול יהיה ממוקם.
NETWORK: הרשת שבה משתמשים כדי ליצור את האשכול. הפורמט הנדרש הוא:
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_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, מופיעים האישורים של רשויות האישורים.
gcloud redis clusters get-cluster-certificate-authority CLUSTER_ID
מחליפים את CLUSTER_ID במזהה של האשכול.
גוף התשובה כולל אישורים לכל רשויות האישורים הרלוונטיות.
התקנת אישורי CA בלקוח
צריך להתקין את אישורי ה-CA בלקוח שמתחבר לאשכול. ההתקנה של אישור CA עשויה להשתנות בהתאם לסוג הלקוח.
כדי להתקין אישור CA במכונה וירטואלית של Linux ב-Compute Engine, צריך לבצע את הפעולות הבאות:
משתמשים ב-SSH כדי להתחבר ללקוח Linux ב-Compute Engine.
בצד הלקוח, משתמשים בפקודה הבאה כדי ליצור קובץ
server_ca.pem:sudo vim /tmp/server_ca.pem
מורידים את רשויות האישורים ומדביקים אותן בקובץ
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 ועל הקובץ שמכיל את רשות האישורים. אפשר לראות דוגמה לאופן ההתחברות לאשכול שבו ההצפנה במעבר מופעלת.
ניהול סבב אישורים
מומלץ להתקין את כל אישורי ה-CA שניתנים להורדה בלקוחות שיש להם גישה לאשכול.
התקנה תקופתית של אישורי ה-CA העדכניים מבטיחה שיהיו לכם את האישורים הנדרשים כש-Memorystore for Redis Cluster יבצע רוטציה של אישורי ה-CA. במהלך הרוטציה הזו, גם האישורים הקיימים וגם האישורים החדשים פעילים.
דוגמת קוד להתחברות לאשכול שמשתמש בהצפנה במעבר
כדי לראות דוגמת קוד להגדרת ספריית לקוח להתחברות לאשכול שמשתמש בהצפנה במעבר, אפשר לעיין במאמר דוגמת קוד של ספריית לקוח להצפנה במעבר.