ה-Audit שחשף הכל
חברת SaaS ישראלית קיבלה audit אבטחה לפני Series B. הממצאים היו קשים: 23 S3 buckets עם public access, RDS ב-public subnet, security groups עם 0.0.0.0/0 על port 22 לכל העולם. הסיבה? תשתית שנבנתה ידנית ב-AWS Console לאורך שנים, click אחרי click, בלי תיעוד, בלי גרסאות, בלי אפשרות לחזור אחורה. עם Claude Code ו-Terraform, הצוות כתב מחדש את כל התשתית, secure by default, בשלושה שבועות. הפעם עם review, עם git history, ועם אפשרות לשחזר כל שינוי.
Terraform הוא הדרך לנהל cloud infrastructure כקוד. אבל HCL syntax, provider docs שמשתנים בכל גרסה, ו-state management מורכב מרתיעים אנשים. Claude מכיר את כל ה-AWS, GCP ו-Azure providers ויכול לכתוב modules production-ready, עם הנחיות נכונות.
למה IaC הכרחי, ולא רק נחמד לעשות
כל סטארטאפ שמגיע ל-Series A נדרש ל-SOC2 או ISO27001. שניהם דורשים Infrastructure as Code כדי להוכיח reproducibility ו-audit trail. בלי Terraform, כל שינוי תשתית הוא עבודה ידנית שלא מתועדת. כשמישהו עוזב, הידע הולך איתו.
| ניהול ידני (Console) | Infrastructure as Code (Terraform) |
|---|---|
| שינויים לא מתועדים | כל שינוי ב-git עם context |
| שחזור בלתי אפשרי | terraform destroy + apply = סביבה חדשה בדקות |
| drift בין environments | staging = production, תמיד |
| אי-אפשר לבדוק אבטחה | code review, tfsec, checkov אוטומטיים |
איך לפרמט בקשות Terraform לClaude, הפרמטור שמשנה הכל
הגדרה מדויקת של הקשר היא ההבדל בין module שעובד לבין module שצריך לשכתב. "כתוב Terraform ל-AWS ECS" יניב main.tf אחד ענק עם IAM policies רחבות מדי. הבקשה הנכונה מציינת את כל האילוצים מראש.
שלושה עקרונות בפרומפט הזה ששווים לזכור:
- Modules נפרדים במקום main.tf אחד ענק: Claude יבנה ארכיטקטורה שניתן לתחזק ולשתף בין projects.
- Scale in cooldown ארוך יותר מscale out: 10 דקות במקום 3 מונע flapping, Claude מכיר את ה-pattern הזה אם תציין אותו.
- RDS ב-private subnets בלבד: בלי לציין זאת במפורש, Claude לפעמים מניח public subnets לנוחות.
דיבוג terraform plan errors עם Claude
כשplan נכשל, רוב האנשים מחפשים ב-Google. עם Claude זה מהיר יותר, אבל חשוב לתת את כל ההקשר:
הפקודה terraform plan נכשלת. עזור לי לאבחן:
Error output:
[הדבק את כל ה-error כולל stack trace]
גרסת Terraform: 1.6.2
גרסת AWS provider: 5.31.0
קובץ main.tf:
[הדבק את הקוד הרלוונטי]
אבחן:
1. מה הסיבה המדויקת לשגיאה (syntax / type mismatch / missing dependency)
2. קוד מתוקן
3. האם יש בעיות פוטנציאליות נוספות בקוד שעוד לא גרמו לשגיאה
הסעיף השלישי הוא הטריק: Claude לא רק פותר את השגיאה הגלויה, הוא מוצא גם latent bugs שיפרצו ב-apply הבא. מפתחים שמשתמשים ב-Claude דיווחו שהם מגלים בממוצע 2-3 בעיות נוספות מעבר לשגיאה שהביאה אותם.
Terraform Plugin הרשמי לClaude (חדש 2026)
Anthropic שחררה ב-2026 plugin רשמי לTerraform דרך MCP (Model Context Protocol) בכתובת claude.com/plugins/terraform. ה-plugin מאפשר לClaude לגשת לdocs של HashiCorp בזמן אמת, לבדוק resource arguments נכונים, ולמנוע hallucinations של provider API שלא קיים. הקהילה פיתחה גם TerraShark, skill בקוד פתוח שמוריד הזיות ומאכף best practices של HashiCorp אוטומטית.
עדכון חשוב לגבי OpenTofu: הfork הopen-source של Terraform הוסיף ב-1.10 native S3 state locking ללא DynamoDB, פישוט משמעותי לhybrid setups. Claude תומך בשתי השפות, חשוב לציין באיזו כלי אתה משתמש בתחילת השיחה.
State Management, הנושא שאנשים מגלים בדרך הקשה
Terraform state הוא ה-source of truth על מה שבנוי בענן. שלוש פקודות קריטיות שClaude יכול להסביר ולסייע בביצוע הבטוח שלהן:
| פקודה | מתי להשתמש | סכנה |
|---|---|---|
terraform import |
משאב שנוצר ידנית ב-Console | צריך לכתוב קוד מתאים ידנית תחילה |
terraform state mv |
שינוי שם resource בקוד | בלעדיו Terraform ימחק ויצור מחדש |
terraform plan -target |
debugging ממוקד על resource ספציפי | לא לשימוש קבוע, מסתיר dependencies |
3 טעויות שכל מי שמשתמש בClaude לTerraform עושה
- לא מציינים גרסת provider: בלי
required_providers { aws = { version = "~> 5.0" } }, Claude כותב קוד שעלול לא להתאים לgithub Actions pipeline שלך. תמיד ציין גרסה. - terraform apply ישירות בלי לקרוא את ה-plan: Claude יכתוב קוד טוב, אבל הוא לא יודע מה כבר קיים ב-state. plan הוא ה-diff, תמיד קראו אותו לפני apply. חברה ישראלית אחת מחקה RDS instance בproduction כי לא קראו את ה-plan.
- IAM wildcard: בלי הנחיה מפורשת לleast-privilege, Claude נוטה לכתוב
"Action": "*"ו-"Resource": "*"כדי להימנע משגיאות permission. תמיד בקשו "IAM least-privilege, רק הpermissions שנדרשות לservice זה".
אתגר מעשי: S3 Bucket מאובטח
טיפ מתקדם: Tagging Strategy אוטומטית
בקשו מClaude לכתוב Terraform module עם built-in tagging strategy: כל resource מקבל tags עם Environment, Owner, CostCenter, CreatedBy=terraform. זה מאפשר לסנן ב-AWS Cost Explorer לפי environment ולדעת בדיוק כמה עולה כל service. אחרי כן, אפשר לשאול את Claude לנתח את ה-cost reports ולמצוא הזדמנויות לחיסכון.
כדאי לדעת: ישנו Terraform plugin רשמי לClaude Code שמאפשר אינטגרציה ישירה עם docs של HashiCorp, מוריד את שיעור ה-hallucinations של resource arguments. מצאו אותו בכתובת claude.com/plugins/terraform.
