דלג לתוכן הראשי

אבטחת קוד Terraform

טיפול בטוח במידע רגיש ב-Terraform הוא נוהל קריטי. השימוש ב-AWS Secrets Manager עם Terraform מאפשר לך לנהל סודות באופן יעיל מבלי להקשות אותם ישירות בקונפיגורציות שלך.

נוהגים מרכזיים לאבטחת קוד Terraform

  1. הימנע מהקשת סודות:

    • אל תכלול מידע רגיש כמו סיסמאות או מפתחות גישה ישירות בקבצי Terraform.
  2. המאפיין sensitive של Terraform:

    • השתמש במאפיין sensitive כדי למנוע חשיפה של ערכים רגישים בפלט של Terraform.
  3. קובצי מצב מאובטחים:

    • אחסן קובצי מצב במיקום מרוחק מאובטח עם הצפנה ובקרת גישה.
  4. אבטחת בקרת גרסאות:

    • הסר קבצים רגישים כמו קובצי מצב או קבצים המכילים סודות מבקרת גרסאות.
  5. סקירה וביקורת קוד רגילה:

    • בצע סקירות וביקורות קבועות של קוד ה-Terraform שלך.
  6. הישאר מעודכן:

    • שמור על Terraform והספקים שלה מעודכנים לצורך שיפורי אבטחה.
  7. יישום מינימום הרשאות:

    • השתמש באישורים ב-Terraform עם ההרשאות המינימליות הנדרשות.

שימוש ב-AWS Secrets Manager עם Terraform

  1. הבאת סודות ב-Terraform:

    • השתמש בספק AWS כדי לגשת לסודות המאוחסנים ב-AWS Secrets Manager.
    • דוגמה:
      data "aws_secretsmanager_secret" "db_secret" {
      name = "my_db_secret"
      }

      data "aws_secretsmanager_secret_version" "latest" {
      secret_id = data.aws_secretsmanager_secret.db_secret.id
      }

      resource "aws_db_instance" "example" {
      # other configuration
      password = jsondecode(data.aws_secretsmanager_secret_version.latest.secret_string)["password"]
      }

    בדוגמה זו, סיסמת מסד הנתונים מאוחסנת באופן מאובטח ב-AWS Secrets Manager. הפונקציה jsondecode משמשת לניתוח מחרוזת הסוד.