ניהול סודות של אפליקציות

בדף הזה מתוארות כמה שיטות מומלצות לניהול סודות באפליקציות שפורסים ב-Google Kubernetes Engine או באשכולות שמצורפים ל-GKE באמצעות Cloud Deploy.

החדרת סודות של אפליקציות לארטיפקטים של פריסה יוצרת סיכוני אבטחה, ולכן מומלץ להימנע מניהול סודות מתוך צינורות עיבוד נתונים של Cloud Deploy.

סודות שנעשה בהם שימוש בדרך הזו צריכים להיות מופקים, מנוהלים ומוחלפים מחוץ להיקף של Cloud Deploy.

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

סודות ב-Kubernetes

סודות ב-Kubernetes הם אובייקטים מאובטחים שמאחסנים נתונים רגישים, כמו סיסמאות, טוקנים של OAuth ומפתחות SSH באשכולות, בנפרד מ-Pods. סודות דומים ל-ConfigMaps, אבל הם נועדו להכיל נתונים סודיים.

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

ניהול סודות לשימוש ב-Cloud Deploy

בקטע הזה מוסבר איך לנהל סודות באפליקציות שפורסו באמצעות Cloud Deploy.

יש שתי גישות לניהול סודות באמצעות GKE או אשכולות GKE מצורפים:

Google Secret Manager

‫Secret Manager הוא שירות מנוהל מלא, שפועל בכמה אזורים Google Cloud ומאחסן באופן מאובטח מפתחות API, סיסמאות ומידע אישי רגיש אחר.

אפשר לגשת לסודות מ-Secret Manager מהאשכול באמצעות ספריית הלקוח ואימות Workload Identity, או באמצעות Secrets Store CSI driver.

כדי להשתמש ב-Secret Manager באפליקציה:

  1. יוצרים סוד באמצעות Secret Manager.

  2. מפנים אל הסוד מקוד האפליקציה באמצעות ה-SDK.

אפשר לציין מטא נתונים נוספים לסוד באמצעות משתני סביבה, למשל גרסת הסוד או סביבת האפליקציה (כמו dev,‏ staging,‏ prod).

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

מידע נוסף על ניהול סודות של Kubernetes באמצעות Secret Manager זמין במאמר שימוש ב-Secret Manager עם מוצרים אחרים .

Hashicorp Vault

Hashicorp Vault הוא כלי פופולרי בקוד פתוח לניהול סודות. Google Cloud כולל אינטגרציות נרחבות ותמיכה ב-Vault, וגם בכלים אחרים של Hashicorp כמו Terraform.

אפשר להגדיר את Vault באשכול Kubernetes באופן הבא:

  1. גישה לסודות של Vault דרך ה-API ואימות באמצעות Workload Identity.

  2. החדרת סודות ל-Pods של Kubernetes באמצעות קונטיינרים של Vault Agent.

  3. כדי להשתמש בסודות האלה, צריך להשתמש ב-Vault CSI Provider.

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