כברירת מחדל, הנתונים הבאים מאוחסנים בהצפנה במישור זמן הריצה ההיברידי:
- נתונים במטמון
- נתוני מפתח בחוזה
- נתונים של מערכת ניהול מפתחות (KMS)
- נתונים של מפת צמדי מפתח/ערך (KVM)
הצפנת הנתונים לא מצריכה הגדרה מיוחדת מצדכם. עם זאת, אם מסיבה כלשהי אתם רוצים להשתמש במפתחות הצפנה משלכם (במקום במפתחות ברירת המחדל), אתם יכולים לעשות זאת, כמו שמוסבר בנושא הזה.
היקף מפתח ההצפנה
למפתחות ההצפנה של Apigee Hybrid יש היקף. לדוגמה, למפתחות KMS יש היקף ארגון. כלומר, המפתח משמש להצפנת נתוני KMS בכל הארגון. בטבלה הבאה מפורט ההיקף של כל סוג מפתח:
| מפתח הצפנה | היקף |
|---|---|
| חוזה | הארגון בלבד |
| KMS | הארגון בלבד |
| KVM |
ארגון או סביבה
אם מדיניות KVM מציינת היקף של |
| מטמון | סביבה בלבד |
מידע על מפתחות הצפנה שמוגדרים כברירת מחדל
כברירת מחדל, ב-Apigee hybrid יש קבוצה של מפתחות בקידוד Base64 שמשמשים להצפנה של נתונים בחוזים, ב-KVM, ב-KMS ובמטמון. התוכנה להתקנת Apigee hybrid מאחסנת את המפתחות במישור זמן הריצה כסודות של Kubernetes, ומשתמשת בהם כדי להצפין את הנתונים באמצעות הצפנה רגילה מסוג AES-128. המפתחות נמצאים בשליטתכם, ומישור הניהול ההיברידי אף פעם לא מודע להם.
מפתחות ברירת המחדל מוחלים על כל רכיבי Apigee hybrid חדשים כשיוצרים אותם.
שינוי מפתחות ההצפנה שמוגדרים כברירת מחדל
אפשר לשנות את כל מפתחות ההצפנה שמוגדרים כברירת מחדל, אם רוצים, אבל זה לא חובה. כדי להחליף מקש ברירת מחדל אחד או יותר, פועלים לפי השלבים הבאים:
- מעתיקים את הפסקאות הבאות לקובץ ההגדרות שמוגדרות מחדש.
ההגדרה הזו מאפשרת לשנות את מפתחות ההצפנה של KMS ו-KVM ברמת הארגון, ואת מפתחות ההצפנה של KVM ושל המטמון ברמת הסביבה:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - יוצרים מפתח חדש לכל מפתח שרוצים להחליף. כל מפתח חייב להיות מחרוזת בקידוד Base64 באורך של 16, 24 או 32 בייט בדיוק. אפשר גם לעיין במאמר איך יוצרים מפתח מוצפן.
- מחליפים את מקשי ברירת המחדל במקשים חדשים. בדוגמה הזו, כל מקשי ברירת המחדל מוחלפים במקשים:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
שינוי מפתחות ברירת המחדל
אתם יכולים לבטל את המקשים של הארגון או של סביבות ספציפיות שמופיעות בשם בקובץ הביטולים. כשיוצרים את הרכיבים, המערכת מחליפה את ברירות המחדל במפתחות שציינתם לארגון או לסביבות נפרדות.
- מעתיקים את הפסקאות הבאות לקובץ ההגדרות שמוגדרות מחדש.
ההגדרה הזו מאפשרת לשנות את מפתחות ההצפנה של KMS ו-KVM ברמת הארגון, ואת מפתחות ההצפנה של KVM ושל המטמון ברמת הסביבה:
org:YOUR_ORG_NAME kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key contractEncryptionKey: base64-encoded-key envs - name: ENV_NAME kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key - name: 2ND_ENV_NAME kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- יוצרים מפתח חדש לכל מפתח שרוצים לשנות. כל מפתח חייב להיות מחרוזת בקידוד Base64 באורך של 16, 24 או 32 בייט בדיוק. אפשר גם לקרוא איך יוצרים מפתח מוצפן.
- מציינים את המקשים שרוצים לשנות. בדוגמה הזו, כל מקשי ברירת המחדל מוחלפים במקשים:
org:hybrid-org kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ==" kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ==" envs: - name: prod kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ==" cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ==" envs: - name: test kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K==" cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
החלת השינויים העיקריים
מחילים את קובץ השינויים על האשכול באמצעות פקודות Helm הבאות:- אם משנים את מפתח החוזה או את מפתח ה-KVM של הארגון, צריך לעדכן את הארגון:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
- אם משנים את מפתח המטמון או את מפתח ה-KVM של סביבה מסוימת, צריך לעדכן את הסביבה:
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --atomic \ --set env=ENV_NAME \ -f OVERRIDES_FILE.yaml
- אם משנים את מפתח KMS, צריך לעדכן גם את הארגון וגם את הסביבה:
helm upgrade ORG_NAME apigee-org/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
helm upgrade ENV_NAME apigee-env/ \ --namespace apigee \ --set env=ENV_NAME \ --atomic \ -f OVERRIDES_FILE.yaml
הערה לגבי תאימות לאחור
אם תסירו את מפתחות ההצפנה בקובץ ההחלפות בפעם הראשונה שתתקינו את Apigee Hybrid, תשביתו למעשה את ההצפנה והערכים יישמרו ללא הצפנה. אם בשלב מאוחר יותר תפעילו הצפנה על ידי הזנת מפתחות, הנתונים הקיימים יישארו לא מוצפנים, אבל כל נתון עתידי שיתווסף יהיה מוצפן. המערכת תמשיך לפעול כרגיל עם הנתונים הלא מוצפנים ועם הנתונים המוצפנים החדשים.
בנוסף, חשוב לדעת שאי אפשר לשנות את מפתחות ההצפנה אחרי שהנתונים בזמן הריצה מוצפנים.
איך יוצרים מפתח מוצפן
כדי להצפין את ה-KVM, את ה-KMS ואת המטמון, צריך מפתח בקידוד Base-64 בפורמט תקין. המפתח שמשמש לכל אחת מהמטרות האלה צריך להיות בקידוד Base-64 ממחרוזת באורך 16, 24 או 32 בייט, כמו שמוסבר בהמשך:
הפקודה הבאה יוצרת מחרוזת מתאימה של 32 תווים בקידוד Base64 שנוצרה באופן אקראי:
head -c 32 /dev/random | openssl base64