לפני שאתם נותנים למשתמשים תפקידים ב-IAM (הפלטפורמה לניהול זהויות והרשאות גישה), יכול להיות שתרצו לדעת אילו תפקידים אפשר לתת בכל משאב.
לפני שמתחילים
מפעילים את IAM API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםמגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
המסוף
כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud
gcloud
במסוף Google Cloud , מפעילים את Cloud Shell.
בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.
C#
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של .NET שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
C++
כדי להשתמש בדוגמאות של C++ שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
המשך
כדי להשתמש בדוגמאות של Go שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
Java
כדי להשתמש בדוגמאות של Java שבדף הזה בסביבת פיתוח מקומית, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
Python
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Python שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
אם אתם משתמשים במעטפת מקומית, אתם צריכים ליצור פרטי כניסה לאימות מקומי עבור חשבון המשתמש:
gcloud auth application-default login
אם אתם משתמשים ב-Cloud Shell, אין צורך לבצע את הפעולה הזו.
אם מוחזרת שגיאת אימות ואתם משתמשים בספק זהויות חיצוני (IdP), ודאו ש נכנסתם ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
למידע נוסף, ראו הגדרת ADC לסביבת פיתוח מקומית במאמרי העזרה בנושא אימות Google Cloud .
REST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud.
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
-
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להצגת רשימת התפקידים שאפשר לתת, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Security Reviewer (roles/iam.securityReviewer) במשאב שבשבילו רוצים לראות את רשימת התפקידים.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
getIamPolicy לכל סוגי המשאבים. כדי לראות את רשימת התפקידים שאפשר לתת, צריך את ההרשאה getIamPolicy למשאב שבשבילו רוצים לראות את הרשימה. לדוגמה, בשביל פרויקטים, צריך את ההרשאה resourcemanager.projects.getIamPolicy.
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
למה הכוונה בתפקידים שאפשר לתת
אפשר לתת תפקיד במשאב או ברמה שמעל למשאב אם הוא מכיל הרשאות לסוג המשאב הזה. לדוגמה, התפקיד storage.admin נותן הרשאות לממשקי ה-API storage.buckets.get ו-storage.objects.get, ולכן אפשר לתת אותו במשאבים מסוג קטגוריות ב-Storage ואובייקטים ב-Storage.
אפשר גם לתת תפקידים ברמה בהיררכיה שמעל סוגי המשאבים שבשבילם ההרשאות מוגדרות. זאת אומרת, אם נותנים את התפקיד במשאב מסוים בהיררכיית המשאבים של Google Cloud , הוא יינתן גם בכל המשאבים שנמצאים מתחת לאותו משאב בהיררכיה. לדוגמה, את התפקיד storage.admin אפשר לתת גם ברמת הפרויקט או הארגון, בנוסף לקטגוריות ב-Storage.
ההרשאות שהתפקיד נותן ניתנות רק למשאבים באותה הרמה או ברמות שמתחתיה בהיררכיה, ולא למשאבים שנמצאים ברמה מעל או מקבילה בהיררכיה. בנוסף, כשנותנים תפקיד במשאב, רק ההרשאות הרלוונטיות לאותו משאב ניתנות, ללא קשר לשם התפקיד, לתיאור שלו או להרשאות אחרות שהוא מכיל. לדוגמה, כשנותנים למשתמש את התפקיד resourcemanager.organizationAdmin (כלומר, את ההרשאה resourcemanager.projects.list) ברמת הפרויקט, הוא מקבל הרשאות רק לפרויקט הספציפי הזה. מי שיש לו את התפקיד הזה לא יכול לראות רשימות או לנהל אותן בכל הפרויקטים בארגון.
באותו האופן, התפקיד compute.admin במכונה ספציפית של Compute Engine נותן הרשאות רק למכונה הזו, ולא לאחרות בפרויקט.
הצגת רשימת תפקידים שאפשר להעניק
אפשר להציג את רשימת התפקידים שאפשר להקצות באמצעות מסוף Google Cloud , Google Cloud CLI, ה-API של IAM או ספריות הלקוח של IAM.
במסוף Google Cloud תמיד מופיעה רשימה של כל התפקידים שאפשר להקצות למשאב שמוצג. Google Cloud CLI, IAM API וספריות לקוח מציגים רק תפקידים שאפשר להקצות לממשקי API מופעלים.
המסוף
כדי לראות את התפקידים שאפשר להקצות לפרויקט, לתיקייה או לארגון:
נכנסים לדף IAM במסוף Google Cloud .
לוחצים על בחירת פרויקט בחלק העליון של הדף.
בוחרים את הפרויקט, התיקייה או הארגון שבהם רוצים לראות את התפקידים שאפשר להעניק.
לוחצים על Grant access.
לוחצים על בחירת תפקיד. בתפריט הזה מופיעים כל התפקידים (כולל תפקידים בהתאמה אישית) שאפשר לתת במשאב הזה.
כדי לראות אילו תפקידים אפשר לתת לסוגי משאבים אחרים:
במסוף Google Cloud , נכנסים לדף שבו מוצג המשאב שרוצים לראות את התפקידים שאפשר להעניק לו.
לדוגמה, כדי לנהל את הגישה למכונה של Compute Engine, נכנסים לדף VM instances.
מסמנים את התיבה לצד המשאב שרוצים לראות את התפקידים שאפשר להעניק לו.
מוודאים שחלונית המידע מוצגת. אם היא לא מוצגת, לוחצים על Show info panel.
לוחצים על Add principal.
לוחצים על בחירת תפקיד. בתפריט הזה מופיעים כל התפקידים, כולל תפקידים בהתאמה אישית, שאפשר לתת במשאב הזה.
gcloud
אפשר להשתמש בפקודה gcloud iam list-grantable-roles כדי להחזיר רשימה של כל התפקידים שאפשר לתת במשאב מסוים.
gcloud iam list-grantable-roles full-resource-name
בחלק מהמשאבים יכול להיות שמספר התפקידים יהיה גדול. כדי להגביל את מספר התוצאות, אפשר להשתמש בביטוי סינון.
הפלט אמור להיראות ככה:
description: Full control of all Compute Engine resources.
name: roles/compute.admin
title: Compute Admin
---
description: Full control of Compute Engine instance resources.
name: roles/compute.instanceAdmin
title: Compute Instance Admin
# Additional results here...
C++
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM C++ API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
C#
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM C# API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
Go
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Go API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
Java
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Java API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
Python
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM Python API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
REST
ה-method roles.queryGrantableRoles מחזיר רשימה של כל התפקידים שאפשר לתת במשאב.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
FULL_RESOURCE_NAME: URI שמכיל את שם השירות ואת הנתיב למשאב. לדוגמאות, תוכלו להיעזר בשמות המלאים של המשאבים
שיטת ה-HTTP וכתובת ה-URL:
POST https://iam.googleapis.com/v1/roles:queryGrantableRoles
תוכן בקשת JSON:
{
"fullResourceName": "FULL_RESOURCE_NAME"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"roles": [
{
"name": "roles/compute.admin",
"title": "Compute Admin",
"description": "Full control of all Compute Engine resources."
},
{
"name": "roles/compute.instanceAdmin",
"title": "Compute Instance Admin (beta)",
"description": "Full control of Compute Engine instance resources."
}
]
}
בדוגמאות שלמעלה, full resource name הוא URI ללא scheme שכולל שם של שירות API תואם-DNS ונתיב של משאב.
לדוגמה, כדי לקבל את כל התפקידים שאפשר לתת בפרויקט, משתמשים בישויות הבאות:
//cloudresourcemanager.googleapis.com/projects/project-id
למשאבים ברמה נמוכה יותר בהיררכיה יש שם מפורט יותר, שמוגדר במלואו. לדוגמה, תוכלו להשתמש בפקודה הבאה כדי לקבל את כל התפקידים שאפשר לתת במכונה של Compute Engine:
//compute.googleapis.com/projects/project-id/zones/zone-name/instances/instance-id
המאמרים הבאים
- אילו תפקידים זמינים ב-IAM
- איך בוחרים את התפקידים המוגדרים מראש המתאימים ביותר
- איך נותנים, משנים ומבטלים גישה לחשבונות ראשיים
- דוגמאות לשמות משאבים מסוגים שונים