בדף הזה מוסבר איך מוחקים חשבונות שירות ומבטלים את המחיקה שלהם באמצעות ה-API של ניהול זהויות והרשאות גישה (IAM), מסוף Cloud de Confiance וכלי שורת הפקודה gcloud.
לפני שמתחילים
מפעילים את IAM API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Cloud de Confiance by S3NS
gcloud
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initC#
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של .NET שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
C++
כדי להשתמש בדוגמאות של C++ שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
המשך
כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
יוצרים פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Cloud de Confiance .
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
-
הסבר על חשבונות שירות של IAM
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות למחיקה ולביטול המחיקה של חשבונות שירות, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
כדי למחוק חשבונות שירות:
מחיקת חשבונות שירות (
roles/iam.serviceAccountDeleter) -
כדי למחוק ולבטל מחיקה של חשבונות שירות:
אדמין של חשבון שירות (
roles/iam.serviceAccountAdmin)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
תפקידים בסיסיים ב-IAM כוללים גם הרשאות לניהול חשבונות שירות. לא מומלץ להקצות תפקידים בסיסיים בסביבת ייצור, אבל אפשר להקצות אותם בסביבת פיתוח או בדיקה.
מחיקה של חשבון שירות
כשמוחקים חשבון שירות, לאפליקציות לא תהיה יותר גישה למשאבים שלCloud de Confiance by S3NS דרך חשבון השירות הזה. אם מוחקים את חשבון השירות שמוגדר כברירת מחדל של Compute Engine, למכונות הווירטואליות של Compute Engine שמשתמשות בחשבון השירות הזה לא תהיה יותר גישה למשאבים בפרויקט.
צריך למחוק חשבונות שירות בזהירות. לפני שמוחקים חשבון שירות, חשוב לוודא שהאפליקציות החיוניות כבר לא משתמשות בו. אם לא בטוחים אם משתמשים בחשבון שירות, Google ממליצה להשבית את חשבון השירות במקום למחוק אותו. אפשר להפעיל מחדש חשבונות שירות מושבתים אם הם עדיין נחוצים. מידע נוסף מופיע במאמר השבתה של חשבונות שירות שלא בשימוש לפני המחיקה שלהם.
אם רוצים לשחזר חשבון שירות שנמחק, אפשר לבטל את המחיקה שלו, אם עברו 30 ימים או פחות מאז שמחקתם את חשבון השירות. אחרי 30 יום, מערכת IAM מסירה את חשבון השירות באופן סופי. Cloud de Confianceאי אפשר לשחזר את חשבון השירות אחרי שהוא הוסר באופן סופי, גם אם שולחים בקשת תמיכה.
כדי להקטין עוד יותר את הסיכון למחיקת חשבון שירות נחוץ, אפשר גם להפעיל המלצות לשינוי סיכונים. ההמלצות לשינוי הסיכון יוצרות אזהרות כשמנסים למחוק חשבונות שירות שזוהו על ידי Cloud de Confiance כחשובים.
אם מוחקים חשבון שירות ואז יוצרים חשבון שירות חדש באותו שם, המערכת תתייחס לחשבון השירות החדש כזהות נפרדת. הוא לא יירש את התפקידים שהוקצו לחשבון השירות שנמחק. לעומת זאת, כשמוחקים חשבון שירות ואז מבטלים את המחיקה, הזהות של חשבון השירות לא משתנה וחשבון השירות ישמור על התפקידים שלו.
כשמוחקים חשבון שירות, קישורי התפקידים שלו לא יוסרו באופן מיידי. הם יימחקו מהמערכת באופן סופי ואוטומטי אחרי 60 יום לכל היותר. עד אז, חשבון השירות יופיע בקשרי תפקידים עם תחילית deleted: וסיומת ?uid=NUMERIC_ID. הערך NUMERIC_ID שמופיע בסיומת הוא מזהה מספרי שייחודי לחשבון השירות.
חשבונות שירות שנמחקו לא נכללים במכסה של חשבונות השירות.
המסוף
נכנסים לדף Service accounts במסוף Cloud de Confiance .
בוחרים פרויקט.
בוחרים את חשבון השירות שרוצים למחוק ולוחצים על Delete .
gcloud
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
-
כדי למחוק את חשבון השירות, מריצים את הפקודה
gcloud iam service-accounts delete.פקודה:
gcloud iam service-accounts delete \ SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.comפלט:
Deleted service account SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com
C++
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM C++ API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
C#
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM C# API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
REST
השיטה
serviceAccounts.delete
מוחקת חשבון שירות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. -
SA_ID: המזהה של חשבון השירות. הוא יכול להיות כתובת האימייל של חשבון השירות בתבניתSA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com, או המזהה המספרי שייחודי לחשבון השירות.
שיטת ה-HTTP וכתובת ה-URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם הביצוע יהיה תקין, גוף התגובה יהיה ריק.
ביטול מחיקה של חשבון שירות
במקרים מסוימים, אפשר להשתמש בפקודה undelete כדי לבטל מחיקה של חשבון
שירות שנמחק. בדרך כלל אפשר לבטל מחיקה של חשבון שירות שנמחק אם הוא עומד בקריטריונים
הבאים:
חשבון השירות נמחק לפני פחות מ-30 יום.
אחרי 30 יום, מערכת IAM מסירה את חשבון השירות באופן סופי. Cloud de Confiance אי אפשר לשחזר את חשבון השירות אחרי שהוא הוסר באופן סופי, גם אם שולחים בקשת תמיכה.
לא קיים חשבון שירות באותו השם של חשבון השירות שנמחק.
לדוגמה, נניח שמחקת בטעות את חשבון השירות
my-service-account@project-id.s3ns.iam.gserviceaccount.com. עדיין יש צורך בחשבון שירות בשם הזה ולכן צריך ליצור חשבון שירות חדש באותו השם,my-service-account@project-id.s3ns.iam.gserviceaccount.com.חשבון השירות החדש לא יורש את ההרשאות של חשבון השירות שנמחק. למעשה, הוא חשבון נפרד לגמרי מחשבון השירות שנמחק. עם זאת, אי אפשר לבטל את המחיקה של חשבון השירות המקורי כי לחשבון השירות החדש יש שם דומה.
כדי לטפל בבעיה, מוחקים את חשבון השירות החדש ולאחר מכן מנסים לבטל את המחיקה של חשבון השירות המקורי.
אם לא מצליחים לבטל את המחיקה של חשבון השירות, אפשר ליצור חשבון שירות חדש באותו שם, לבטל את כל התפקידים מחשבון השירות שנמחק ולהקצות תפקידים דומים לחשבון השירות החדש. לקבלת פרטים נוספים, אפשר לעיין במאמר כללי מדיניות עם חשבונות משתמשים שנמחקו.
איתור מזהה מספרי של חשבון שירות שנמחק
כשמבטלים מחיקה של חשבון שירות, צריך לציין את המזהה המספרי שלו. המזהה
המספרי הוא מספר בן 21 ספרות, למשל 123456789012345678901, שמזהה באופן ייחודי
את חשבון השירות. לדוגמה, אם מוחקים חשבון שירות
ואז יוצרים חשבון שירות חדש באותו שם, לחשבון
השירות המקורי ולחשבון השירות החדש יהיו מזהים מספריים שונים.
אם יודעים שקישור במדיניות הרשאה כולל את חשבון
השירות שנמחק, אפשר לקבל את מדיניות ההרשאה ואז למצוא את המזהה
המספרי במדיניות הזו. המזהה המספרי מצורף לשם של חשבון השירות
שנמחק. לדוגמה, במדיניות ההרשאה הזו, המזהה המספרי של
חשבון השירות שנמחק הוא 123456789012345678901:
{ "version": 1, "etag": "BwUjMhCsNvY=", "bindings": [ { "members": [ "deleted:serviceAccount:my-service-account@project-id.s3ns.iam.gserviceaccount.com?uid=123456789012345678901" ], "role": "roles/iam.serviceAccountUser" }, ] }
מזהים מספריים מצורפים רק לשמות של חשבונות משתמשים שנמחקו.
לחלופין, תוכלו לחפש ביומני הביקורת שלכם את הפעולה
DeleteServiceAccount שמחקה את חשבון השירות:
נכנסים לדף Logs Explorer במסוף Cloud de Confiance .
בעורך השאילתות, מזינים את השאילתה הבאה ומחליפים את
SERVICE_ACCOUNT_EMAILבכתובת האימייל של חשבון השירות (לדוגמה,my-service-account@project-id.s3ns.iam.gserviceaccount.com):resource.type="service_account" resource.labels.email_id="SERVICE_ACCOUNT_EMAIL" "DeleteServiceAccount"
אם חשבון השירות נמחק לפני יותר משעה, לוחצים על Last 1 hour, בוחרים פרק זמן ארוך יותר מהרשימה הנפתחת, ואז לוחצים על Apply.
לוחצים על Run query. ב-Logs Explorer מוצגות פעולות
DeleteServiceAccountשהשפיעו על חשבונות השירות בשם שצוין.מאתרים את המזהה המספרי של חשבון השירות שנמחק באחת מהדרכים הבאות:
- אם תוצאות החיפוש כוללות רק פעולת
DeleteServiceAccountאחת, מחפשים את המזהה המספרי בשדה Unique ID שבחלונית Log fields.
אם בתוצאות החיפוש מוצג יותר מיומן אחד, מבצעים את הפעולות הבאות:
מאתרים את הרשומה הנכונה ביומן. לשם כך, לוחצים על חץ ההרחבה שליד הרשומה ביומן. בודקים את הפרטים של הרשומה ביומן וכך יודעים אם מוצגת בה הפעולה שרוצים לבטל. חוזרי על התהליך הזה עד שמוצאים את הרשומה הנכונה ביומן.
מאתרים את המזהה המספרי של חשבון השירות ברשומת היומן הנכונה. לשם כך, מרחיבים את השדה
protoPayloadברשומה ביומן ואז מחפשים את השדהresourceName.
המזהה המספרי כולל את כל מה שמופיע אחרי
serviceAccountsבשדהresourceName.
- אם תוצאות החיפוש כוללות רק פעולת
ביטול מחיקה של חשבון השירות לפי המזהה המספרי
אחרי שמוצאים את המזהה המספרי של חשבון השירות שנמחק, אפשר לנסות לבטל את המחיקה של חשבון השירות.
gcloud
-
במסוף Cloud de Confiance , מפעילים את Cloud Shell.
בחלק התחתון של Cloud de Confiance המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
-
כדי לבטל את המחיקה של חשבון שירות, מריצים את הפקודה
gcloud beta iam service-accounts undelete.פקודה:
gcloud beta iam service-accounts undelete ACCOUNT_ID
פלט:
restoredAccount: email: SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com etag: BwWWE7zpApg= name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns.iam.gserviceaccount.com oauth2ClientId: '123456789012345678901' projectId: PROJECT_ID uniqueId: 'ACCOUNT_ID'
REST
השיטה
serviceAccounts.undelete
משחזרת חשבון שירות שנמחק.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project. SA_NUMERIC_ID: המזהה המספרי הייחודי של חשבון השירות.
שיטת ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NUMERIC_ID:undelete
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אם אפשר לבטל את מחיקת החשבון, יישלח אליך קוד
תגובה מסוג 200 OK עם פרטים לגבי חשבון השירות ששוחזר, שייראה כך:
{
"restoredAccount": {
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com",
"projectId": "my-project",
"uniqueId": "123456789012345678901",
"email": "my-service-account@my-project.s3ns.iam.gserviceaccount.com",
"displayName": "My service account",
"etag": "BwUp3rVlzes=",
"description": "A service account for running jobs in my project",
"oauth2ClientId": "987654321098765432109"
}
}
המאמרים הבאים
- יצירת חשבונות שירות ועריכה שלהם
- מבט על תהליך הקצאת תפקידי IAM לכל סוגי חשבונות המשתמשים, כולל חשבונות שירות.
- להבין איך מצרפים חשבונות שירות למשאבים.