בדף הזה אנחנו מסבירים איך נותנים, משנים ומבטלים את הגישה של חשבון ראשי לחשבון שירות בודד. כדי לנהל את הגישה של חשבון ראשי לכל חשבונות השירות בפרויקט, בתיקייה או בארגון, צריך לנהל את הגישה ברמת הפרויקט, התיקייה או הארגון בהתאמה.
במסגרת ניהול הזהויות והרשאות הגישה (IAM), הגישה מנוהלת באמצעות מדיניות הרשאות, שנקראת גם 'המדיניות ב-IAM'. מדיניות הרשאה מצורפת למשאבGoogle Cloud . כל מדיניות הרשאות כוללת אוסף של קישורים בין תפקידים שמשייכים תפקיד ב-IAM לחשבון ראשי אחד או יותר, כמו חשבון משתמש או חשבון שירות. הקישורים האלה נותנים לחשבונות הראשיים את התפקידים שצוינו גם במשאב שאליו מצורפת מדיניות ההרשאות וגם במשאבים שנמצאים מתחתיו בהיררכיית המשאבים. מידע נוסף על מדיניות ההרשאות
חשבונות שירות הם גם משאבים שאפשר לתת לחשבונות ראשיים אחרים גישה אליהם, אבל גם חשבונות ראשיים שיכולים לקבל גישה למשאבים אחרים. במאמר הזה אנחנו מתייחסים לחשבונות השירות כאל משאבים ומסבירים איך לתת לחשבונות ראשיים אחרים גישה אליהם. במדריכים הבאים מוסבר איך נותנים לחשבונות שירות גישה למשאבים אחרים:
- כדי לתת לחשבון שירות גישה לפרויקט, לתיקייה או לארגון: ניהול הגישה לפרויקטים, לתיקיות ולארגונים
- כדי לתת לחשבון שירות גישה למשאבים אחרים: ניהול הגישה למשאבים אחרים
בדף הזה מוסבר איך לנהל את הגישה לחשבונות שירות באמצעותGoogle Cloud המסוף, Google Cloud CLI ו-API בארכיטקטורת REST. אפשר גם לנהל את הגישה באמצעות ספריות הלקוח של IAM.
לפני שמתחילים
- למידע על חשבונות שירות
- מוודאים שיש לכם את התפקידים הנדרשים ב-IAM.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות בשביל לנהל את הגישה לחשבון שירות, צריך לבקש מהאדמין לתת ב-IAM את התפקיד Service Account Admin (roles/iam.serviceAccountAdmin) בחשבון השירות או בפרויקט שחשבון השירות בבעלותו.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד מוגדר מראש עם ההרשאות לניהול הגישה לחשבון השירות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל את הגישה לחשבון השירות, צריך את ההרשאות הבאות:
-
iam.serviceAccounts.get -
iam.serviceAccounts.list -
iam.serviceAccounts.getIamPolicy -
iam.serviceAccounts.setIamPolicy
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הצגת הגישה הנוכחית
בקטע הבא מוסבר איך משתמשים במסוף Google Cloud , ב-CLI של gcloud וב-API בארכיטקטורת REST כדי לראות למי יש גישה לחשבון שירות. תוכלו גם להשתמש בספריות הלקוח של IAM כדי לקבל את מדיניות ההרשאות של חשבון השירות ולראות למי יש גישה אליו.
המסוף
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים פרויקט.
לוחצים על כתובת האימייל של חשבון השירות.
עוברים לכרטיסייה Principals with access. בטבלה מופיעים כל החשבונות הראשיים שיש להם תפקיד בחשבון השירות.
הרשימה כוללת גם חשבונות ראשיים שקיבלו גישה באמצעות תפקידים במשאבים שנמצאים מעל לחשבון השירות בהיררכיה. למידע נוסף על מדיניות שעברה בירושה והיררכיית המשאבים
אם רוצים לראות את התפקידים שניתנו לסוכני שירות, מסמנים את התיבה Include Google-provided role grants.
gcloud
תוכלו לבדוק במדיניות ההרשאות של חשבון השירות למי יש גישה אליו. למידע נוסף על מדיניות ההרשאות
כדי לראות את מדיניות ההרשאות של חשבון השירות, מריצים את הפקודה get-iam-policy לחשבון השירות:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
מחליפים את המשתנים הבאים בערכים:
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.FORMAT: הפורמט של המדיניות. אפשר להשתמש ב-jsonאו ב-yaml.PATH: הנתיב לקובץ פלט חדש של המדיניות.
לדוגמה, באמצעות הפקודה הבאה, המדיניות של חשבון השירות my-service-account תישמר בספריית הבית בפורמט JSON:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
תוכלו לבדוק במדיניות ההרשאות של חשבון השירות למי יש גישה אליו. למידע נוסף על מדיניות ההרשאות
ה-method serviceAccounts.getIamPolicy מאפשרת לקבל את מדיניות ההרשאות של חשבון השירות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.-
POLICY_VERSION: הגרסה של המדיניות שתוחזר. בבקשות צריך לציין את הגרסה הכי עדכנית של המדיניות (3). פרטים נוספים מופיעים במאמר ציון גרסת מדיניות בזמן אחזור מדיניות.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
תוכן בקשת JSON:
{
"options": {
"requestedPolicyVersion": POLICY_VERSION
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל את מדיניות ההרשאות של חשבון השירות. לדוגמה:
{
"version": 1,
"etag": "BwWKmjvelug=",
"bindings": [
{
"role": "roles/serviceAccountAdmin",
"members": [
"user:my-user@example.com"
]
}
]
}
איך נותנים או מבטלים תפקידים בודדים ב-IAM
אתם יכולים להשתמש ב Google Cloud מסוף וב-CLI של gcloud כדי לתת או לבטל במהירות תפקיד אחד לישות מורשית אחת, בלי לערוך את מדיניות ההרשאה של חשבון השירות באופן ישיר. דוגמאות לחשבונות משתמשים נפוצים: חשבונות Google, חשבונות שירות, קבוצות Google ודומיינים. רשימה של כל סוגי החשבונות הראשיים מופיעה במאמר סוגי חשבונות ראשיים.
בדרך כלל, השינויים במדיניות מתעדכנים תוך 2 דקות. עם זאת, במקרים מסוימים יכולות לחלוף 7 דקות או יותר עד שהשינויים ייכנסו לתוקף בכל המערכת.
לא בטוחים איזה תפקיד מוגדר מראש הוא המתאים ביותר? תוכלו להיעזר במאמר בחירת תפקידים מוגדרים מראש.
איך נותנים תפקיד IAM בודד
כדי לתת תפקיד לחשבון ראשי, תוכלו לבצע את הפעולות הבאות:
המסוף
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים פרויקט.
לוחצים על כתובת האימייל של חשבון השירות.
נכנסים לכרטיסייה Permissions ומחפשים את הקטע Principals with access to this service account.
בוחרים את החשבון הראשי שרוצים לתת לו את התפקיד:
כדי לתת את התפקיד לחשבון ראשי שכבר יש לו תפקידים אחרים בחשבון השירות, מחפשים את השורה שמכילה אותו ולוחצים על Edit principal ליד השורה ואז על Add another role.
כדי להקצות תפקיד לסוכן שירות, מסמנים את התיבה IncludeGoogle-provided role grants כדי לראות את כתובת האימייל שלו.
כדי לתת תפקיד לחשבון ראשי שאין לו תפקידים קיימים בחשבון השירות, לוחצים על Grant access ומזינים מזהה של החשבון הראשי, למשל
my-user@example.comאו//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com.
בוחרים את התפקיד שרוצים להקצות מהרשימה הנפתחת. בהתאם לנוהלי האבטחה המומלצים, כדאי לבחור תפקיד שמכיל רק את ההרשאות שהחשבון הראשי צריך.
אם רוצים, מוסיפים תנאי לתפקיד.
לוחצים על Save. החשבון הראשי יקבל את התפקיד בחשבון השירות.
gcloud
כדי לתת תפקיד לחשבון ראשי במהירות, תוכלו להריץ את הפקודה add-iam-policy-binding:
gcloud iam service-accounts add-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
מחליפים את המשתנים הבאים בערכים:
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.
PRINCIPAL: המזהה של החשבון הראשי או של המשתמש בקבוצה. בדרך כלל בצורה הבאה:PRINCIPAL-TYPE:ID. לדוגמה,user:my-user@example.comאוprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com. רשימה מלאה של הערכים שיכולים להיות ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים.בסוג חשבון המשתמש
user, שם הדומיין במזהה צריך להיות של Google Workspace או של Cloud Identity. בסקירה הכללית על Cloud Identity תוכלו לקרוא איך מגדירים דומיין ב-Cloud Identity.
ROLE_NAME: שם התפקיד שרוצים לתת. תוכלו להשתמש באחד מהפורמטים הבאים:- תפקידים מוגדרים מראש:
roles/SERVICE.IDENTIFIER - תפקידים בהתאמה אישית ברמת הפרויקט:
projects/PROJECT_ID/roles/IDENTIFIER - תפקידים בהתאמה אישית ברמת הארגון:
organizations/ORG_ID/roles/IDENTIFIER
רשימת התפקידים המוגדרים מראש מופיעה במאמר הסבר על התפקידים.
- תפקידים מוגדרים מראש:
CONDITION: אופציונלי. התנאי שצריך להוסיף לקישור התפקיד. בסקירה הכללית של התנאים תוכלו לקרוא בהרחבה על תנאים.
לדוגמה, כדי להעניק את התפקיד Service Account User למשתמשmy-user@example.comבחשבון השירות my-service-account@my-project.iam.gserviceaccount.com:
gcloud iam service-accounts add-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
איך מבטלים תפקידים בודדים ב-IAM
כדי לבטל תפקיד בודד שניתן לחשבון ראשי, תוכלו לבצע את הפעולות הבאות:
המסוף
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים פרויקט.
לוחצים על כתובת האימייל של חשבון השירות.
נכנסים לכרטיסייה Permissions ומחפשים את הקטע Principals with access to this service account.
מחפשים את השורה שמכילה את חשבון המשתמש שרוצים לבטל את הגישה שלו. בשורה הזו לוחצים על Edit principal.
לוחצים על Delete ליד התפקיד שרוצים לבטל ואז על Save.
gcloud
כדי לבטל תפקידים במהירות, תוכלו להריץ את הפקודה remove-iam-policy-binding:
gcloud iam service-accounts remove-iam-policy-binding SA_ID \ --member=PRINCIPAL --role=ROLE_NAME
מחליפים את המשתנים הבאים בערכים:
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.
PRINCIPAL: המזהה של החשבון הראשי או של המשתמש בקבוצה. בדרך כלל בצורה הבאה:PRINCIPAL-TYPE:ID. לדוגמה,user:my-user@example.comאוprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com. רשימה מלאה של הערכים שיכולים להיות ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים.בסוג חשבון המשתמש
user, שם הדומיין במזהה צריך להיות של Google Workspace או של Cloud Identity. בסקירה הכללית על Cloud Identity תוכלו לקרוא איך מגדירים דומיין ב-Cloud Identity.ROLE_NAME: שם התפקיד שרוצים לבטל. משתמשים באחד מהפורמטים הבאים:- תפקידים מוגדרים מראש:
roles/SERVICE.IDENTIFIER - תפקידים בהתאמה אישית ברמת הפרויקט:
projects/PROJECT_ID/roles/IDENTIFIER - תפקידים בהתאמה אישית ברמת הארגון:
organizations/ORG_ID/roles/IDENTIFIER
רשימת התפקידים המוגדרים מראש מופיעה במאמר הסבר על התפקידים.
- תפקידים מוגדרים מראש:
לדוגמה, כדי לבטל את התפקיד Service Account User מהמשתמשmy-user@example.comבחשבון השירות my-service-account@my-project.iam.gserviceaccount.com:
gcloud iam service-accounts remove-iam-policy-binding my-service-account@my-project.iam.gserviceaccount.com \ --member=user:my-user@example.com --role=roles/iam.serviceAccountUser
איך נותנים או מבטלים מספר תפקידים ב-IAM בבת אחת באמצעות מסוף Google Cloud
אתם יכולים להשתמש במסוף Google Cloud כדי להעניק ולבטל כמה תפקידים לישות מורשית אחת:
נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים פרויקט.
לוחצים על כתובת האימייל של חשבון השירות.
נכנסים לכרטיסייה Permissions ומחפשים את הקטע Principals with access to this service account.
בוחרים את החשבון הראשי שאת התפקידים שלו רוצים לשנות:
כדי לשנות את התפקידים של חשבון ראשי שכבר יש לו תפקידים בחשבון השירות, מחפשים את השורה של החשבון הראשי, לוחצים על Edit principal ליד השורה ואז על Add another role.
כדי לשנות את התפקידים של סוכן שירות, מסמנים את התיבה Include Google-provided role grants כדי לראות את כתובת האימייל שלו.
כדי לתת תפקידים לחשבון ראשי שאין לו תפקידים קיימים בחשבון השירות, לוחצים על Grant access וממלאים את כתובת האימייל או מזהה אחר של החשבון הראשי.
משנים את התפקידים של החשבון הראשי:
- כדי לתת תפקיד לחשבון ראשי שאין לו תפקידים קיימים במשאב, לוחצים על Select a role ובוחרים מהרשימה הנפתחת את התפקיד שרוצים לתת.
- כדי לתת תפקיד נוסף לחשבון הראשי, לוחצים על Add another role ובוחרים מהרשימה הנפתחת את התפקיד שרוצים לתת.
- כדי להחליף לחשבון הראשי תפקיד קיים בתפקיד אחר, לוחצים על התפקיד הקיים ובוחרים מהרשימה הנפתחת את התפקיד האחר שרוצים לתת.
- כדי לבטל תפקידים של החשבון הראשי, לוחצים על Delete ליד כל אחד מהתפקידים שרוצים לבטל.
אפשר גם להוסיף תנאי לתפקיד, לשנות את התנאי או להסיר את התנאי.
לוחצים על Save.
הענקת או ביטול מספר תפקידי IAM באופן פרוגרמטי
כדי לבצע שינויים רבים, שכוללים מתן וביטול מספר גדול של תפקידים בחשבונות ראשיים שונים, תוכלו להשתמש בתבנית read-modify-write כדי לעדכן את מדיניות ההרשאות של חשבון השירות:
- קוראים את מדיניות ההרשאות הקיימת באמצעות
getIamPolicy(). - כדי להוסיף או להסיר חשבונות ראשיים או קישורי תפקידים, עורכים את מדיניות ההרשאות באמצעות כלי לעריכת טקסט או באופן פרוגרמטי.
- כותבים את מדיניות ההרשאות המעודכנת באמצעות
setIamPolicy().
בקטע הזה נסביר איך משתמשים ב-CLI של gcloud וב-API בארכיטקטורת REST כדי לעדכן את מדיניות ההרשאות. אפשר לעדכן את מדיניות ההרשאות גם באמצעות ספריות הלקוח של IAM.
בדרך כלל, השינויים במדיניות מתעדכנים תוך 2 דקות. עם זאת, במקרים מסוימים יכולות לחלוף 7 דקות או יותר עד שהשינויים ייכנסו לתוקף בכל המערכת.
טעינת מדיניות ההרשאות הקיימת
gcloud
כדי לראות את מדיניות ההרשאות של חשבון השירות, מריצים את הפקודה get-iam-policy לחשבון השירות:
gcloud iam service-accounts get-iam-policy SA_ID --format=FORMAT > PATH
מחליפים את המשתנים הבאים בערכים:
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.
FORMAT: הפורמט של מדיניות ההרשאות. אפשר להשתמש ב-jsonאו ב-yaml.
PATH: הנתיב לקובץ החדש שייווצר עם מדיניות ההרשאות.
לדוגמה, באמצעות הפקודה הבאה המדיניות של חשבון השירות my-service-account תישמר בספריית הבית בפורמט JSON:
gcloud iam service-accounts get-iam-policy my-service-account --format json > ~/policy.json
REST
ה-method serviceAccounts.getIamPolicy מאפשרת לקבל את מדיניות ההרשאות של חשבון השירות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.-
POLICY_VERSION: הגרסה של המדיניות שתוחזר. בבקשות צריך לציין את הגרסה הכי עדכנית של המדיניות (3). פרטים נוספים מופיעים במאמר ציון גרסת מדיניות בזמן אחזור מדיניות.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:getIamPolicy
תוכן בקשת JSON:
{
"options": {
"requestedPolicyVersion": POLICY_VERSION
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התשובה תכיל את מדיניות ההרשאות של חשבון השירות. לדוגמה:
{
"version": 1,
"etag": "BwWKmjvelug=",
"bindings": [
{
"role": "roles/serviceAccountAdmin",
"members": [
"user:my-user@example.com"
]
}
]
}
שומרים את התגובה בקובץ מהסוג המתאים (json או yaml).
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
עריכת מדיניות ההרשאה
תוכלו לשנות באופן פרוגרמטי או באמצעות כלי לעריכת טקסט את העותק המקומי של מדיניות ההרשאות של חשבון השירות, כך שהמדיניות תשקף את התפקידים שאתם רוצים לתת או לבטל.
כדי לוודא שאתם לא מחליפים שינויים אחרים שנעשו, אל תערכו או תסירו את השדה etag במדיניות ההרשאות. השדה etag משמש לזיהוי המצב הנוכחי של מדיניות ההרשאות. כשאתם מגדירים את מדיניות ההרשאות המעודכנת, מתבצעת השוואה של הערך של etag מהבקשה ב-IAM לערך הקיים של etag. מדיניות ההרשאות תיכתב רק אם הערכים תואמים.
כדי לערוך את התפקידים שניתנים במדיניות ההרשאות, צריך לערוך את הקישורים בין התפקידים במדיניות ההרשאות. קישורי התפקידים מופיעים בפורמט הבא:
{ "role": "ROLE_NAME", "members": [ "PRINCIPAL_1", "PRINCIPAL_2", ... "PRINCIPAL_N" ], "conditions:" { CONDITIONS } }
מחליפים את ה-placeholders בערכים הבאים:
ROLE_NAME: שם התפקיד שרוצים לתת. תוכלו להשתמש באחד מהפורמטים הבאים:- תפקידים מוגדרים מראש:
roles/SERVICE.IDENTIFIER - תפקידים בהתאמה אישית ברמת הפרויקט:
projects/PROJECT_ID/roles/IDENTIFIER - תפקידים בהתאמה אישית ברמת הארגון:
organizations/ORG_ID/roles/IDENTIFIER
רשימת התפקידים המוגדרים מראש מופיעה במאמר הסבר על התפקידים.
- תפקידים מוגדרים מראש:
PRINCIPAL_1, PRINCIPAL_2ו-...PRINCIPAL_N: מזהי החשבונות הראשיים שאתם רוצים לתת להם את התפקיד.בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא:
PRINCIPAL-TYPE:ID. לדוגמה,user:my-user@example.comאוprincipalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com. רשימה מלאה של הערכים שיכולים להיות ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים.בסוג חשבון המשתמש
user, שם הדומיין במזהה צריך להיות של Google Workspace או של Cloud Identity. בסקירה הכללית על Cloud Identity תוכלו לקרוא איך מגדירים דומיין ב-Cloud Identity.
CONDITIONS: אופציונלי. כל התנאים שמציינים מתי תוענק גישה.
מתן תפקידים
כדי לתת תפקידים לחשבונות ראשיים, משנים את הקישורים בין התפקידים במדיניות ההרשאות. תוכלו להיעזר בהסבר הכללי על התפקידים וגם במאמר אילו תפקידים אפשר לתת לחשבון השירות. לא בטוחים איזה תפקיד מוגדר מראש הוא המתאים ביותר? תוכלו להיעזר במאמר בחירת תפקידים מוגדרים מראש.
לחלופין אפשר להשתמש בתנאים כדי להקצות תפקידים רק אם עומדים בדרישות מסוימות.
כדי לתת תפקיד שכבר כלול במדיניות ההרשאות, מוסיפים את החשבון הראשי לקישור קיים בין תפקידים:
gcloud
כדי לערוך את מדיניות ההרשאות, מוסיפים את החשבון הראשי לקישור קיים בין תפקידים. שימו לב שהשינוי הזה יתעדכן רק אחרי שתגדירו את מדיניות ההרשאות המעודכנת.
לדוגמה, נניח שמדיניות ההרשאות כוללת את הקישור הבא בין תפקידים, שנותן את התפקיד Service Account User (roles/iam.serviceAccountUser) ל-Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
כדי להעניק את אותו התפקיד ל-Raha, צריך להוסיף את Raha לקישור הקיים בין התפקידים:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
REST
כדי לערוך את מדיניות ההרשאות, מוסיפים את החשבון הראשי לקישור קיים בין תפקידים. שימו לב שהשינוי הזה יתעדכן רק אחרי שתגדירו את מדיניות ההרשאות המעודכנת.
לדוגמה, נניח שמדיניות ההרשאות כוללת את הקישור הבא בין תפקידים, שנותן את התפקיד Service Account User (roles/iam.serviceAccountUser) ל-Kai:
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com"
]
}
כדי להעניק את אותו התפקיד ל-Raha, צריך להוסיף את Raha לקישור הקיים בין התפקידים:
{ "role": "roles/iam.serviceAccountUser", "members": [ "user:kai@example.com", "user:raha@example.com" ] }
כדי להעניק תפקיד שלא כלול עדיין במדיניות ההרשאה, צריך להוסיף תפקיד חדש:
gcloud
כדי לערוך את מדיניות ההרשאות, מוסיפים קישור חדש בין תפקידים שנותן את התפקיד לחשבון הראשי. השינוי הזה לא ייכנס לתוקף עד הגדרת מדיניות ההרשאה המעודכנת.
לדוגמה, כדי לתת את התפקיד Service Account Token Creator (roles/iam.serviceAccountTokenCreator) ל-Raha, מוסיפים את הקישור הבא בין תפקידים למערך bindings במדיניות ההרשאות:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
REST
כדי לערוך את מדיניות ההרשאה צריך להוסיף קישור חדש לתפקיד שמקצה את התפקיד לחשבון המשתמש. השינוי הזה לא ייכנס לתוקף עד הגדרת מדיניות ההרשאה המעודכנת.
לדוגמה, כדי לתת את התפקיד Service Account Token Creator (roles/iam.serviceAccountTokenCreator) ל-Raha, מוסיפים את הקישור הבא בין תפקידים למערך bindings במדיניות ההרשאות:
{
"role": "roles/iam.serviceAccountTokenCreator",
"members": [
"user:raha@example.com"
]
}
ביטול תפקיד
כדי לבטל תפקיד, מסירים את החשבון הראשי מקישור התפקיד. אם אין חשבונות ראשיים אחרים בקישור בין התפקידים, מסירים את הקישור כולו ממדיניות ההרשאות.
gcloud
מסירים את החשבון הראשי או את הקישור בין התפקידים במדיניות ההרשאות. השינוי הזה יתעדכן רק אחרי שתגדירו את מדיניות ההרשאות המעודכנת.
לדוגמה, נניח שמדיניות ההרשאות כוללת את הקישור הבא בין תפקידים, שנותן לקאי ולראחה את התפקיד Service Account User (roles/iam.serviceAccountUser):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
כדי לבטל את התפקיד של Kai, מסירים את מזהה החשבון הראשי של Kai מהקישור בין התפקידים:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
כדי לבטל את התפקיד גם מ-Kai וגם מ-Raha, מסירים את הקישור בין התפקידים ממדיניות ההרשאות.
REST
מסירים את החשבון הראשי או את הקישור בין התפקידים במדיניות ההרשאות. השינוי הזה יתעדכן רק אחרי שתגדירו את מדיניות ההרשאות המעודכנת.
לדוגמה, נניח שמדיניות ההרשאות כוללת את הקישור הבא בין תפקידים, שנותן לקאי ולראחה את התפקיד Service Account User (roles/iam.serviceAccountUser):
{
"role": "roles/iam.serviceAccountUser",
"members": [
"user:kai@example.com",
"user:raha@example.com"
]
}
כדי לבטל את התפקיד של Kai, מסירים את מזהה החשבון הראשי של Kai מהקישור בין התפקידים:
{
"role": "roles/iam.serviceAccountUser",
"members": [
user:raha@example.com
]
}
כדי לבטל את התפקיד גם מ-Kai וגם מ-Raha, מסירים את הקישור בין התפקידים ממדיניות ההרשאות.
הגדרת מדיניות ההרשאה
אחרי שמשנים את מדיניות ההרשאות ונותנים או מבטלים את התפקידים הרצויים, צריך לבצע קריאה אל setIamPolicy() כדי שהשינויים יתעדכנו.
gcloud
כדי להגדיר את מדיניות ההרשאות של המשאב, מריצים את הפקודה set-iam-policy לחשבון השירות:
gcloud iam service-accounts set-iam-policy SA_ID PATH
מחליפים את המשתנים הבאים בערכים:
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.
PATH: הנתיב לקובץ שמכיל את מדיניות ההרשאות החדשה.
התשובה תכיל את מדיניות ההרשאות המעודכנת.
לדוגמה, באמצעות הפקודה הבאה תגדירו את מדיניות ההרשאות ששמורה ב-policy.json כמדיניות של חשבון השירות my-service-account@my-project.iam.gserviceaccount.com:
gcloud iam service-accounts set-iam-policy my-service-account@my-project.iam.gserviceaccount.com \ ~/policy.json
REST
השיטה
serviceAccounts.setIamPolicy
מגדירה מדיניות הרשאות מעודכנת לחשבון השירות.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
SA_ID: המזהה של חשבון השירות – כתובת האימייל שלו בפורמטSA_NAME@PROJECT_ID.iam.gserviceaccount.comאו המספר הייחודי שלו.-
POLICY: ייצוג ב-JSON של המדיניות שרוצים להגדיר. בדף העזר בנושא מדיניות תוכלו לקרוא על הפורמטים של המדיניות.לדוגמה, כדי להגדיר את מדיניות ההרשאות שהייתה בשלב הקודם, מחליפים את
policyבערך הבא:{ "version": 1, "etag": "BwUqLaVeua8=", "bindings": [ { "role": "roles/iam.serviceAccountUser", "members": [ "group:my-group@example.com" ] }, { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
שיטת ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID:setIamPolicy
תוכן בקשת JSON:
{
"policy": POLICY
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מכילה את מדיניות ההרשאה המעודכנת.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
המאמרים הבאים
- אילו תפקידים אפשר להעניק לישויות מורשות כדי לאמת את זהותן כחשבונות שירות.
- איך בוחרים את התפקידים המוגדרים מראש המתאימים ביותר
- השיטות המומלצות לשימוש בחשבונות שירות כדי לשמור על אבטחתם.
- ניהול הגישה לפרויקטים, לתיקיות ולארגונים
- השלבים הכלליים של ניהול הגישה למשאבים אחרים.
- ניהול קישורים מותנים בין תפקידים להגדרת תנאים לגישה של חשבון ראשי.
נסו בעצמכם
אתם משתמשים חדשים ב- Google Cloud? אנחנו ממליצים לכם ליצור חשבון, להתנסות בעצמכם במוצרים שלנו ולבחון אותם באמצעות תרחישים ממשיים. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
מתחילים לעבוד בלי לשלם