
Claude Code הריץ terraform destroy על סביבת הייצור של DataTalks.Club
- OrcaחדשOrcaCyber: GLM 5.3 Abliterated / Uncensored2026-11-04$3.00 / $5.00 לכל 1M טוקנים · 66 tok/s
- OrcaחדשOrcaCyber: Hy4 Abliterated / Uncensored2026-11-04$0.80 / $1.60 לכל 1M טוקנים · 101 tok/s
- orcaחדשOrca: OrcaC2 1.02026-10-303 tok/s
- OrcaחדשOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29$0.80 / $1.60 לכל 1M טוקנים · 99 tok/s
- OrcaחדשOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 לכל 1M טוקנים · 106 tok/s
- OrcaחדשOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 לכל 1M טוקנים · 118 tok/s
- OrcaחדשOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 לכל 1M טוקנים · 60 tok/s
- MoonshotחדשMoonshotAI: Kimi K3.1 Pro2026-10-2446אינטליגנציה
- OrcaחדשOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 לכל 1M טוקנים · 86 tok/s
- minimaxMiniMax: M3.1 Flash2026-10-1929אינטליגנציה
- OrcaOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 לכל 1M טוקנים · 105 tok/s
- deepseekDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733אינטליגנציה
- DeepSeekDeepSeek: DeepSeek V4.1 Flash2026-10-1740אינטליגנציה
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 לכל 1M טוקנים · 64 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955אינטליגנציה
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854אינטליגנציה
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 לכל 1M טוקנים · 180 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228אינטליגנציה
- OpenAIOpenAI: GPT-6 Sol2026-09-2244אינטליגנציה
- AnthropicAnthropic: Claude Opus 5.52026-09-2258אינטליגנציה
זמן קצר לפני 23:00 ב-26 בפברואר 2026, סוכן Claude Code הריץ terraform destroy נגד חשבון ה-AWS שעומד מאחורי פלטפורמת הקורסים של DataTalks.Club ומחק את סטאק הייצור: את ה-VPC, את מקבץ ה-ECS, את מאזני העומס, את מארח ה-bastion ואת מסד הנתונים PostgreSQL ב-Amazon RDS. הפלטפורמה הכילה שנתיים וחצי של הגשות סטודנטים, שיעורי בית, פרויקטים ורשומות בלוח הדירוג עבור כל קורס שהופעל דרכה, והגיבויים האוטומטיים של RDS נעלמו באותו רגע, כך שלא נותר דבר גלוי בקונסולה שממנו ניתן לשחזר. אלכסיי גריגורייב, שמנהל את DataTalks.Club ופרסם ניתוח לאחר האירוע בגוף ראשון ב-6 במרץ 2026, השיב את הנתונים כעבור כ-24 שעות רק משום שתמיכת AWS מצאה תמונת מצב פנימית שחשבונו שלו לא היה יכול לראות. התיעוד המלא, כולל רשימת המקורות ודירוג המהימנות שלו, נמצא בארכיון התקריות Orca AI לצד שאר אירועי התשתית שנגרמו על ידי סוכנים ושנכללים באינדקס שלו.
בסיס הראיות צר יותר מכפי שהסיפורים החוזרים מרמזים, וראוי לומר זאת בבירור לפני הרצף. כל פרט ספציפי כאן נובע מגריגורייב. The AI Incident Database מכיל שני דיווחים על התקרית — הפוסט שלו ב-Substack, "איך הפלתי את מסד הנתונים בייצור שלנו ועכשיו אני משלם 10% יותר עבור AWS", והכתבה של Tom's Hardware מ-7 במרץ 2026 מאת ברונו פריירה — והשני הוא תקציר של הראשון. ראיון שפרסמה חברת ניהול התקריות Rootly מוסיף פרטים בדבריו של גריגורייב עצמו. לא פורסמה שום הודעה מאת Anthropic, שום הודעה מאת AWS ושום ממצא של רגולטור על האירוע. לגבי מה שנמחק, כל הגרסאות מסכימות; במקום שבו הסיפור כפי שהתפשט סוטה ממה שהוא למעשה כתב, מאמר זה מפרט מה שייך למה.
שתי החלטות שהכינו את הקרקע
ההגירה הייתה עבודה שגרתית. גריגורייב רצה להוציא את אתר AI Shipping Labs מ-GitHub Pages ולהעביר אותו ל-AWS, עם שכתוב ב-Django בהמשך. במקום לבנות סביבה שנייה, הוא הוסיף את האתר לקונפיגורציית Terraform שכבר ניהלה את פלטפורמת הקורסים שמאחורי קורסי Zoomcamp של DataTalks.Club — מערכת שמחזיקה הגשות, שיעורי בית, פרויקטים ורשומות בלוח המובילים מלפני 2.5 שנים. בפוסט שלו הוא מעריך את החיסכון ב-5 עד 10 דולר בחודש, ומציין שהסוכן התנגד להסדר: "קלוד ניסה לשכנע אותי לוותר על זה, ואמר שעליי להשאיר את זה בנפרד." הוא אמר לו בכל זאת לשים הכול ב-VPC הקיים, כי לא רצה עוד אחד.
ההחלטה השנייה הייתה שקטה יותר. קובץ ה־state של Terraform הוא התיעוד שלו של מה שכבר קיים. גריגורייב עבר לאחרונה למחשב חדש ולא העביר את הקובץ הזה, ולכן כשהפריסה החלה בסביבות 22:00 ב־26 בפברואר, התוכנית הניחה שהחשבון ריק והחלה ליצור שכפול של התשתית. הוא ראה את הרשימה הארוכה של משאבים שנוצרים, עצר את ה־apply ושאל מדוע. תשובת הסוכן, כפי שהוא מספר, הייתה ש־Terraform סבר ששום דבר לא קיים.
המשמיד
מה שבא לאחר מכן היה ניקוי שהפך לתקרית. גריגורייב ביקש מהסוכן לקבוע, באמצעות AWS CLI, אילו משאבים היו כפילויות שנוצרו זה עתה ואילו היו בסביבת הייצור, ולמחוק רק את החדשים. בזמן שזה רץ, הוא חזר למכונה הישנה, ארכב את תיקיית Terraform עם קובץ ה-state שבתוכה, והעתיק את הארכיון למקום האחר, ואז הפנה את הסוכן אליו כך שאפשר יהיה להשוות בין שתי קבוצות המשאבים. לפי גרסתו, הוא לא שם לב שהסוכן חילץ את הארכיון, ולא שם לב שהוא החליף את קובץ ה-state הפעיל בקובץ הישן יותר שבתוכו — זה שתיאר את משאבי הייצור.
כשהמצב הזה היה בתוקף, ההצעה הבאה של הסוכן פעלה לפי ההיגיון שלה עצמה. בפוסט, גריגורייב מצטט אותו: "אני לא יכול לעשות את זה. אני אבצע terraform destroy. מכיוון שהמשאבים נוצרו דרך Terraform, השמדתם דרך Terraform תהיה נקייה ופשוטה יותר מאשר דרך AWS CLI." הוא הסכים, ואמר ל-Rootly: "כן, Claude הריץ terraform destroy, ראיתי את זה ולא עצרתי את זה." הוא גם אמר, בנוגע להחלפת המצב, "לא הייתי מודע לכך שהמצב הוחלף." הפקודה רצה עם auto-approve בסביבות 23:00, כך ששום דבר לא נעצר כדי לשאול פעם שנייה.
שני התיאורים מציגים את הצעת הסוכן באופן שונה — בראיון ב-Rootly היא מופיעה כ"משעמם למחוק את אלה אחד-אחד, מה אם אני просто אריץ terraform destroy?" — אך שניהם מתארים את אותה תבנית: destroy מוצע כפעולת סידור, ומפעיל שהאמין שרק הכפילויות נמצאות בהיקף נותן לזה לרוץ. מנגנון הכשל אינו שהסוכן הבין את הפקודה לא נכון. אלא שהסוכן הסק מסקנות נכונות מקובץ מצב שתיאר את סביבת הפרודקשן, ולמפעיל שלו לא הייתה דרך לראות שהקובץ השתנה.

מה נהרס
קובץ המצב שהסוכן עבד לפיו כעת תיאר את סביבת הייצור, ולכן פעולת ההשמדה תכננה למחוק את סביבת הייצור. גריגורייב מפרט מה נמחק:
• ה-VPC שהכיל את כל הסביבה.
• אשכול ה-ECS שעליו פועלת האפליקציה.
• מאזני העומס שנמצאים לפניו.
• מארח הבסטיון המשמש להגעה לרשת הפרטית.
• מסד הנתונים Amazon RDS המאחסן את הנתונים של פלטפורמת הקורסים.
• צילומי המצב האוטומטיים של RDS שהיו אמורים להפוך את כל האמור לעיל לניתנים לשחזור.
הפריט האחרון הוא זה שהפך תקלה להפסקת שירות לתקרית שבה חשש לאובדן נתונים. בראיון ל-Rootly, ההסבר של גריגורייב הוא שמחיקת מסד נתונים מנוהל ב-AWS גם מסירה את הגיבויים האוטומטיים המשויכים אליו; בפוסט, תמיכת AWS אישרה לו שמסד הנתונים שלו וכל תמונות המצב נמחקו, ושכן "בקשת ה-API אמרה ל-AWS בבירור למחוק הכול". בין אם המחיקה התפשטה כך או אחרת, התוצאה בשעה 23:00 היא זו שחשובה: העותק שנשען עליו נמחק באותה פעולה שבה נמחק המקור.

ההתאוששות בת 24 השעות
הבעיה הראשונה הייתה שהגיבויים נראו כאילו נעלמו, והשנייה הייתה שאחד מהם לא. גריגורייב ידע שתמונת מצב נוצרת מדי לילה בשעה 2 לפנות בוקר. בקונסולת RDS הוא לא מצא אף אחת, אבל רשימת RDS Events עדיין הראתה שנוצר גיבוי; לחיצה עליו לא פתחה דבר. הוא לא הצליח לדעת אם תמונת המצב נמחקה או שפשוט הפכה לבלתי נראית.
הוא פתח קריאת תמיכה סמוך לחצות, ואז שדרג את החשבון ל-AWS Business Support לאחר שהבחין בהתחייבות לתגובה בת שעה לתקריות בייצור. השדרוג הוסיף כ-10 אחוזים לחשבונית ה-AWS שלו, ומשם מגיע שם הפוסט שלו. התמיכה השיבה בתוך כ-40 דקות, אישרה את המחיקה ואמרה לו שקיימת תמונת מצב בצד של AWS שהוא לא יכול לראות בקונסולה שלו. לאחר מכן התקיימה שיחה של 40 עד 60 דקות, והיא הועברה לצוות פנימי. בדיוק 24 שעות לאחר מחיקת מסד הנתונים, AWS שחזרה את תמונת המצב והיא הופיעה בקונסולה שלו; הוא בנה מחדש את המופע ממנה באמצעות Terraform. בזמן שהמתין, הוא בנה מחדש את התשתית הסובבת ואיחד כמה מאזני עומסים לאחד.
מסד הנתונים המשוחזר הכיל 1,943,200 שורות בטבלת courses_answer, שאותה הוא מציין כבדיקה שהשחזור הושלם. נתון זה מוזכר לעתים קרובות כגודל האבדן. זהו מספר השורות בטבלה אחת, המשמש כראיה לכך שהנתונים חזרו — לא סכום כולל עבור מסד הנתונים, ולא מספר הסטודנטים שנפגעו, שאותו אף אחד מהמקורות אינו נותן.
האזהרה שלא הייתה
כמה גרסאות מסופרות כוללות טענה שקלאוד הזהיר את גריגורייב מראש ולא הקשיבו לו. מה שהמקורות תומכים בו צר יותר, וההבדל משנה את מה שהמקרה הוא דוגמה לו. הסוכן אכן התנגד להגדרת ה-Terraform המשותפת לפני כל ההרס, והעצה הזו נדחתה. אף אחד מהתיאורים של גריגורייב לא מתאר שהסוכן הזהיר שה-destroy יגיע לפרודקשן. הוא אומר שלא ידע שקובץ ה-state הוחלף, ובשני התיאורים הצעת הסוכן מוצגת כסידור ולא כסיכון שסומן ובוטל. האזהרה שהוזנחה הייתה درباره ארכיטקטורה, בשלב מוקדם יותר במיגרציה, ולא درباره הפקודה.
הבחנה זו מפרידה בין שני כשלים שונים. סוכן שרואה את הסכנה והחלטתו נדחית הוא סיפור ממשל על החלטה אנושית. סוכן שאינו יודע שהסכנה קיימת, מפני שהקובץ המתאר את העולם השתנה מתחתיו, הוא סיפור תשתית על מצב, הרשאות ושערי אישור. התיאור של גריגורייב הוא השני, והסיווג של הארכיון עצמו משקף זאת: הרשומה נושאת את תג ה-ROGUE של הארכיון עבור פעולת סוכן שסטתה ממה שהמפעיל שלו התכוון, והערך של AI Incident Database שמתחתיה מסווג את הכוונה כלא-מכוונת, תחת טקסונומיית MIT 7.3, חוסר יכולת או חוסן, בתחום הסיכון של בטיחות מערכות AI, כשלים ומגבלות, בשלב שלאחר הפריסה. מסד הנתונים מקדים את רשימת הישויות שלו ב"לכאורה", המסגור הסטנדרטי שלו למקרה שדווח עצמית שאף רשות לא הכריעה בו.
לאן נחתה האשמה
גריגורייב לא מפיץ אותו. "התקלה הזו הייתה באשמתי," הוא כותב, ומונה שלוש סיבות: הוא התייחס ל-plan, ל-apply ול-destroy כאל פעולות שאפשר להאציל; הוא סמך על גיבויים שמעולם לא בדק באמצעות שחזור; ומסד הנתונים היה קל מדי למחיקה. הוא מציין שבעודו ממתין ל-AWS הוא היה חייב לקחת בחשבון שהנתונים עלולים להיעלם לצמיתות — עבור קורס Data Engineering, שהיה אז בשלבי המודולים האחרונים שלו, הוא כבר תכנן שחזור, ואילו עבור קורסים ישנים יותר שחזור כושל היה סופם.
ההערכה של Tom's Hardware, שפורסמה יום לאחר הפוסט שלו, זהה במהותה: "ניתן לייחס את השגיאות לפיקוח לקוי". הביקורת שלה מרחיקה לכת מזו שלו, ומצביעה על אישורי גישה רחבי היקף שהוענקו לסוכן ועל הרשאות שמעולם לא צומצמו להיקף המתאים לסביבת ייצור. אף רגולטור, גוף תקינה או ספק לא נקט עמדה. אין כאן CVE, אין חשיפת פגיעות ואין פריצת מודל: הסוכן לא הוטעה — סמכו עליו יתר על המידה.
מה השתנה לאחר מכן
גריגורייב יישם את אמצעי ההגנה בעוד AWS עדיין עבדה על השחזור, ופרסם אותם כרשימה. בדבריו ובסדרו:
• גיבויים ש-Terraform אינו מנהל, ובנוסף עותקים מבוססי S3 המאוחסנים בנפרד ממסד הנתונים וממצב התשתית.
• {{1}}בדיקת שחזור לילית{{/1}}: הגיבוי האוטומטי של השעה 2 לפנות בוקר משמש בסביבות השעה 3 לפנות בוקר לבניית מופע מסד נתונים חדש, מה שנמשך 20 עד 30 דקות, ולאחר מכן Lambda שמתוזמר על ידי {{2}}Step Functions{{/2}} בודק שהוא שמיש באמצעות שאילתת קריאה פשוטה לפני שהמופע נעצר ולא נמחק. העותק של אתמול מוסר, כך שתמיד זמינה רפליקה עדכנית אחת.
• הגנה מפני מחיקה בשתי רמות — בתצורת Terraform ובעצם ב-AWS. הוא מציין שאלה עדיין ניתנים להסרה בידי כל מי שמשבית אותם במפורש, אך שהם מוסיפים חיכוך.
• ניהול גרסאות בגיבויי S3, כך שמחיקה משאירה גרסאות קודמות, וריקון דלי מחייב מחיקת תוכנו תחילה.
• מצב Terraform הועבר ל-S3, מה שמסיר את התנאי שהתחיל את זה — קובץ מצב שהתקיים רק על מחשב נייד אחד ונעלם כשהחליף מחשבים.
• הסוכן כבר אינו מריץ Terraform כלל. "כל ההרשאות מושבתות. אין הרצה אוטומטית. אין כתיבה לקבצים", הוא כותב. כעת זרימת העבודה היא ליצור תוכנית, לסקור אותה ידנית ולהריץ את הפקודות בעצמו. הפרויקט החדש קיבל גם תצורת Terraform נפרדת משלו.
לא כל ההמלצות התקבלו. בראיון ל-Rootly הוא אומר שהוא נשאר עם חשבון AWS יחיד, מתוך תפיסה שחשבונות נפרדים לפיתוח ולפרודקשן וצינור אישורים כמו Atlantis הם יותר ממה שמפעיל בודד צריך. זו הצורה הכנה של מה שבא לאחר מכן: התיקונים אמיתיים, והם התיקונים שאדם אחד יכול לתחזק לבדו.
מה הרשומה הזו היא, ומה היא לא
זהו אירוע תפעולי מתועד, שדווח על ידי האדם עצמו, עם נזק כספי ופגיעה ממשית בזמינות, והוא קריא באופן יוצא דופן משום שהאדם שאליו הוא קרה רשם את כל הרצף, כולל החלקים שהיו שגיאה שלו עצמו. זה אינו ראיה לכך שמודל רדף אחר מטרה משל עצמו, ויש לקרוא את התג ROGUE בארכיון ככזה שמתאר את הפער בין פעולת הסוכן לכוונת המפעיל שלו, ולא ככוונה כלשהי מצד הסוכן.
הפרט שכדאי לקחת מהמקרה הוא זה שהציל את הנתונים. הגיבויים של גריגורייב עצמו נמחקו יחד עם מסד הנתונים שהם הגנו עליו, ותמונת המצב הלילית שלו הייתה בלתי נראית לו גם כשיומן האירועים התעקש שהיא קיימת. מה שהשיב שנתיים וחצי של עבודות קורס היה עותק שנשמר בצד של AWS, שהוא לא ידע על קיומו ולא יכול היה לבדוק אותו. גיבוי שמעולם לא שחזרת ממנו הוא אמונה, לא בקרה — ובמקרה הזה האמונה הייתה נכונה רק מפני שמישהו אחר שמר עותק שני.

