שילוב של SAP ERP עם Google SecOps

במאמר הזה מוסבר איך לשלב את SAP ERP עם Google Security Operations.

השילוב של SAP ERP מקשר את Google SecOps לסביבת SAP ERP באמצעות שירות שער של Cloud Run. מידע נוסף על מעקב ואבטחה של סביבות SAP ב-Google SecOps מופיע במאמר אבטחת אפליקציות SAP באמצעות Google SecOps.

תרחישים לדוגמה

השילוב של SAP ERP משתמש ביכולות של Google SecOps כדי לתמוך בתרחישים הבאים:

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

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

  • אכיפה של רישום ביומן של ביקורת אבטחה: הפעלה מרחוק של יומן ביקורת האבטחה של SAP במופעים ובלקוחות של SAP, כדי לוודא שאירועי אבטחה קריטיים באפליקציה מתועדים.

  • אימות הקישוריות של השער: אימות Google Cloud האימות והקישוריות לרשת בין Google SecOps לבין שירות השער של Cloud Run.

לפני שמתחילים

לפני שמגדירים את השילוב של SAP ERP ב-Google SecOps, צריך לבצע את השלבים הבאים:

  1. פורסים ומגדירים את Cloud Run SAP RFC Gateway כדי להעביר פעולות למכונות של SAP ERP.

  2. מגדירים Google Cloud אימות והרשאות IAM באמצעות Workload Identity או מפתח JSON של חשבון שירות.

  3. מגדירים הרשאות SAP למשתמש התקשורת של השער בלקוחות SAP המטורגטים.

  4. בודקים את הקישוריות לרשת בין Google SecOps, שירות Cloud Run ומכונות SAP ERP.

פריסה והגדרה של Cloud Run SAP RFC Gateway

השילוב של SAP ERP מתקשר עם מערכות SAP באמצעות שירות Cloud Run SAP RFC Gateway. השירות הזה מעביר באופן מאובטח פעולות מ-Google SecOps למכונות היעד של SAP.

מוודאים ששירות השער של Cloud Run נפרס ומוגדר עם פרטי החיבור לכל מכונה של SAP (SAP Instance Name) וללקוח SAP עם שלוש ספרות (SAP Client Number). מתעדים את כתובת ה-URL מסוג HTTPS של שירות Cloud Run בשביל פרמטר השילוב Cloud Run Service URL.

הגדרת Google Cloud אימות והרשאות IAM

כדי לאמת בקשות לשירות השער של Cloud Run, מגדירים Google Cloud חשבון שירות באחת מהשיטות הבאות:

  • ‫Workload Identity (מומלץ): משתמש בהתחזות לחשבון שירות, כך שלא צריך להוריד או לנהל מפתחות JSON סטטיים.
  • מפתח JSON של חשבון שירות: משתמש בקובץ מפתח JSON שהורדתם. השתמשו בשיטה הזו רק אם אתם לא יכולים להגדיר את Workload Identity. אם מציינים גם את Service Account JSON וגם את Workload Identity Email, השילוב משתמש ב-Service Account JSON.

כשמקצים תפקידים ב-IAM, חשוב לפעול לפי העיקרון של הרשאות מינימליות. Google Cloudהימנעו מהקצאת תפקידי אדמין רחבים כמו roles/owner או roles/editor. מקצים רק את התפקידים המינימליים שמפורטים בטבלה הבאה:

חשבון משתמש משאב המטרה תפקיד IAM נדרש מטרה
חשבון שירות (מוגדר ב-Workload Identity Email או ב-Service Account JSON) שירות Cloud Run SAP RFC Gateway Cloud Run Invoker (roles/run.invoker) מאפשרת לחשבון השירות לקרוא לשירות השער של Cloud Run.
זהות המכונה של Google SecOps (רק כשמשתמשים ב-Workload Identity Email) חשבון השירות שצוין ב-Workload Identity Email יצירת אסימונים בחשבון שירות (roles/iam.serviceAccountTokenCreator) מאפשר למכונה של Google SecOps להתחזות לחשבון השירות כשמתבצעת קריאה לשער.

אימות באמצעות Workload Identity (מומלץ)

כדי לבצע אימות באמצעות Workload Identity, צריך ליצור חשבון שירות, לתת לו גישה להפעלת שירות Cloud Run ולתת למכונה של Google SecOps הרשאה להתחזות לחשבון השירות הזה.

יצירת חשבון שירות והענקת גישה ל-Cloud Run
  1. במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.

  2. לוחצים על Create service account, נותנים שם לחשבון השירות ולוחצים על Create and continue.

  3. לוחצים על Done כדי לסיים את יצירת חשבון השירות, ומעתיקים את כתובת האימייל שלו.

  4. במסוף Google Cloud , נכנסים לדף Cloud Run ובוחרים את שירות SAP RFC Gateway.

  5. עוברים לכרטיסייה אבטחה או הרשאות ולוחצים על הוספת חשבון משתמש.

  6. בשדה New principals, מדביקים את כתובת האימייל של חשבון השירות.

  7. בתפריט Select a role, בוחרים באפשרות Cloud Run Invoker (roles/run.invoker) ולוחצים על Save.

מתן הרשאות התחזות למכונה של Google SecOps
  1. ב-Google SecOps, עוברים אל Content Hub > Response Integrations.

  2. בוחרים את השילוב של SAP ERP, מזינים את Cloud Run Service URL ומזינים את כתובת האימייל של חשבון השירות ב-Workload Identity Email.

  3. לוחצים על שמירה > בדיקה. הבדיקה אמורה להיכשל לפני שמעניקים הרשאות התחזות.

  4. לוחצים על close_small ליד Test ומאתרים את כתובת האימייל של חשבון השירות של המכונה של Google SecOps בהודעת השגיאה (בפורמט gke-init-python@PROJECT.iam.gserviceaccount.com או soar-python@TENANT_PROJECT.iam.gserviceaccount.com). מעתיקים את כתובת האימייל הזו.

  5. במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts ובוחרים את חשבון השירות.

  6. עוברים אל Permissions > Grant access.

  7. בקטע New principals, מדביקים את כתובת האימייל של המכונה ב-Google SecOps שהעתקתם.

  8. בקטע Assign roles, בוחרים באפשרות Service Account Token Creator (roles/iam.serviceAccountTokenCreator) ולוחצים על Save.

אימות באמצעות מפתח JSON של חשבון שירות

אם אתם לא יכולים להשתמש ב-Workload Identity, צרו חשבון שירות וחלצו את קובץ מפתח ה-JSON שלו:

  1. במסוף Google Cloud , נכנסים לדף IAM & Admin > Service Accounts.

  2. בוחרים חשבון שירות קיים או לוחצים על Create service account כדי ליצור חשבון שירות ייעודי.

  3. מוודאים שלחשבון השירות יש את התפקיד מפעיל Cloud Run (roles/run.invoker) בשירות Cloud Run SAP RFC Gateway.

  4. בוחרים את חשבון השירות ועוברים אל Keys > Add key > Create new key.

  5. בוחרים באפשרות JSON בתור סוג המפתח ולוחצים על Create. למחשב שלכם תתבצע הורדה של קובץ JSON עם המפתח.

  6. פותחים את הקובץ שהורדתם בכלי לעריכת טקסט, מעתיקים את כל התוכן של ה-JSON ומדביקים אותו בפרמטר Service Account JSON ב-Google SecOps.

הגדרת ההרשאות של SAP

בכל לקוח SAP, צריך לתת למשתמש התקשורת של SAP שהוגדר בשער של Cloud Run רק את ההרשאות המינימליות שנדרשות לפעולות שרוצים להריץ:

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

בדיקת החיבור לרשת

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

  • ‫Google SecOps (או הסוכן המרוחק שלכם) יכול להגיע לכתובת ה-URL של שער ה-RFC של SAP ב-Cloud Run דרך HTTPS (יציאה 443).
  • לשירות Cloud Run SAP RFC Gateway יש קישוריות רשת למכונות היעד של SAP ERP.

פרמטרים של שילוב

כדי לשלב את SAP ERP, צריך להגדיר את הפרמטרים הבאים:

פרמטר תיאור
Cloud Run Service URL

חובה.

כתובת ה-URL מסוג HTTPS של שירות השער של Cloud Run שמתחבר למכונה של SAP ERP.

Service Account JSON

זה שינוי אופציונלי.

מפתח ה-JSON של חשבון השירות שמשמש לאימות מול שירות השער של Cloud Run.

אם צוינו גם Service Account JSON וגם Workload Identity Email, השילוב ישתמש ב-Service Account JSON.

Workload Identity Email

זה שינוי אופציונלי.

כתובת האימייל של חשבון השירות שמשמש לאימות של Workload Identity (מומלץ).

בשימוש כש-Service Account JSON ריק.

Verify SSL

זה שינוי אופציונלי.

אם בוחרים באפשרות הזו, השילוב מאמת את אישור ה-SSL כשמתחברים לשרת השער של Cloud Run.

מופעלת כברירת מחדל.

איך מגדירים שילובים ב-Google SecOps

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

פעולות

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

הפעלת יומן הביקורת

משתמשים בפעולה Activate Audit Log כדי להפעיל את יומן הביקורת של SAP Security במכונה ובלקוח של SAP, באמצעות Cloud Run SAP RFC Gateway.

הפעולה הזו לא פועלת על ישויות של Google SecOps.

קלט של הפעולה

הפעולה Activate Audit Log דורשת את הפרמטרים הבאים:

פרמטר תיאור
SAP Client Number

חובה.

מספר הלקוח ב-SAP, שמורכב משלוש ספרות.

SAP Instance Name

חובה.

השם של מכונת SAP המטורגטת שהוגדרה ב-Cloud Run SAP RFC Gateway.

ערכי פלט של פעולות

הפעולה הפעלת יומן ביקורת מספקת את הפלטים הבאים:

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

בדוגמה הבאה מוצג פלט התוצאה בפורמט JSON שמתקבל כשמשתמשים בפעולה Activate Audit Log:

{
  "status": "SUCCESS",
  "functionId": "ACTIVATE_AUDIT_LOG",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "Security Audit Log activated successfully."
    }
  ]
}
הודעות פלט

הפעולה Activate Audit Log יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully activated SAP audit log. הפעולה בוצעה בהצלחה.
Error executing action - "Activate Audit Log". Reason: Failed to activate audit log. SAP Error: ERROR_SUMMARY

הפעולה נכשלה כי מערכת SAP החזירה שגיאה.

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

Error executing action - "Activate Audit Log". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

הפעולה נכשלה באימות הפרמטרים.

צריך לספק מחרוזת מספרית תקינה בת שלוש ספרות בשביל SAP Client Number, למשל 100.

Error executing action - "Activate Audit Log". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

הבקשה ל-Cloud Run SAP RFC Gateway נכשלה.

צריך לבדוק את Cloud Run Service URL, את ההרשאות של חשבון השירות ואת יומני השער.

תוצאת הסקריפט

בטבלה הבאה מפורטים הערכים של פלט תוצאות הסקריפט כשמשתמשים בפעולה Activate Audit Log:

שם תוצאת הסקריפט ערך
is_success true או false

מחיקת סשן של משתמש

משתמשים בפעולה Delete User Session כדי לסיים את הסשנים הפעילים של המשתמש ב-SAP דרך Cloud Run SAP RFC Gateway.

הפעולה הזו לא פועלת על ישויות של Google SecOps.

קלט של הפעולה

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

פרמטר תיאור
SAP Username

חובה.

שם המשתמש ב-SAP שהסשנים הפעילים שלו יופסקו.

SAP Client Number

חובה.

מספר הלקוח ב-SAP, שמורכב משלוש ספרות.

SAP Instance Name

חובה.

השם של מכונת SAP המטורגטת שהוגדרה ב-Cloud Run SAP RFC Gateway.

ערכי פלט של פעולות

הפעולה Delete User Session מספקת את הפלטים הבאים:

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

בדוגמה הבאה מוצג פלט התוצאה ב-JSON שמתקבל כשמשתמשים בפעולה Delete User Session:

{
  "status": "SUCCESS",
  "functionId": "DELETE_USER_SESSION",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "User session terminated."
    }
  ]
}
הודעות פלט

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

הודעת פלט תיאור ההודעה
Successfully deleted user session for SAP_USERNAME. הפעולה בוצעה בהצלחה.
Error executing action - "Delete User Session". Reason: Failed to delete user session for SAP_USERNAME. SAP Error: ERROR_SUMMARY

הפעולה נכשלה כי מערכת SAP החזירה שגיאה.

מוודאים ששם המשתמש קיים בלקוח ה-SAP שצוין, ושלמשתמש התקשורת של השער יש הרשאה להריץ את TH_DELETE_USER.

Error executing action - "Delete User Session". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

הפעולה נכשלה באימות הפרמטרים.

צריך לספק מחרוזת מספרית תקינה בת שלוש ספרות בשביל SAP Client Number, למשל 100.

Error executing action - "Delete User Session". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

הבקשה ל-Cloud Run SAP RFC Gateway נכשלה.

צריך לבדוק את Cloud Run Service URL, את ההרשאות של חשבון השירות ואת יומני השער.

תוצאת הסקריפט

בטבלה הבאה מפורטים הערכים של פלט תוצאות הסקריפט כשמשתמשים בפעולה Delete User Session:

שם תוצאת הסקריפט ערך
is_success true או false

נעילת משתמש SAP

משתמשים בפעולה Lock SAP User כדי לנעול חשבון משתמש ספציפי ב-SAP דרך Cloud Run SAP RFC Gateway.

הפעולה הזו לא פועלת על ישויות של Google SecOps.

קלט של הפעולה

הפעולה Lock SAP User דורשת את הפרמטרים הבאים:

פרמטר תיאור
SAP Username

חובה.

שם המשתמש ב-SAP של החשבון שרוצים לנעול.

SAP Client Number

חובה.

מספר הלקוח ב-SAP, שמורכב משלוש ספרות.

SAP Instance Name

חובה.

השם של מכונת SAP המטורגטת שהוגדרה ב-Cloud Run SAP RFC Gateway.

ערכי פלט של פעולות

הפעולה Lock SAP User מספקת את הפלטים הבאים:

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

הדוגמה הבאה מראה את פלט התוצאה ב-JSON שמתקבל כשמשתמשים בפעולה Lock SAP User:

{
  "status": "SUCCESS",
  "functionId": "USER_LOCK",
  "sap_instance": "PRD",
  "client": "100",
  "return": [
    {
      "type": "S",
      "message": "User locked successfully."
    }
  ]
}
הודעות פלט

הפעולה Lock SAP User יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully locked user SAP_USERNAME. הפעולה בוצעה בהצלחה.
Error executing action - "Lock SAP User". Reason: Failed to lock user SAP_USERNAME. SAP Error: ERROR_SUMMARY

הפעולה נכשלה כי מערכת SAP החזירה שגיאה.

מוודאים ששם המשתמש קיים בלקוח SAP שצוין, ושלמשתמש התקשורת של השער יש הרשאה לנעול חשבונות משתמשים.

Error executing action - "Lock SAP User". Reason: SAP Client Number must be a 3-digit numeric string (got 'SAP_CLIENT_NUMBER').

הפעולה נכשלה באימות הפרמטרים.

צריך לספק מחרוזת מספרית תקינה בת שלוש ספרות בשביל SAP Client Number, למשל 100.

Error executing action - "Lock SAP User". Reason: Proxy request failed (HTTP STATUS_CODE): ERROR_DETAIL

הבקשה ל-Cloud Run SAP RFC Gateway נכשלה.

צריך לבדוק את Cloud Run Service URL, את ההרשאות של חשבון השירות ואת יומני השער.

תוצאת הסקריפט

בטבלה הבאה מפורטים הערכים של פלט התוצאה של הסקריפט כשמשתמשים בפעולה Lock SAP User:

שם תוצאת הסקריפט ערך
is_success true או false

פינג

משתמשים בפעולה Ping כדי לבדוק את האימות ואת הקישוריות לרשת של שירות השער של SAP ERP Cloud Run.

הפעולה הזו לא פועלת על ישויות של Google SecOps.

קלט של הפעולה

אין.

ערכי פלט של פעולות

הפעולה פינג מספקת את הפלטים הבאים:

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

הפעולה Ping יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully connected to the SAP ERP server with the provided connection parameters! הפעולה בוצעה בהצלחה.
Failed to connect to the SAP ERP server! Error is Failed to generate Google Cloud authentication token. Verify service account credentials and permissions.

הפעולה לא הצליחה ליצור טוקן אימות Google Cloud .

בודקים את ההגדרות של Service Account JSON או Workload Identity Email.

Failed to connect to the SAP ERP server! Error is Authentication to Cloud Run failed (HTTP STATUS_CODE). Verify the caller has roles/run.invoker on the service.

השער של Cloud Run דחה את בקשת האימות.

מוודאים שלחשבון השירות יש את התפקיד מפעיל Cloud Run (roles/run.invoker) בשירות Cloud Run.

Failed to connect to the SAP ERP server! Error is Cloud Run service returned unexpected HTTP STATUS_CODE: ERROR_DETAIL

שער Cloud Run החזיר קוד סטטוס של HTTP לא צפוי.

בודקים את Cloud Run Service URL ואת יומני השירות של Cloud Run.

תוצאת הסקריפט

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

שם תוצאת הסקריפט ערך
is_success true או false

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.