במאמר הזה מוסבר איך להגן על מידע רגיש באמצעות סריקת סודות משולבת ב-Secure Source Manager.
סריקת סודות ב-Secure Source Manager משפרת את האבטחה של בסיס הקוד. הוא מנתח את השינויים שנדחפו למאגרים או מוזגו באמצעות בקשות משיכה, וסורק באופן פעיל מידע רגיש שצריך להצפין או להסיר. אם מזוהים נתונים כאלה, סריקת הסודות דוחה באופן אוטומטי את בקשת ה-push או חוסמת את המיזוג של בקשת משיכה (pull request), וכך מונעת מיזוג של פרטים רגישים בטעות.
ב-Secure Source Manager, סריקת הסודות מתייחסת לקטגוריות המידע הבאות כמידע רגיש:
- מפתחות הצפנה: כולל פריטים כמו מפתחות פרטיים של SSH.
- פרטי כניסה ל-AWS: מפתחות גישה ומפתחות סודיים ל-Amazon Web Services.
- פרטי הכניסה שלGoogle Cloud : מפתחות של חשבונות שירות וסודות אחרים של Google Cloud .
- סודות לקוח ב-OAuth: סודות שמשמשים לאימות אפליקציות באמצעות OAuth.
- מפתחות סודיים: מפתחות רגישים שמשמשים לאימות או להרשאה.
הפעלת סריקת סודות
מוודאים שהתפקידים וההגדרות הבאים מופעלים במאגר.
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת להפעלת סריקת סודות, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של מאגר Secure Source Manager (roles/securesourcemanager.repoAdmin) ב-IAM במאגר Secure Source Manager.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה securesourcemanager.repositories.update, שנדרשת כדי להפעיל סריקת סודות.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM ומתן גישה למשתמשים במכונה מוסבר איך נותנים תפקידים ב-Secure Source Manager.
הרשאות של חשבון שירות
אם אתם מגדירים סריקת סודות באמצעות תבנית בדיקה בהתאמה אישית של Sensitive Data Protection, לחשבון השירות שמשמש את Secure Source Manager צריכה להיות הרשאה לקרוא את התבנית (לדוגמה, התפקיד "קורא DLP", roles/dlp.reader).
- אם מוגדר למאגר חשבון שירות לכל מאגר, Secure Source Manager משתמש בחשבון השירות הזה באופן בלעדי. צריך לתת לתבנית הרשאת קריאה לחשבון השירות של כל מאגר.
- אם לא מוגדר חשבון שירות לכל מאגר, Secure Source Manager משתמש בחשבון השירות של המכונה.
עדכון הגדרות המאגר
אתם יכולים להפעיל סריקת סודות במאגרים שלכם דרך הממשק של Secure Source Manager:
- עוברים למאגר שבו רוצים להפעיל סריקת סודות.
- לוחצים על סמל ההגדרות.
- מאתרים את המתג Secret scanning.
- לוחצים על המתג כדי להעביר אותו למצב מופעל.
- אופציונלי: בשדה Inspection template, מזינים את שם המשאב של תבנית הבדיקה של Sensitive Data Protection.
- לוחצים על הכפתור עדכון ההגדרות.
עבודה עם סריקת סודות
אחרי שמפעילים את סריקת הסודות, היא עוקבת באופן פעיל אחרי השינויים שאתם שומרים במאגר. אם מזוהה מידע רגיש ב-commit שנדחף באמצעות Git או מוזג באמצעות בקשת משיכה בממשק האינטרנט, ה-commit נדחה או שהמיזוג נחסם.
כשמבצעים דחיפה משורת הפקודה, מקבלים הודעת שגיאה שמציינת שיש מידע רגיש. בשלב הזה יש לכם שתי אפשרויות:
ביטול השינוי
כדי להסיר את המידע הרגיש, אפשר לבטל את ה-commit הבעייתי באמצעות הפקודה הבאה:
git reset --soft COMMIT_ID
מחליפים את COMMIT_ID במזהה ה-commit בפועל.
מכיוון ש-Git שומר את ההיסטוריה של כל ה-commits, עדיין אפשר לשחזר מידע רגיש מ-commits קודמים. כדי למנוע את זה, משתמשים בפקודה git reset --soft. לאחר מכן, מתקנים את הקבצים ומאשרים אותם שוב כדי להסיר את הנתונים מההיסטוריה האחרונה של הענף.
מבצעים דחיפה כפויה של ה-commit (עוקפים את סריקת הסודות)
במצבים ספציפיים שבהם המידע שזוהה נחשב קביל, משתמשים עם הרשאות מתאימות יכולים לבחור לעקוף את בדיקת הסריקה של הסודות ולבצע force-push ל-commit.
git push -o dlpskip=true origin \
BRANCH_NAME
מחליפים את BRANCH_NAME בשם של הענף שאתם ממזגים.