שיטות מומלצות לאבטחה

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

המדריך הזה אינו מבוא ל-Terraform. למידע על שימוש ב-Terraform עם Google Cloud, אפשר לעיין במאמר תחילת העבודה עם Terraform.

שמירת המצב ביעד מרוחק

ללקוחות Google Cloud , מומלץ להשתמש בקצה העורפי לשמירת המצב ב-Cloud Storage. הגישה הזו נועלת את המצב ומאפשרת לצוותים לשתף פעולה. כמו כן, בגישה הזו יש הפרדה בין המצב וכל מידע נוסף שעשוי להיות רגיש לבין המערכת לבקרת הגרסאות.

חשוב לוודא שרק למערכת ה-build ולאדמינים עם הרשאות גבוהות יש גישה לקטגוריה שמשמשת לשמירת המצב ביעד המרוחק.

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

הצפנת המצב

למרות שקטגוריות Google Cloud מוצפנות במנוחה, אפשר גם להשתמש במפתחות הצפנה באספקת הלקוח (CSEK) כדי להוסיף עוד שכבת הגנה. אפשר לעשות זאת באמצעות משתנה הסביבה GOOGLE_ENCRYPTION_KEY. גם אם לא שומרים סודות בקובץ המצב, תמיד חשוב להצפין את המצב כאמצעי אבטחה נוסף.

הימנעות משמירת סודות במצב

משאבים וספקי נתונים רבים ב-Terraform שומרים סודות כטקסט ללא הצפנה בקובץ המצב. אם אפשר, כדאי להימנע משמירת סודות בקובץ המצב. ריכזנו כמה דוגמאות לספקים ששומרים סודות כטקסט ללא הצפנה:

סימון פלטים עם מידע רגיש

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

הפרדת סמכויות

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

הרצת בדיקות לפני ההטמעה

כשמריצים את Terraform בצינור עיבוד נתונים אוטומטי, יש להשתמש בכלי כמו gcloud terraform vet כדי לבדוק את פלט התוכנית מול המדיניות לפני ההטמעה. כך תוכלו לזהות בעיות רגרסיה באבטחה לפני שהן מתרחשות.

הרצת בדיקות שוטפות

אחרי ביצוע הפקודה terraform apply, צריך להריץ בדיקות אבטחה אוטומטיות. הבדיקות האלה יכולות לעזור למנוע בעיות אבטחה בתשתית. תוכלו להשתמש בכלים הבאים לבדיקות כאלה:

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