שילוב של IAM עם Google SecOps

במאמר הזה מוסבר איך לשלב את ניהול הזהויות והרשאות הגישה (IAM) עם Google Security Operations.

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

השילוב של IAM תומך בתרחישים הבאים:

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

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

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

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

  • ניהול בקרת גישה מבוססת-תפקידים (RBAC): יצירה וניהול של תפקידים בהתאמה אישית ב-IAM עם קבוצות ספציפיות של הרשאות בכל הארגון, כדי לשמור על שליטה פרטנית בגישה לסביבת הענן.

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

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

  1. יצירת תפקיד IAM בהתאמה אישית: מגדירים תפקיד עם ההרשאות הספציפיות שנדרשות כדי לנהל חשבונות שירות ותפקידים.

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

  3. בחירת שיטת אימות: בוחרים בין Workload Identity (מומלץ) לבין מפתח JSON של חשבון שירות.

יצירה והגדרה של תפקיד IAM בהתאמה אישית

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

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

    לדף Roles

  2. לוחצים על addCreate custom role.

  3. מזינים שם פריט, תיאור ומזהה.

  4. מגדירים את Role launch stage ל-General Availability.

  5. לוחצים על Add Permissions ומוסיפים את ההרשאות הספציפיות הבאות:

    • iam.serviceAccounts.list
    • iam.serviceAccounts.create
    • iam.serviceAccounts.get
    • iam.serviceAccounts.getIamPolicy
    • iam.serviceAccounts.setIamPolicy
    • iam.serviceAccounts.disable
    • iam.serviceAccounts.enable
    • iam.serviceAccounts.delete
    • iam.roles.list
    • iam.roles.get
    • iam.roles.create
    • iam.roles.delete
  6. לוחצים על יצירה.

יצירה של חשבון שירות

השילוב משתמש בחשבון שירות כדי לאמת ולבצע פעולות IAM בפרויקט.

כדי ליצור חשבון שירות:

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

    לדף Service accounts

  2. לוחצים על addCreate Service Account.

  3. מזינים שם ותיאור ולוחצים על יצירה והמשך.

  4. בקטע Grant this service account access to project, מקצים לחשבון השירות את התפקיד בהתאמה אישית שיצרתם בשלב הקודם. לוחצים על סיום.

בחירה והגדרה של שיטת אימות

‫Google SecOps תומך בשני נתיבי אימות לשילוב הזה:

  • אפשרות 1: Workload Identity (מומלץ): השיטה הזו משתמשת באסימונים לטווח קצר באמצעות התחזות לחשבון שירות. השיטה הזו מאובטחת יותר כי היא מייתרת את הצורך במפתחות JSON לטווח ארוך.

  • אפשרות 2: מפתח JSON של חשבון שירות: בשיטה הזו משתמשים בקובץ מפתח סטטי. השתמשו באפשרות הזו רק אם Workload Identity לא זמין בסביבה שלכם.

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

כדי להשתמש ב-Workload Identity, צריך לתת למכונה של Google SecOps הרשאה להתחזות לחשבון השירות שיצרתם.

  1. ב-Google SecOps, עוברים אל Content Hub > Response Integrations.

  2. בוחרים את השילוב של IAM.

  3. מזינים את כתובת האימייל של חשבון השירות בשדה Workload Identity Email.

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

  5. לוחצים על close_small ליד הבדיקה שנכשלה כדי לראות את הודעת השגיאה.

  6. מחפשים את כתובת האימייל הייחודית (בפורמט gke-init-python@... או soar-python@...) שמופיעה לקראת סוף הודעת השגיאה. מעתיקים את הכתובת הזו.

מתן הרשאות להתחזות

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

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

    לדף Service accounts

  2. בוחרים את חשבון השירות שיצרתם לשילוב הזה.

  3. עוברים לכרטיסייה Permissions ולוחצים על Grant Access.

  4. מדביקים את כתובת האימייל הייחודית שהעתקתם בשדה New principals.

  5. מקצים את התפקיד יצירת אסימונים בחשבון שירות (roles/iam.serviceAccountTokenCreator) ולוחצים על Save.

אימות באמצעות מפתח JSON

אם אי אפשר להשתמש ב-Workload Identity בסביבה שלכם, אתם יכולים לאמת את השילוב באמצעות מפתח JSON של חשבון שירות. השיטה הזו מסתמכת על קובץ סודי סטטי לטווח ארוך כדי ליצור את החיבור בין הפלטפורמה לבין המשאבים שלכם ב- Google Cloud .

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

    לדף Service accounts

  2. עוברים לכרטיסייה Keys.

  3. לוחצים על Add Key > Create new key.

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

  5. מעתיקים את כל התוכן של קובץ ה-JSON.

  6. כשמגדירים את השילוב הזה בפלטפורמה, מדביקים את התוכן בשדה Service Account Json File Content.

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

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

פרמטר תיאור
API Root

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

כתובת ה-URL הבסיסית של המכונה ב-IAM.

ערך ברירת המחדל הוא https://iam.googleapis.com.

Account Type

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

סוג החשבון ב- Google Cloud .

הערך הזה תואם לפרמטר type בקובץ ה-JSON של האימות.

ערך ברירת המחדל הוא service_account.

Project ID

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

מזהה הפרויקט של החשבון ב- Google Cloud .

הערך הזה תואם לפרמטר project_id בקובץ ה-JSON של האימות.

Quota Project ID

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

מזהה הפרויקט שמשמש למטרות מכסה וחיוב כששולחים בקשות API.

Private Key ID

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

מזהה המפתח הפרטי של חשבון Google Cloud .

הערך הזה תואם לפרמטר private_key_id בקובץ ה-JSON של האימות.

Private Key

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

המפתח הפרטי של החשבון Google Cloud .

הערך הזה תואם לפרמטר private_key בקובץ ה-JSON של האימות.

Client Email

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

כתובת האימייל של הלקוח בחשבון Google Cloud .

הערך הזה תואם לפרמטר client_email בקובץ ה-JSON של האימות.

Client ID

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

מזהה הלקוח של חשבון Google Cloud .

הערך הזה תואם לפרמטר client_id בקובץ ה-JSON של האימות.

Auth URI

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

ה-URI לאימות של החשבון ב- Google Cloud .

הערך הזה תואם לפרמטר auth_uri בקובץ ה-JSON של האימות.

ערך ברירת המחדל הוא https://accounts.google.com/o/oauth2/auth.

Token URI

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

ה-URI של האסימון לחשבון Google Cloud .

הערך הזה תואם לפרמטר token_uri בקובץ ה-JSON של האימות.

ערך ברירת המחדל הוא https://oauth2.googleapis.com/token.

Auth Provider X509 URL

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

כתובת ה-URL של אישור X.509 של ספק האימות.

הערך הזה תואם לפרמטר auth_provider_x509_cert_url בקובץ ה-JSON של האימות.

ערך ברירת המחדל הוא https://www.googleapis.com/oauth2/v1/certs.

Client X509 URL

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

כתובת ה-URL של אישור ה-X.509 של הלקוח.

הערך הזה תואם לפרמטר client_x509_cert_url בקובץ ה-JSON של האימות.

Organization ID

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

המזהה הייחודי של הארגון שלכם ב- Google Cloud .

Service Account Json File Content

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

תוכן ה-JSON המלא של קובץ המפתח של חשבון השירות.

אם הפרמטר הזה מסופק, המערכת מתעלמת מפרמטרים של חיבורים ספציפיים (כמו Private Key ID ו-Private Key).

Workload Identity Email

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

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

Verify SSL

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

אם האפשרות הזו נבחרת, השילוב מאמת את אישור ה-SSL כשמתחברים לשרת ה-IAM.

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

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

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

פעולות

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

יצירה של תפקיד

ליצור תפקיד בניהול הזהויות והרשאות הגישה (IAM).

פרמטרים

השם המוצג של הפרמטר סוג ערך ברירת המחדל Is Mandatory תיאור
מזהה התפקיד String לא רלוונטי כן צריך לציין את מזהה התפקיד החדש שנוצר בניהול הזהויות והרשאות הגישה (IAM).
הגדרת התפקיד String לא רלוונטי כן מציינים מסמך מדיניות בפורמט JSON שישמש כהגדרת התפקיד.

ריצה

הפעולה לא פועלת על ישויות.

דוגמה למדיניות תפקידים ב-JSON

{
   "name": "projects/silver-shift-275007/roles/iam_test_role_api",
   "title": "iam_test_role_api",
   "description": "test role",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "BwXBu1RHiPw="
}

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]"
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה בוצעה בהצלחה:(is_success=true)

    • התפקיד <roleid> נוצר בהצלחה בניהול הזהויות והרשאות הגישה.

  • אם ה-role_id שצוין כבר קיים(is_success =false)

    • מזהה התפקיד שצוין<role_id> כבר קיים.

  • אם קובץ ה-JSON של התפקיד שסופק לא תקין (is_success =false)

    • מסמך ה-JSON של הגדרת התפקיד שסופק <role json> לא תקין.

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה קריטית, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה 'יצירת תפקיד'. הסיבה: {0}''.format(error.Stacktrace)

כללי

יצירת חשבון שירות

יוצרים חשבון שירות לניהול זהויות והרשאות גישה (IAM).

פרמטרים

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

ריצה

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

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "projectId": "PROJECT_ID",
   "uniqueId": "UNIQUE_ID",
   "email": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com",
   "displayName": "SERVICE_ACCOUNT_DISPLAY_NAME",
   "etag": "ETAG_VALUE",
   "description": "SERVICE_ACCOUNT_DESCRIPTION",
   "oauth2ClientId": "UNIQUE_ID"
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה בוצעה בהצלחה:(is_success=true)

    • Google Cloud חשבון השירות נוצר בהצלחה <מזהה ייחודי>.
  • אם הפעולה נכשלה כי חשבון השירות שצוין כבר קיים(is_success =false)

    • חשבון השירות שצוין <מזהה ייחודי> כבר קיים.

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה קריטית, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "יצירת חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

מחיקת תפקיד

מחיקת תפקיד בניהול זהויות והרשאות גישה (IAM).

פרמטרים

השם המוצג של הפרמטר סוג ערך ברירת המחדל Is Mandatory תיאור
מזהה התפקיד String לא רלוונטי כן צריך לציין את מזהה התפקיד החדש שנוצר בניהול הזהויות והרשאות הגישה (IAM).

ריצה

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

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "name": "projects/[PROJECT_ID]/roles/[ROLE_NAME]",
   "title": "[ROLE_TITLE]",
   "description": "[ROLE_DESCRIPTION]",
   "includedPermissions": [
       "storagetransfer.projects.getServiceAccount"
   ],
   "stage": "GA",
   "etag": "[ETAG_VALUE]",
   "deleted": true
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה בוצעה בהצלחה:(is_success=true)

    • התפקיד <roleid> בניהול הזהויות והרשאות הגישה נמחק.

  • אם ה-role_id שצוין לא קיים(is_success =false)

    • מזהה התפקיד שצוין<role_id> לא קיים.

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה קריטית, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "מחיקת תפקיד". הסיבה: {0}''.format(error.Stacktrace)

כללי

מחיקת חשבון השירות

מחיקת חשבון השירות. הפעולה מצפה לכתובת אימייל של חשבון שירות לניהול זהויות והרשאות גישה (IAM) כישות משתמש ב-Google SecOps.

ריצה

הפעולה הזו פועלת על הישות "משתמש".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם לפחות אחת מהישויות שצוינו נמחקה: "Successfully deleted the following service accounts: {0}".format([entity.Identifier]).

  • אם לא הצלחתם למחוק את כל הישויות שציינתם: "לא נמחקו חשבונות שירות".

  • אם לא נמצאו נתונים ב-ניהול זהויות והרשאות גישה (IAM) למחיקת ישויות ספציפיות: "Action was not able to find a match in Identity and Access Management for the provided entities: {0}".format([entity.identifier])

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "מחיקת חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

השבתת חשבון השירות

השבתת חשבון השירות. הפעולה מצפה לכתובת אימייל של חשבון שירות לניהול זהויות והרשאות גישה (IAM) כישות משתמש ב-Google SecOps.

ריצה

הפעולה הזו פועלת על הישות "משתמש".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם לפחות אחת מהישויות שצוינו הושבתה: "Successfully disabled the following service accounts: {0}".format([entity.Identifier]).

  • אם לא הצלחתם להשבית את כל הישויות שציינתם: "לא הושבתו חשבונות שירות".

  • אם לא נמצאו נתונים ב- Google Cloud IAM להשבתת ישויות ספציפיות: "Action was not able to find a match in Google Cloud IAM for the provided entities: {0}".format([entity.identifier])

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "השבתת חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

הפעלת חשבון שירות

הפעלת חשבון שירות. הפעולה מצפה לכתובת אימייל של חשבון שירות לניהול זהויות והרשאות גישה (IAM) כישות משתמש ב-Google SecOps.

ריצה

הפעולה הזו פועלת על הישות "משתמש".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה הצליחה לפחות באחת מהישויות שצוינו: "Successfully enabled the following service accounts: {0}".format([entity.Identifier]).

  • אם לא הצלחתם להפעיל את כל הישויות שציינתם: "לא הופעלו חשבונות שירות".

  • אם לא נמצאו נתונים בממשק לניהול הזהויות והרשאות הגישה (IAM) כדי להפעיל ישויות ספציפיות: "Action was not able to find a match in Identity and Access Management for the provided entities: {0}".format([entity.identifier])

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "הפעלת חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

העשרת ישויות

העשרת ישויות של משתמשי Google SecOps במידע על חשבונות שירות מניהול זהויות והרשאות גישה (IAM). הפעולה מצפה לכתובת אימייל של חשבון שירות לניהול זהויות והרשאות גישה (IAM) כישות משתמש ב-Google SecOps.

ריצה

הפעולה הזו פועלת על הישות "משתמש".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
  "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "projectId": "[PROJECT_ID]",
  "uniqueId": "[UNIQUE_ID]",
  "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
  "displayName": "[DISPLAY_NAME]",
  "etag": "[ETAG]",
  "description": "[DESCRIPTION]",
  "oauth2ClientId": "[UNIQUE_ID]"
}
העשרת ישויות
שם שדה ההעשרה לוגיקה – מתי להחיל
Google_IAM_name
Google_IAM_project_id ..
Google_IAM_unique_id
Google_IAM_email
Google_IAM_display_name
Google_IAM_description
Google_IAM_oauth2_client_id
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה בוצעה בהצלחה ולפחות אחת מהישויות שסופקו הועשרה: "Successfully enriched entities: {0}".format([entity.Identifier]).
  • אם לא הצלחנו להעשיר אף אחת מהישויות שסיפקתם: "לא הועשרו ישויות".
  • אם לא נמצאו נתונים בניהול זהויות והרשאות גישה (IAM) כדי להעשיר ישויות ספציפיות: "Action was not able to find a match in Identity and Access Management to enrich provided entities: {0}".format([entity.identifier])

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "העשרת ישויות". הסיבה: {0}''.format(error.Stacktrace)

כללי
טבלה (העשרה)

שם הטבלה: טבלת העשרה של {entity}

עמודות: מפתח, ערך

ישות

קבלת מדיניות IAM של חשבון שירות

מקבלת את מדיניות בקרת הגישה של חשבון השירות. הפעולה מצפה לכתובת אימייל של חשבון שירות ב-ניהול זהויות והרשאות גישה (IAM) כישות משתמש ב-Google SecOps. שימו לב שהמדיניות יכולה להיות ריקה אם לא הוקצתה מדיניות לחשבון השירות.

ריצה

הפעולה הזו פועלת על הישות "משתמש".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם הפעולה בוצעה בהצלחה:(is_success=true)

    • "אוחזרה בהצלחה מדיניות ניהול הזהויות והרשאות הגישה (IAM) לחשבונות השירות הבאים: <email id1, email id 2...> Google Cloud
  • אם הפעולה לא מצאה מידע על הישות (לדוגמה, אם כתובת האימייל שסופקה לא קיימת ב-Google Identity and Access Management):

    • הפעולה לא הצליחה לאחזר את מדיניות ניהול הזהויות והרשאות הגישה (IAM) של Google Cloud חשבונות השירות הבאים: <email id1, email id2 ..>
  • אם לא נמצאה מדיניות ניהול זהויות והרשאות גישה (IAM) לאף אחת מהישויות שצוינו: "לא נמצאה מדיניות ניהול זהויות והרשאות גישה (IAM) לאף אחת מהישויות שצוינו".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה קריטית, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "קבלת מדיניות IAM של חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

הצגת רשימת התפקידים

הצגת רשימה של תפקידים בניהול זהויות והרשאות גישה (IAM) על סמך קריטריונים ספציפיים לחיפוש. שימו לב שהפעולה לא פועלת בישויות של Google SecOps.

פרמטרים

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

ריצה

הפעולה לא פועלת על ישויות.

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "roles": [
       {
           "name": "roles/accessapproval.approver",
           "title": "Access Approval Approver",
           "description": "Ability to view or act on access approval requests and view configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       },
       {
           "name": "roles/accessapproval.configEditor",
           "title": "Access Approval Config Editor",
           "description": "Ability update the Access Approval configuration",
           "stage": "BETA",
           "etag": "[ETAG_VALUE]"
       }
   ]
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם התפקידים אוחזרו בהצלחה(is_success = true): "Successfully fetched Identity and Access Management roles."‎

  • אם אין ערכים זמינים(is_success = false): "No roles were returned for the specified input parameters."‎

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה קריטית, אזור לא חוקי, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה 'רשימת תפקידים'. הסיבה: {0}''.format(error.Stacktrace)

כללי
טבלה

שם הטבלה: תפקידי IAM

עמודות בטבלה:

שם התפקיד

שם התפקיד

תיאור התפקיד

שלב התפקיד

תג ישות של תפקיד

הרשאות תפקידים

כללי

הצגת רשימה של חשבונות שירות

הצגת רשימה של חשבונות שירות לניהול זהויות והרשאות גישה (IAM) על סמך קריטריוני החיפוש שצוינו. שימו לב שהפעולה לא פועלת בישויות של Google SecOps.

פרמטרים

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

ריצה

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

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
  "accounts": [
    {
      "name": "projects/[PROJECT_ID]/serviceAccounts/[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "projectId": "[PROJECT_ID]",
      "uniqueId": "[UNIQUE_ID]",
      "email": "[SERVICE_ACCOUNT_NAME]@[PROJECT_ID].iam.gserviceaccount.com",
      "displayName": "[DISPLAY_NAME]",
      "etag": "[ETAG_VALUE]",
      "description": "[SERVICE_ACCOUNT_DESCRIPTION]",
      "oauth2ClientId": "[UNIQUE_ID]"
    }
  ]
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם חשבונות השירות אוחזרו בהצלחה (is_success = true):
    "Successfully fetched Google Cloud service accounts."‎
  • אם אין ערכים זמינים(is_success = false): "לא הוחזרו חשבונות שירות לפרמטרים שצוינו בקלט".

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, אזור לא חוקי, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה 'רשימת חשבונות שירות'. הסיבה: {0}''.format(error.Stacktrace)

כללי
טבלה

שם הטבלה: Google Cloud חשבונות שירות

עמודות בטבלה:

שם חשבון השירות

מזהה ייחודי של חשבון שירות

כתובת האימייל של חשבון השירות

השם המוצג של חשבון השירות

תיאור חשבון השירות

מזהה לקוח OAuth2 של חשבון שירות

כללי

פינג

בודקים את הקישוריות לשירות ניהול הזהויות והרשאות הגישה (IAM) באמצעות הפרמטרים שמופיעים בדף הגדרת השילוב ב-Google SecOps Content Hub.

פרמטרים

לא רלוונטי

ריצה

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

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם החיבור הצליח: "Successfully connected to the Identity and Access Management service with the provided connection parameters!‎"

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

  • אם יש שגיאה קריטית, כמו פרטי כניסה שגויים או אובדן קישוריות: "החיבור לשירות ניהול הזהויות והרשאות הגישה נכשל. השגיאה היא {0}".format(exception.stacktrace)
כללי

החלפת מפתחות של חשבונות שירות

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

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

  • Deployment

  • Username

קלט של הפעולה

כדי לבצע את הפעולה Rotate Service Account Keys, צריך להגדיר את הפרמטרים הבאים:

פרמטר תיאור
Service Account

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

רשימה מופרדת בפסיקים של חשבונות שירות שצריך להחליף את המפתחות שלהם.

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

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

הפעולה Rotate Service Account Keys מספקת את הפלטים הבאים:

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

בדוגמה הבאה מוצג פלט התוצאה ב-JSON שמתקבל כשמשתמשים בפעולה Rotate Service Account Keys:

[
    {
       "Entity": "123",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    },
    {
       "Entity": "1234",
       "EntityResult": {
               "name": "projects/example-project/serviceAccounts/sample-sa@example-project.iam.gserviceaccount.com/keys/b333bbda7826af991a4d4cc4e3f83325103580ca",
               "validAfterTime": "2023-09-12T11:02:31Z",
               "validBeforeTime": "9999-12-31T23:59:59Z",
               "keyAlgorithm": "KEY_ALG_RSA_2048",
               "keyOrigin": "GOOGLE_PROVIDED",
               "keyType": "USER_MANAGED"
        }
    }
]
הודעות פלט

הפעולה Rotate Service Account Keys יכולה להחזיר את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה

Successfully rotated keys for service account SERVICE_ACCOUNT_EMAIL in IAM.

The following service accounts were not found in IAM: SERVICE_ACCOUNT_KEYS.

None of the provided service accounts were found in IAM.

הפעולה בוצעה בהצלחה.
Error executing action "Rotate Service Account Keys". Reason: ERROR_REASON

הפעולה נכשלה.

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

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

בטבלה הבאה מפורטים הערכים של פלט הסקריפט כשמשתמשים בפעולה Rotate Service Account Keys:

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

הגדרת מדיניות IAM של חשבון שירות

הגדרת מדיניות בקרת הגישה בחשבון השירות שצוין. הפעולה מצפה לכתובת אימייל של חשבון שירות ב-ניהול זהויות והרשאות גישה (IAM) כישות של חשבון Google SecOps. חשוב לזכור שהמדיניות שצוינה בפעולה מחליפה כל מדיניות קיימת.

פרמטרים

השם המוצג של הפרמטר סוג ערך ברירת המחדל Is Mandatory תיאור
מדיניות String לא רלוונטי כן מציינים את מסמך המדיניות ב-JSON שרוצים להגדיר לחשבון השירות.

ריצה

הפעולה הזו פועלת בישות "חשבון".

תוצאות הפעולה

תוצאת הסקריפט
שם תוצאת הסקריפט אפשרויות של ערכים
is_success is_success=False
is_success is_success=True
תוצאת JSON
{
   "version": 1,
   "etag": "[ETAG_VALUE]",
   "bindings": [
       {
           "role": "roles/iam.securityReviewer",
           "members": [
               "user:[USER_EMAIL]"
           ]
       }
   ]
}
קיר תיקים
סוג התוצאות ערך/תיאור סוג
הודעת פלט*

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

  • אם חלק מהתגובות הצליחו (is_success=True):

    • מדיניות ניהול הזהויות והרשאות הגישה (IAM) הוגדרה בהצלחה לחשבונות השירות הבאים של Google Cloud : <email id1, ...>

  • אם חלק מההעברות נכשלו:

    • הפעולה לא הצליחה להגדיר את מדיניות ניהול הזהויות והרשאות הגישה (IAM) בחשבונות השירות הבאים של Google Cloud : <email id1, ....>

  • אם כל הניסיונות נכשלו:

    • לא הוגדרו כללי מדיניות של ניהול זהויות והרשאות גישה (IAM) לחשבון השירות.

  • אם קובץ ה-JSON של המדיניות שסופק לא תקין (is_success =false)

    • מסמך ה-JSON של המדיניות שסופק, <policy>, לא תקין.

הפעולה אמורה להיכשל ולעצור את ההפעלה של הפלייבוק:

אם יש שגיאה חמורה, שגיאת SDK, כמו פרטי כניסה שגויים, אין חיבור לשרת, אחר: "שגיאה בביצוע הפעולה "הגדרת מדיניות IAM של חשבון שירות". הסיבה: {0}''.format(error.Stacktrace)

כללי

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