הגדרת GCP IAM: ארכיטקטורת גישה, תפקידים ואבטחה

הרשאות עודפות וגישות מפוזרות הן סיבה נפוצה לדליפות ולזמני השבתה. אנו מגדירים GCP IAM כמקשה אחת: מתכננים תפקידים, מגבילים גישה לפי עקרון הצורך המינימלי ומקבעים כללים בקוד. לאחר ההטמעה מפסיקים להעניק הרשאות ידנית, ובדיקות אורכות דקות במקום ימים.

היכולות שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • עיצוב לוגו לחברת B2B Advance
    עיצוב לוגו לחברת B2B Advance
    776
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח לוגו חברת AIDER
    פיתוח לוגו חברת AIDER
    1022
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113

הגדרת GCP IAM: היכן נשברת הגישה למשאבים

הגדרת GCP IAM לעיתים נדירות מתחילה בתכנון — בדרך כלל נותנים גישה "בעין", כדי שהמשימה תעבוד עוד היום.

תפקידים בסיסיים ברמת הפרויקט מפזרים הרשאות על פני כל ההיררכיה: תיקיות, פרויקטים מקוננים ומשאבים יורשים אותן בשקט, וכעבור חודשיים איש כבר לא יידע למי יש גישה לאחסון עם נתוני לקוחות.

קו בעיות נפרד — קבלנים וחשבונות שירות. לקבלן חיצוני מנפיקים מפתח "למשך העבודות", המפתח אינו נשלל, וההרשאות מאחוריו מצטברות: תחילה קריאה, אחר כך כתיבה, ואחר כך תפקיד ניהולי "לצורכי דיבוג". הרשאות עודפות בחשבונות כאלה הן הנתיב הנפוץ ביותר לדליפה, כי המפתח חי במאגר זר או בהתכתבות.

מחמיר את התמונה העובדה שאיש אינו מנהל ביקורת גישה באופן סדיר. ניתוח ההרשאות חושף עשרות הקצאות שלא בוטלו ולו פעם אחת: עובדים שפוטרו, חשבונות בדיקה, אינטגרציות נשכחות. כל הקצאה כזו מרחיבה את אזור הפגיעה — פגיעה בחשבון אחד חושפת לא פונקציה אחת אלא את כל המערכת.

עקרון ההרשאות המינימליות נראה מובן מאליו, אך דורש עבודה: לפרוס את התפקידים לפי רמות, להפריד הרשאות ניהוליות מיומיומיות, להוציא חשבונות שירות לחשבונות נפרדים, ולהוסיף הפרדת גישה בענן לפי סביבות. להלן נבחן כיצד זה נסגר — מהסקר מלאי ועד בקרה מתמדת.

מה נותנת הגדרת גישה מבוססת תפקידים

גישה בענן לעיתים נדירות נשברת מעצמה — היא נשברת מכך שהוענקה באופן אד-הוק: למשימה מסוימת, "עד שנבין", בהעתקת תפקיד של אחר. מודל תפקידים מנוהל, לעומת זאת, קושר הרשאות לקבוצות עבודה ולמשאב מסוים, ולא לחשבון של אדם, וחי כקוד — שינויים עוברים בדיקה ונשארים בהיסטוריה.

נקודת ייחוס בתכנון תרשים כזה — Google Cloud והמלצותיו לעקרון ההרשאות המינימליות. להלן ארבעה אפקטים שהלקוח רואה בשבועות הראשונים לאחר העברת הפרויקט לתרשים זה.

מהירות ההנפקה ותוחלת חיי הגישה

מהנדס חדש מקבל הרשאות תוך דקות: מוסיפים אותו לקבוצה, הקבוצה כבר משויכת לתפקיד הנדרש — אין צורך בתיאומים בהתכתבות, והרכב ההרשאות צפוי. למשימות זמניות מנפיקים גישה עם תפוגה: השיוך תקף עד לתאריך הנדרש ומוסר אוטומטית, ולא נותרות הזמנות שנשכחו "ליומיים".

פחות הרשאות עודפות — פחות סוגי כשלים

שיעור ההרשאות המיותרות יורד: במקום תפקידים רחבים ברמת הפרויקט מנפיקים תפקידים למשאב מסוים, והאדם רואה בדיוק את מה שהוא עובד איתו. זה מסיר סוג שלם של כשלים, שבהם שינוי או מחיקה בשוגג פוגעים בשירות של אחר, וחקירת התקלה מתבצעת לפי היומן: רואים מי, מתי ובאילו הרשאות פעל.

תרשימי גישה: השוואת גישות ומצבים

מודל הגישה בענן מורכב משכבות: ירושה מהארגון לפרויקט, שיוכים למשאבים בודדים, תפקידים לאנשים ובנפרד לשירותים. בחירת התרשים קובעת מה בדיוק ייכנס ליומן, כמה זמן נמשכת שלילת הגישה בעת פיטורין, וכמה קל להבין למי יש הרשאה לנתונים רגישים.

אפשרויות וגבולותיהן

אפשרות מתי מתאימה מגבלות
תפקידים בסיסיים ארגזי חול, פרויקטים אישיים, התחלה מהירה הרשאות על כל הפרויקט כולו, ביקורת לא תראה מי השתמש במה
תפקידים מותאמים אישית פרויקטים פעילים עם נתונים אמיתיים יש לתעד גרסאות של מערך התפקידים, אחרת הוא סוטה מהפרקטיקה
קבוצות ופדרציה עם ספרייה ארגונית כמה צוותים, ספריית עובדים אחודה תלוי באיכות נתוני הספרייה; פיטורין מסונכרנים לא מיד
חשבונות שירות אפליקציות, בניות, משימות מתוזמנות מפתחות ארוכי-חיים דולפים; שיוך למשאב אמין יותר מקובץ מפתח
גישה זמנית לפי בקשה חקירות תקלות, עבודות חד-פעמיות, תמיכה נדרשת שלילה מחייבת לפי תפוגה ויומן הנפקות

כיצד זה משתלב

התרשיםים אינם מתחרים — בסביבת עבודה משלבים ביניהם. אנשים מקבלים גישה דרך קבוצות מהספרייה הארגונית, אפליקציות — דרך חשבונות שירות עם שיוך למשאב, חריגים מונפקים באופן זמני ומוסרים עם תום התפוגה. תפקידים בסיסיים נשארים רק בפרויקטים מבודדים, שבהם אין נתונים משותפים ואינטגרציות חיצוניות.

לפני ההטמעה בונים מפת הרשאות בפועל: היא מראה אילו הרשאות מגיעות בירושה, אילו שיוכים משכפלים זה את זה, והיכן הגישה קיימת אצל כל העובדים בבת אחת. בהמשך ניתן לשנות את התרשים בשלבים, בלי לעצור את עבודת השירותים.

שלבי ההטמעה: מביקורת ההרשאות ועד למסירה

גישה בלתי מבוקרת בענן גדלה מהר יותר מכפי שהצוות מספיק להבחין בה: חשבונות שירות עם תפקידים רחבים, מפתחות שאיש לא שלל, הרשאות שהונפקו "לזמן מה" ונשארו לנצח.

לכן הגדרת GCP IAM היא רצף של שלבים עם מודל יעד קבוע מראש לפני השינוי הראשון במערכת הפעילה, ולא תיקון מדיניות בקונסולה לפי פנייה.

ביקורת ומודל יעד

  1. סקר מלאי הרשאות. מייצאים את כל שיוכי התפקידים לפי פרויקטים ומשאבים, כולל אלה שעברו בירושה מהארגון: מי, למה ובאמצעות מה קיבל גישה — יחד עם חשבונות שירות ודומיינים חיצוניים.
  2. הפרדת תחומי אחריות. קובעים אילו תפקידים כל צוות באמת זקוק להם, ואילו הרשאות אסור שיהיו לו: תחילה המודל, אחר כך ההנפקה.
  3. תרשים הגישה. קובעים את מודל היעד: מדיניות ארגונית, קבוצות כיחידת הנפקה של תפקיד לאדם במקום שיוכים אישיים.

בדיקה והעברה

  • הגדרת תפקידים ומדיניות. מרכיבים תצורה כקוד: תפקידים מותאמים רק במקום שבו הפתרונות המוכנים אינם מספיקים, תנאי גישה — לפי המאפיינים הנדרשים.
  • בדיקת תרחישים בסביבת בדיקה. מריצים משימות אמת של הצוותים — פריסה, קריאת לוגים, עבודה עם סודות — ומוודאים שהגישה החדשה אינה שוברת אותן, ושהעודפת נשללת בלי לגרום להפסקת עבודה.
  • העברת המערכת הפעילה. מחליפים בהדרגה, עם אפשרות לחזור משיוך מסוים, ולא מהמודל כולו.
  • נהלים ומסירת תיעוד. כללי הנפקה ושלילה של גישה, סדר התיאום, תרשים התפקידים והנחיות לתורנים נשארים בידי הצוות, ולא בהתכתבות.

מה נשאר בידי הצוות לאחר ההטמעה

יחד עם הגישה מוסרים ארטיפקטים שלפיהם מנפיקים, בודקים ושוללים אותה בהמשך בלי מעורבותנו. הכול נשמר באותו מאגר שבו מתוארת התשתית: שינוי תפקיד עובר ריוויו ונכנס להיסטוריה, ולא שוקע בהתכתבות של מישהו.

מודל הגישה ותיאורו

  • מטריצת "תפקיד — שירות": עבור כל שירות מצוין מערך התפקידים המינימלי ההכרחי והנימוק לכך שדווקא הוא.
  • מפת ירושת התפקידים: היכן הגישה מונפקת ברמת הארגון, היכן ברמת התיקייה, היכן ברמת הפרויקט, ואילו חריגים עוקפים את הירושה.
  • מדיניות גישה כקוד: תנאים, איסורים על הנפקת הרשאות מחוץ לקבוצה, כללים לחשבונות שירות.
  • תרשים חשבונות השירות עם שיוך לעומסי העבודה ורשימת מפתחות שאינם נוצרים ידנית.

נהלים ותפעול

  • נוהל הנפקת גישה: מי מאשר, לכמה זמן מונפקת ההרשאה, ומה קורה עם תומה.
  • הליך שלילה בעת החלפת תפקיד או עזיבת מהנדס — כולל בדיקה שההרשאות לא נותרו ברמת הארגון.
  • הגדרת תיעוד ביומן: פעולות ניהוליות ושינויי מדיניות נכתבים לביקורת משותפת עם ייצוא לאחסון הלוגים.
  • הנחיות לתורנים: ניתוח כשל אופייני "אין גישה, אבל קודם הייתה" וסדר בדיקת הירושה.
  • צ'קליסט צירוף מהנדס חדש ותזכורת קצרה אילו תפקידים אסור להנפיק בשום תנאי.

התיעוד משויך לתצורה: אם המדיניות משתנה בקוד, ההוראה מתעדכנת באותו קומיט. כעבור חודש הצוות עובד עם הגישה באופן עצמאי, ואנחנו מצטרפים נקודתית — לניתוח מקרים מורכבים ולביקורת הרשאות.

מקרה בוחן: כיצד הוסרו הרשאות עודפות בפרויקט

הלקוח הגיע עם סיפור המוכר כמעט לכל פרויקט ב-Google Cloud: במשך שנים אחדות קיבלו גישה לסביבה כמה צוותי קבלנים, וההרשאות הונפקו "לזמן מה". הזמנים תמו, אך ההרשאות נותרו — חלק ממפתחות חשבונות השירות הונפקו למשימות שנסגרו מזמן.

במה התחלנו

ייצאנו את המדיניות ברמת הארגון, התיקיות והפרויקטים ואיחדנו אותן לתמונה אחת. מתוך 140 חשבונות, ל-38 היה תפקיד בעלים או עורך, בעוד שרק תשעה היו צריכים לכתוב לפרודקשן. שיעור הגישות הזמניות — 60%, וכמעט לאף אחת מהן לא היה תאריך תפוגה ולא בעלים המחויב לשלול אותן. תיעוד הפעולות הניהוליות התנהל, אך איש לא קרא את הלוגים.

בהמשך פירסנו את הגישה לשלוש שכבות: תפקידים בסיסיים — ברמת הארגון, תפקידי עבודה — על תיקיות ופרויקטים, ותפקידי שירות — נקודתית על משאבים מסוימים. גישות זמניות הועברו להנפקה עם תנאי זמן ובעלים מחייב: התפוגה מגיעה — הגישה אינה מוארכת מעצמה, אלא נכנסת לתור לאישור. לקבלנים הותירו רק את המתאר שלהם, עם הקלטת סשן ותפוגה נפרדת.

מה קרה למדדים

מספר החשבונות עם הרשאות רחבות: 38 → 9. גישות זמניות שלא הוחזרו — אפס במקום 60%. הנפקת גישה חדשה הצטמצמה משני-שלושה ימי התכתבות לכמה שעות לפי תבנית עם מערך תפקידים מוכן. תקלות גישה בתקופה שלאחר מכן לא היו, וניסיונות לחרוג מהמתחם מתועדים בהתראה עוד באותו יום.

במה נבדלים התפקידים הבסיסיים מהמותאמים אישית

תפקידים בסיסיים — בעלים, עורך, צופה — פועלים על תחום רחב ועוברים בירושה מטה בהיררכיה: הוקצו לארגון או לתיקייה, וההרשאות התפשטו לכל הפרויקטים שבתוכם.

העורך מאפשר לכתוב כמעט לכל השירותים, לשנות את הרשת ואת כללי הגישה, למחוק נתונים; הצופה — לקרוא הכול, כולל מערכי נתונים ותצורה של אחרים.

לארגז חול זה נוח, במערכת פרודקשן תפקיד כזה רחב כמעט תמיד ממה שנדרש למהנדס מסוים. תפקידים מוגדרים מראש מורכבים עבור שירות מסוים ומתארים את המשימה בצורה מדויקת יותר — לעתים קרובות די בתפקיד מוכן, ואין טעם להרכיב ידנית עשרות הרשאות: תטעה באחת ותקבל הרשאה עודפת.

תפקיד מותאם אישית מוצדק כאשר אף תפקיד מוכן אינו מתאים בהרכבו: נדרשת גישה לקריאה בלבד של אובייקטים באחסון וכתיבה למערך נתונים אחד, בלי הרשאה לשנות מדיניות ענן ולהנפיק גישה לאחרים.

תפקיד כזה מורכב מהרשאות בודדות ומשויך במדיניות הענן למשאב מסוים — הגישה ניתנת לקבוצה כולה, ולא לכל מהנדס באופן אישי.

המחיר של תפקיד מותאם הוא התחזוקה שלו: יש לשמור את הרכב ההרשאות במערכת בקרת גרסאות ולעדכן אותו בעקבות הפלטפורמה. תפקידים מוגדרים מראש מקבלים הרשאות חדשות אוטומטית, תפקיד מותאם — לא, ותפקיד נשכח שובר בשקט את האוטומציה כעבור חודשים, כשהשירות מוסיף סוג משאב חדש.

קריטריון עבודה: תפקידים בסיסיים — לבעלים ולארגזי חול, תפקיד מוכן לשירות — למשימות יומיומיות, תפקיד מותאם — כאשר המוכן נותן הרשאות עודפות או שאינן מספיקות.

ספקות נפוצים בניהול גישה

הספקות לפני ההתחלה בדרך כלל זהים: האם הפרודקשן ייעצר, האם הגישה אצל הקבלן תיוותר לנצח, ומי יהיה הבעלים של ההגדרות לאחר העברת הניהול. אלה חששות מוצדקים — ביקורת ההרשאות נוגעת בשירותים פעילים, וטעות בשיוך תפקיד אינה מתגלה מיד, אלא דרך סירוב גישה בשירות פעיל.

לכן מתחילים בסקר מלאי במצב קריאה בלבד: אוספים את עץ המשאבים, שיוכי התפקידים והשימוש בפועל בהרשאות לפי יומני הביקורת. בהמשך מצמצמים את העודף בשלבים, החל ממתארים שאינם פרודקשן, ושומרים על הפיכות בכל שלב.

האם ביקורת ההרשאות לא תשבור שירותים פעילים?

תחילה קריאה בלבד: מפת השיוכים והפניות בפועל לפי יומני הביקורת. שינויים מבצעים בלוק לוגי אחד בכל פעם, החל מסביבות שאין בהן עומס פרודקשן, עם בדיקה לאחר כל שלב. אם השירות מתחיל לקבל סירוב — השיוך הקודם מוחזר בפעולה אחת.

האם הגישה לקבלן תיוותר לנצח?

לא. הגישה מונפקת לחשבונות נפרדים עם הגבלת תפוגה ונשללת אוטומטית עם תומה. העבודות בתוך הפרויקטים מתבצעות דרך הרשאה זמנית מוגברת, ולא דרך תפקיד קבוע, וכל הפעולות נכנסות ליומן.

האם תהיה השבתה בעת החלפת גישה והעברת ניהול?

תפקידים ושיוכים מתוארים כקוד ונשמרים במאגר, ולכן כל שינוי הפיך. העברת הניהול היא העברת הבעלות על הקבוצות והמדיניות לצוות שלכם בתוספת הוראה קצרה לפעולות אופייניות; את המעבר מבצעים בלי לנתק חשבונות שירות פעילים.

בואו נדון במשימת הגישה: מה נדרש מכם

כדי שאומדן היקף העבודה יתבסס על עובדות ולא על השערות, אנו זקוקים לנתוני המקור של הפרויקט. להלן רשימה מינימלית — אם משהו אינו בהישג יד, כתבו זאת: נסביר היכן לראות זאת וכיצד לתעד.

  • הרכב הפרויקטים והארגונים: אילו סביבות קיימות, כמה הן וכיצד הן קשורות ביניהן.
  • מטריצת גישה: מי ולאילו משאבים צריך לקבל גישה — צוותים, קבלנים, אוטומציה.
  • חשבונות שירות ומפתחות: היכן משתמשים בהם, מי הבעלים, מה ניתן לשלול בלי השבתה.
  • מגבלות אבטחה: דרישות הרגולטורים ומחלקת האבטחה, הפרדת סביבות, משכי שמירת יומני גישה.
  • כללים וחריגים נוכחיים: מה מוגדר כעת ואילו הרשאות הונפקו "לזמן מה" ונותרו לנצח.
  • חלונות שינוי: מתי מותר לבנות מחדש תפקידים והרשאות בלי לפגוע בתהליכי העבודה.

לפי נתונים אלה עורכים ביקורת של ההרשאות הנוכחיות, מרכיבים מודל יעד של תפקידים לפי עקרון ההרשאות הנמוכות ביותר ומכינים תוכנית הטמעה — עם סדר השינויים, הבדיקות ונקודות החזרה. בהמשך נחזור עם אומדן היקף העבודה ולוח זמנים לפי שלבים.

ניתן לדון במשימה עוד לפני שהכול נאסף: חלק מנתוני המקור נבהיר יחד, כדי לא לעכב את ההתחלה. תארו את המצב בצורה חופשית — נחזור עם אומדן ותוכנית.