ניהול הצפנה בזמן העברה

בדף הזה מוסבר איך להפעיל הצפנה במעבר במהלך יצירת מופע Redis, ואיך לנהל את ההצפנה במעבר של המופע. ההצפנה בזמן ההעברה מתבצעת באמצעות פרוטוקול Transport Layer Security ‏ (TLS).

במאמר הצפנה במעבר תוכלו לקרוא מידע על ההתנהגות הכללית של הצפנה במעבר ועל היתרונות שלה.

רשימת ההרשאות שנדרשות למשתמש כדי לבצע את משימות הניהול שמופיעות בדף הזה מפורטת במאמר הרשאות להצפנה במעבר.

אפשר להפעיל הצפנה במעבר רק כשיוצרים את מופע Redis. אי אפשר להשבית את ההצפנה במעבר עבור מופעים שנוצרו בדרך הזו.

יצירת מכונת Redis עם הצפנה של נתונים במעבר

המסוף

כשיוצרים מופע Redis, בוחרים באפשרות הפעלת הצפנה בנתונים בזמן העברה.

gcloud

כדי ליצור מופע Redis עם הצפנה במעבר, מזינים את הפקודה הבאה ומחליפים את variables בערכים המתאימים:

gcloud redis instances create instance-id --transit-encryption-mode=SERVER_AUTHENTICATION --size=size --region=region-id

כאשר:

  • --transit-encryption-mode=SERVER_AUTHENTICATION מפעיל הצפנה בזמן ההעברה של המופע.

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

המסוף

  1. עוברים לדף Memorystore for Redis במסוף Google Cloud .

    Memorystore for Redis

  2. כדי לראות את הדף Instance details (פרטי המכונה) של המכונה, לוחצים על Instance ID (מזהה המכונה).

  3. לוחצים על הלחצן הורדה או הורדת הכול בקטע אישור שרת TLS.

gcloud

אם ההצפנה במעבר מופעלת במופע, תוכלו לראות את התוכן של רשויות האישורים כשמריצים את הפקודה הבאה:

gcloud redis instances describe instance-id --region=region

גוף התשובה יכלול את כל רשויות האישורים הרלוונטיות. בדוגמה הבאה מוצגת רשות אישורים (CA) עבור Memorystore for Redis:

-----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-----

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

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

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

  1. מתחברים באמצעות SSH ללקוח Linux של Compute Engine.

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

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

    הטקסט של אישור ה-CA צריך להיות בפורמט הנכון:

    • מעתיקים את כל רשות האישורים, כולל השורות -----BEGIN CERTIFICATE----- ו------END CERTIFICATE-----.
    • חשוב לוודא שהטקסט של אישור ה-CA מיושר לשמאל באופן מלא, ושאין רווחים לפני אף שורה באישור ה-CA.

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

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

אם הלקוח שלכם תומך ב-TLS, צריך להגדיר אותו כך שיצביע על כתובת ה-IP של מופע Redis, על היציאה 6378 ועל הקובץ שמכיל את רשות האישורים. אם בוחרים להשתמש ב-sidecar, מומלץ להשתמש ב-Stunnel.

הגדרות נוספות של לקוח

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

לדוגמה, Lettuce הוא לקוח Java פופולרי ל-Redis. בדוקומנטציה שלהם יש דוגמה לחיבור מקורי עם TLS (ראו דוגמה 47). מנהל האבטחה של Java לא מאפשר אישורים בחתימה עצמית כברירת מחדל, לכן צריך לציין אפשרות נוספת בבניית ה-URI של Redis‏ .withVerifyPeer(false).

חיבור מאובטח למופע Redis באמצעות Stunnel ו-telnet

הוראות לשימוש ב-Stunnel כדי להפעיל הצפנה במעבר בלקוח של Compute Engine מופיעות במאמר חיבור למכונת Redis בצורה מאובטחת באמצעות Stunnel ו-telnet.

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

צריך להתקין את כל רשויות האישורים שניתן להוריד בלקוחות שניגשים למופע Redis.

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

מריצים את הפקודה הבאה פעם אחת כשמוסיפים רשות אישורים חדשה כדי לראות את התוכן של רשות האישורים החדשה:

gcloud redis instances describe instance-id --region=region

לאחר מכן, מעתיקים את רשות האישורים החדשה ביותר ומדביקים אותה בקובץ בלקוח שבו שמרתם את רשות האישורים הקודמת.

הקובץ צריך להיות בפורמט הבא. סדר הרשויות להנפקת אישורים לא משנה:

-----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 הנדרש, צריך לוודא שרשויות האישורים ששמורות בקובץ הלקוח זהות לאלה שמוצגות על ידי gcloud redis instances describe. אחרי שמתחיל אירוע רוטציה, יש כמה רשויות אישורים כדי להבטיח מספיק זמן לרוטציות עם זמן השבתה מינימלי.

המאמרים הבאים