רוב Cloud de Confiance by S3NS המשאבים חושפים את ה-method testIamPermissions(), שמאפשרת לבדוק באופן פרוגרמטי אם למשתמש המאומת יש הרשאות ספציפיות למשאב ב-IAM. ה-method testIamPermissions() מקבלת מזהה משאב וסדרת הרשאות כפרמטרים של קלט, ומחזירה את סדרת ההרשאות שיש למשתמש ששלח את הקריאה.
תוכלו להשתמש ב-testIamPermissions() כדי להחליט אם למשתמש צריכה להיות גישה לכלי אדמין באפליקציית אינטרנט. לדוגמה, אפשר להשתמש בשיטה הזו כדי להחליט, על סמך ההרשאות של המשתמש, האם להציג מידע מפורט על משאב Cloud de Confiance .
לדוגמה, כדי לקבוע אם למשתמש המאומת יש הרשאה למחוק פרויקט, קוראים ל-method projects.testIamPermissions() עם מזהה הפרויקט (למשל foo-project) וההרשאה resourcemanager.projects.delete כפרמטרים של הקלט. אם למשתמש ששלח את הקריאה יש את ההרשאה resourcemanager.projects.delete, היא תופיע בגוף התשובה. אם אין לו את ההרשאה הזו, בגוף התשובה לא תופיע אף הרשאה.
ה-method testIamPermissions() מיועדת לממשקי משתמש גרפיים (GUI) של צד שלישי, שצריכים להציג משאבים Cloud de Confiance בהתאם להרשאות שיש למשתמש המאומת לראות. לדוגמה, במסוףCloud de Confiance משתמשים ב-method testIamPermissions() כדי לקבוע אילו משאבים ופונקציות יהיו גלויים אחרי האימות. בדרך כלל למשתמשים שונים יש הרשאות שונות, והפריטים מוצגים או מוסתרים במסוף Cloud de Confiance בהתאם להרשאות.
לפני שמתחילים
מפעילים את Resource Manager API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמגדירים אימות.
צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:
C#
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של .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 .
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 כדי לבדוק את ההרשאות.
איך בודקים הרשאות
בדוגמה הזו תוכלו לראות איך בודקים את ההרשאות resourcemanager.projects.get ו-resourcemanager.projects.delete בCloud de Confiance פרויקט. כדי לבדוק את ההרשאות במשאבים אחרים של Cloud de Confiance , משתמשים ב-method testIamPermissions() שכל אחד מהמשאבים חושף. לדוגמה, תוכלו לבדוק את ההרשאות ב-IAM לקטגוריה של Cloud Storage.
C++
במאמר ספריות הלקוח של IAM מוסבר איך להתקין את ספריית הלקוח ולהשתמש בה ב-IAM. למידע נוסף, קראו את מאמרי העזרה של IAM C++ API.
כדי לבצע אימות ב-IAM, צריך להגדיר את Application Default Credentials. מידע נוסף מופיע במאמר לפני שמתחילים.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
C#
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
ההרשאות של חשבון השירות שבו נוצרו פרטי הכניסה נבדקות ב-IAM.
Java
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
ההרשאות של חשבון השירות שבו נוצרו פרטי הכניסה נבדקות ב-IAM.
Python
כדי לבצע אימות למנהל המשאבים, מגדירים את ה-Application Default Credentials מידע נוסף מופיע במאמר לפני שמתחילים.
מידע על התקנת ספריית הלקוח למנהל המשאבים והשימוש בה מופיע במאמר ספריות הלקוח של מנהל המשאבים.
ההרשאות של חשבון השירות שבו נוצרו פרטי הכניסה נבדקות ב-IAM.
REST
בדוגמה הזו, למשתמש יש ב-IAM תפקיד שמאפשר לו לקבל מידע על הפרויקט, אבל לא למחוק פרויקטים.
ה-method projects.testIamPermissions ב-Resource Manager API מקבלת רשימת הרשאות ובודקת אילו הרשאות יש לחשבון המשתמש.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance . מזהי פרויקטים הם מחרוזות אלפאנומריות, כמוmy-project.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:testIamPermissions
תוכן בקשת JSON:
{
"permissions": [
"resourcemanager.projects.get",
"resourcemanager.projects.delete"
]
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"permissions": [
"resourcemanager.projects.get"
]
}