שיטות מומלצות להקצאת משאבים באמצעות Terraform משולבות במודולים של Cloud Foundation Toolkit, שמתוחזקים על ידי Google. Cloud de Confiance במאמר הזה נחזור על חלק מהשיטות המומלצות האלה.
המדריך הזה אינו מבוא ל-Terraform. למידע על שימוש ב-Terraform עם Cloud de Confiance by S3NS, אפשר לעיין במאמר תחילת העבודה עם Terraform.
יצירת קובצי אימג' של מכונות וירטואליות
באופן כללי, מומלץ ליצור קובצי אימג' של מכונות וירטואליות באמצעות כלים כמו Packer. כך אפשר להפעיל את המכונות ב-Terraform באמצעות קובצי האימג' שהוכנו מראש.
אם אין קובצי אימג' שהוכנו מראש, אפשר למסור מכונות וירטואליות חדשות ב-Terraform לכלי לניהול ההגדרות באמצעות בלוק provisioner. מומלץ להימנע משיטה זו ולהשתמש בה רק כמוצא אחרון.
כדי לנקות מצב ישן שמשויך למכונה, כלים לניהול הקצאות שמחייבים לוגיקת ניתוק צריכים להשתמש בבלוק של provisioner עם התנאי when = destroy.
על Terraform לספק לכלים של ניהול ההגדרות מידע לגבי ההגדרות של מכונות וירטואליות באמצעות המטא-נתונים של המכונה.
ניהול הזהויות והרשאות הגישה (IAM)
כשמקצים שיוכים של IAM באמצעות Terraform, אפשר להשתמש בכמה משאבים שונים:
google_*_iam_policy(לדוגמה,google_project_iam_policy)google_*_iam_binding(לדוגמה,google_project_iam_binding)google_*_iam_member(לדוגמה,google_project_iam_member)
google_*_iam_policy ו-google_*_iam_binding מייצרים שיוכים מוסמכים של IAM, שבהם המשאבים של Terraform משמשים כמקור האמין היחיד להרשאות שאפשר להקצות למשאב הרלוונטי.
אם ההרשאות משתנות מחוץ ל-Terraform, בפעם הבאה שתפעילו את Terraform, כל ההרשאות יוחלפו בהתאם למדיניות שהגדרתם. פעולה כזו הגיונית אם המשאבים מנוהלים באופן מלא על ידי הגדרות ספציפיות של Terraform, אבל היא תגרום לכך שהגדרות של תפקידים שמנוהלות אוטומטית על ידי Cloud de Confiance יוסרו, מה שעלול להפריע לפונקציונליות של שירותים מסוימים.
כדי למנוע זאת, מומלץ להשתמש במשאבים של google_*_iam_member ישירות או באמצעות
המודול של IAM מ-Google.