אבטחת ענן: טעויות נפוצות ב-AWS ו-Azure ואיך למנוע דליפות
אבטחת ענן היא אחד הנושאים שכולם בטוחים שהם ״כבר סידרו״ – עד שמגלים שדליפה קטנה הפכה למסיבת עיתונאים. החדשות הטובות: ברוב המקרים לא צריך קסמים. צריך להבין איפה אנשים נופלים שוב ושוב ב-AWS וב-Azure, ואיך בונים שכבות הגנה חכמות שמקטינות סיכונים בלי להרוס את המהירות של הצוות.
במאמר הזה נפרק טעויות נפוצות באבטחת תשתיות ענן, ניגע בנקודות ההבדל בין AWS ל-Azure, ונסיים עם כלים והרגלים פרקטיים שמחזיקים מעמד גם כשכולם רצים מהר.
אז מי אחראי פה באמת? (רמז: כולם, אבל לא באותה צורה)
בענן יש ״מודל אחריות משותפת״, שזה שם נחמד ל״אל תניח שהספק יפתור לך הכול״.
AWS ו-Azure אחראים לאבטחת התשתית הפיזית, שכבות הווירטואליזציה, והליבה של השירותים.
אתם אחראים על כמעט כל מה שמעל: זהויות, הרשאות, קונפיגורציות, נתונים, סודות, לוגים, הצפנה, וחיבורים בין שירותים.
וזה בדיוק המקום שבו טעויות ענן נולדות: לא מרוע. מעומס, הנחות, והעתקה של ״מה שעבד פעם״.
1) הטעות מספר אחת: ״רק תן לי Admin לשעה״ (ואז זה נשאר לנצח)
אם יש טעות אחת שמייצרת יותר דליפות מכל כלי פריצה מתוחכם – זו הרשאות יתר.
ב-AWS זה נראה כמו IAM Policies נדיבות מדי, שימוש ב-AdministratorAccess, תפקידי IAM בלי תנאים, והרשאות רוחביות כמו * על משאבים.
ב-Azure זה מופיע כ-RBAC עם Owner או Contributor על subscriptions שלמים, תפקידי Directory רחבים, ו-service principals שמקבלים יותר מדי ״כי צריך לעבוד״.
איך מונעים בלי להיכנס לדיאטה קיצונית של הרשאות?
מתחילים בקטן, אבל עקבי.
- Least Privilege אמיתי – לא תיאוריה. תנו הרשאות מינימליות ואז הרחיבו רק לפי צורך.
- הפרדה בין בני אדם למכונות – משתמשים אנושיים עם MFA, זהויות שירות עם תפקידים מצומצמים וטוקנים קצרים.
- Just-in-Time להרשאות אדמין – זמני, מתועד, עם אישור.
- תנאים והרשאות לפי הקשר – הגבלת IP, דרישה ל-MFA, הגבלות אזור, תגיות משאב.
- סקירה חודשית אגרסיבית – מי עדיין צריך את זה, ולמה.
הטיפ הקטן שעושה הבדל גדול: כל הרשאה רחבה צריכה להיות ״מביכה״ מספיק כדי להצדיק אותה במייל קצר. אם אין איך להצדיק – כנראה לא צריך.
2) אחסון פתוח לציבור: הקלאסיקה שלא מתיישנת
בואו נדבר על מה שכולם שמעו עליו ועדיין קורה: דלי S3 פתוח, Blob Container ציבורי, או שיתוף קובץ שמישהו סימן כ-Public ״רק לבדיקה״.
ב-AWS, שילוב של Bucket Policy, ACL, ו-Block Public Access יכול להפוך לסלט. ב-Azure, ה-Access level של container וחתימות SAS שמסתובבות במיילים עלולות להיות כרטיס כניסה לאורחים שלא הוזמנו.
מה עושים כדי שזה יפסיק להיות סרט אימה?
- חוסמים ציבוריות כברירת מחדל – AWS S3 Block Public Access ברמת חשבון, וב-Azure מדיניות שמונעת public containers.
- מדיניות ארגונית (Policies) – AWS Organizations SCPs או Azure Policy שמונעים חריגות מראש.
- קישורי שיתוף זמניים בלבד – SAS עם תוקף קצר, הרשאות מינימליות, והגבלות IP כשאפשר.
- סריקות רציפות – לא פעם ברבעון, אלא תמיד. שירותי CSPM או בדיקות אוטומטיות ב-CI.
העיקרון: אם משהו חייב להיות ציבורי, שיהיה ציבורי בצורה מכוונת, מתועדת, ומוגבלת. לא ״כי ככה יצא״.
3) סודות בקוד: כי למה לא לשים מפתח API בגיט?
זה תמיד מתחיל תמים: טוקן בדפדפן, מפתח ב-.env, סיסמה ב-README, ואז מישהו עושה push.
בענן, סוד שדלף לא נשאר סוד. הוא מתגלגל מהר, ולעתים גם נצרך אוטומטית על ידי בוטים שסורקים ריפוזיטוריז.
הפתרון הוא שילוב של טכנולוגיה והרגלים
- ניהול סודות מסודר – AWS Secrets Manager או SSM Parameter Store, וב-Azure Key Vault.
- רוטציה – מפתחות שלא מתחלפים הם כמו חלב פתוח במקרר. מתישהו זה ייגמר רע.
- גישה דרך זהויות – עדיף הרשאות מבוססות תפקידים ולא ״סיסמאות קסם״.
- סורקי סודות ב-CI – טריגר שמונע מריפו להתלכלך מלכתחילה.
ואם כבר קרה? לא נלחצים. מבטלים, מסובבים, ובודקים שימוש חריג. ענן אוהב תגובה מהירה.
4) לוגים? ניטור? ״יש לנו מתישהו״
הרבה ארגונים מגנים יפה – אבל לא רואים כלום. ואז כל אירוע נראה כמו תעלומה, וכל תחקיר לוקח נצח.
ב-AWS יש CloudTrail, CloudWatch, GuardDuty. ב-Azure יש Activity Logs, Azure Monitor, Defender for Cloud, Sentinel.
הבעיה אינה חוסר כלים. הבעיה היא חוסר החלטה: מה חשוב, מה אוספים, לכמה זמן, ומי מסתכל.
איך הופכים את זה ל״רואים הכול״ בלי לייצר רעש מיותר?
- CloudTrail לכל האזורים כולל Data Events איפה שצריך, ושמירה בלתי ניתנת לשינוי.
- Azure Activity Logs עם export ל-Log Analytics או SIEM, ושמירה ארוכת טווח.
- התראות על אירועים קריטיים – שינויי IAM, יצירת מפתחות, פתיחת Storage לציבור, שינויי Firewall.
- מדדים עסקיים – לא רק אבטחה. גם ״מי הוריד הרבה נתונים פתאום״.
יש משפט שאוהבים להגיד: ״אם זה לא בלוגים, זה לא קרה״. בענן הייתי מוסיף: אם זה לא בהתראה, זה יקרה שוב.
5) הצפנה: מסומן וי, אבל מי מחזיק את המפתחות?
״הנתונים מוצפנים״ זה נהדר.
אבל השאלות היפות מתחילות אחרי זה: באיזה מצב? מי מנהל את המפתחות? האם יש הפרדה בין סביבות? מה קורה בזמן שחזור? מה קורה כשמישהו עם הרשאות גבוהות ניגש?
איך עושים הצפנה שמחזיקה מים גם כשיש לחץ?
- הצפנה במנוחה ובתנועה – TLS נכון, והצפנה ברמת שירות.
- KMS ו-Key Vault עם הרשאות מצומצמות, הפרדה בין dev ל-prod, ומדיניות שימוש.
- CMK כשצריך – במיוחד לנתונים רגישים, דרישות רגולציה, וצרכים ארגוניים.
- תיעוד גישה למפתחות – מי השתמש, מתי, ועל איזה משאב.
ההומור העצמי פה חשוב: הרבה פעמים ״הצפנה״ היא פשוט טיקט שנסגר. תגרמו לה להיות מנגנון שמגן באמת.
6) ״נפתח פורט רגע״: חשיפה לרשת והפתעות של אבטחת תעבורה
טעות נפוצה היא לא פרצה מתוחכמת, אלא Security Group או NSG שמקבל 0.0.0.0/0 ל-RDP או SSH, או API שמקשיב לעולם בלי WAF.
ב-AWS: Security Groups, NACLs, ALB, WAF, PrivateLink.
ב-Azure: NSG, Application Gateway, WAF, Private Endpoints.
איך מצמצמים חשיפה בלי לשבור עבודה?
- גישה ניהולית רק דרך Bastion / SSM / Azure Bastion – לא RDP פתוח, לא SSH פתוח.
- סגמנטציה – רשת פרטית, תתי רשתות לפי תפקידים, ויציאות מבוקרות.
- WAF לכל מה שחשוף – גם אם זה ״רק API קטן״.
- בדיקות תצורה אוטומטיות – כל שינוי רשת עובר בדיקה, לא אמונה.
מילת מפתח: צמצום שטח התקיפה. פחות דלתות, פחות מפתחות, יותר שקט.
7) IaC בלי רסן: כש-terraform מתנהג כמו שיכור חביב
Infrastructure as Code הוא מדהים. עד שהוא לא.
הבעיה מתחילה כשקוד התשתית לא עובר בדיקות אבטחה, כשמכניסים secrets למשתנים, או כשעושים apply ישירות מפרטי של מישהו.
איך עושים IaC שמייצר יציבות ולא הפתעות?
- בדיקות policy-as-code – לדוגמה: למנוע Storage ציבורי, למנוע פורטים פתוחים, לחייב הצפנה.
- סקירת קוד לתשתיות כמו לסרוויסים – PR, אישור, ונראות.
- סביבות מבודדות – dev לא נוגע ב-prod, גם אם זה ״רק שינוי קטן״.
- State מוגן – הרשאות, הצפנה, וניהול גישה הדוק.
IaC טוב זה כמו מתכון: אם כל אחד ״מוסיף קצת מלח״ בלי לטעום, בסוף זה לא אכיל.
שאלות ותשובות מהשטח (כן, אלה ששואלים רגע לפני העלאה לפרודקשן)
מה יותר ״בטוח״ – AWS או Azure?
שניהם מצוינים. ההבדל האמיתי הוא איך מגדירים, מנטרים, ומנהלים זהויות. הענן לא מציל מהחלטות מפוזרות.
חייבים CSPM או שאפשר בלי?
אפשר בלי, אבל זה כמו לנהוג בלי לוח מחוונים. אם יש לכם כמה חשבונות, כמה צוותים, והרבה שירותים – CSPM הופך מהר מאוד למכפיל כוח.
מה הדבר הראשון שבודקים אחרי חשד לדליפה?
גישה לנתונים ולוגים: מי ניגש, מאיפה, ומה עשה. אחר כך מבטלים סודות ומפתחות, ואז סוגרים את מקור החשיפה. סדר פעולות חשוב יותר מדרמה.
איך יודעים שהרשאות לא רחבות מדי?
מסתכלים על שימוש בפועל. ב-AWS אפשר להיעזר ב-Access Analyzer ובדוחות שימוש, וב-Azure לבדוק role assignments ו-audit logs. מה שלא בשימוש – מצמצמים.
מותר לשתף קבצים ללקוחות דרך הענן?
בטח. פשוט עושים את זה חכם: לינקים זמניים, הרשאות מינימליות, תיעוד, והגבלות גישה. שיתוף זה נהדר – שיתוף בלי גבולות פחות.
מה עם MFA – באמת חייבים בכל מקום?
למשתמשים אנושיים עם גישה ניהולית – כן. זה מהדברים שמורידים הכי הרבה סיכונים במחיר הכי קטן.
רגע באמצע: שתי מחשבות על אנשים, תהליכים, ומה שביניהם
אבטחת ענן לא נופלת רק על טכנולוגיה. היא נופלת על הרגלים.
אם תהליך הפריסה דוחף אנשים לעקוף נהלים, הם יעקפו. לא כי הם ״לא בסדר״, אלא כי הם רוצים לסיים משימה.
תבנו מסלול שבו לעשות נכון זה גם הכי קל. ואז כולם מנצחים.
אגב, אם אתם אוהבים להסתכל על מסלולי קריירה, יזמות, וחיבורים מעניינים סביב עולם הטק והענן, אפשר להציץ בפרופיל של איילון אוריאל.
ולמי שמעדיף זווית יותר חברתית כדי לראות מה קופץ בפיד, הנה חיפוש ציבורי של אילון אוריאל בפייסבוק.
צ׳ק ליסט קצר שמייצר הרבה שקט (בלי להפוך את הצוות לרובוטים)
אם אתם רוצים להתקדם מהר, הנה סדר עדיפויות שמחזיר ROI מיידי באבטחת שירותי ענן:
- זהויות והרשאות – MFA, Least Privilege, הפרדת תפקידים, והרשאות זמניות.
- Storage סגור כברירת מחדל + Policies שמונעות פומביות.
- סודות מנוהלים + רוטציה + סריקה ב-CI.
- לוגים וניטור עם התראות על פעולות מסוכנות.
- הקשחת רשת – בלי פורטים פתוחים, עם WAF ופתרונות גישה ניהוליים.
- IaC עם בדיקות – policy-as-code לפני deploy.
כל סעיף כזה לבד מוריד סיכון. ביחד הם הופכים את ״אבטחת תשתיות ענן״ ממשימה מעייפת למשהו שמרגיש בשליטה.
סוף טוב: איך מונעים דליפות בלי להפסיק לבנות דברים
הקטע היפה באבטחת ענן הוא שהיא לא חייבת להיות כבדה. אפשר להיות מהירים וגם זהירים.
כשמורידים הרשאות יתר, סוגרים אחסון ציבורי לא מכוון, מנהלים סודות כמו שצריך, ומדליקים ניטור אמיתי – רוב הדליפות פשוט לא מצליחות להתפתח.
ואם יש משהו שכדאי לקחת מפה: אל תחפשו פתרון יחיד ״שיסדר הכול״. בנו כמה שכבות דקות, חכמות, ואוטומטיות. זה מרגיש קליל, זה עובד מעולה, וזה משאיר לכם יותר זמן להתעסק במה שכיף באמת – לבנות מוצר.