בדף הזה מוסבר איך אדמינים ב-Gemini Enterprise יכולים להשתמש ב-API כדי לנהל בקרת גישה מפורטת לאפליקציות ספציפיות של Gemini Enterprise.
אם אתם צריכים להגדיר בקרת גישה מפורטת ברמת המשאב גם לאפליקציות וגם למאגרי נתונים, קראו את המאמר הגדרת בקרת גישה מפורטת לאפליקציות ולמאגרי נתונים.
כברירת מחדל, הרשאות IAM מנוהלות בדרך כלל ברמת הפרויקט. IAM ברמת האפליקציה מאפשר שליטה פרטנית יותר, ומאפשר לאדמינים:
- להגביל את הגישה של המשתמשים לאפליקציות ספציפיות באותו פרויקט ב- Google Cloud .
- להתאים את ההרשאות לצרכים של הארגון ולסילו הנתונים בפריסות של Gemini Enterprise.
לדוגמה, נניח שיש בארגון אפליקציה של משאבי אנוש ואפליקציה לכלל החברה. חבר בצוות משאבי האנוש עם הרשאות ברמת הפרויקט יכול לגשת לשתי האפליקציות. לעומת זאת, באמצעות מדיניות IAM ברמת האפליקציה, אתם יכולים לתת לחבר בצוות המכירות גישה רק לאפליקציה של כלל החברה, וכך למנוע ממנו גישה לאפליקציה של משאבי האנוש.

לפני שמתחילים
מוודאים שיש לכם את התפקיד אדמין ב-Gemini Enterprise (
roles/discoveryengine.agentspaceAdmin).מוודאים שלכל משתמשי Gemini Enterprise יש רישיון תקף, ושהוקצה להם התפקיד Gemini Enterprise Restricted User (
roles/discoveryengine.agentspaceRestrictedUser) ברמת הפרויקט. איך נותנים הרשאות למשתמשיםהתפקיד הזה לא מעניק גישה לאפליקציה כלשהי בפני עצמו. הוא מספק את הגישה ברמת הפרויקט שהמשתמשים צריכים, ואז אתם נותנים גישה לאפליקציות ספציפיות. אם אתם משתמשים בתפקיד בהתאמה אישית ברמת הפרויקט במקום בתפקיד
roles/discoveryengine.agentspaceRestrictedUserשהוגדר מראש, ודאו שהתפקיד בהתאמה אישית כולל את ההרשאותdiscoveryengine.locations.buildAuthorizationUrl,discoveryengine.dataStores.get,discoveryengine.collections.getו-discoveryengine.devToolsConfigs.get. אם משמיטים אתdiscoveryengine.devToolsConfigs.get, מתקבלת השגיאה403 PERMISSION_DENIEDביומני הביקורת של Cloud כשאפליקציית האינטרנט בודקת אתdevToolsConfig.
מעבר מגישה ברמת הפרויקט לגישה ברמת האפליקציה
כדי להגביל את המשתמשים לאפליקציות ספציפיות, צריך להחליף את התפקיד "משתמש ב-Gemini Enterprise" ברמת הפרויקט בתפקיד "משתמש עם הרשאות מוגבלות ב-Gemini Enterprise", ואז להקצות את התפקיד "משתמש ב-Gemini Enterprise" ברמת האפליקציה הספציפית.
כדי להעביר משתמש מגישה ברמת הפרויקט לגישה ברמת האפליקציה: אתם משתמשים במסוף Google Cloud לשינויים ברמת הפרויקט, וב-API להקצאה ברמת האפליקציה, כי מסוף Google Cloud לא תומך בה.
- נכנסים לדף IAM במסוף Google Cloud .
- מוצאים את המשתמש ומסירים את התפקיד "משתמש ב-Gemini Enterprise" (
roles/discoveryengine.agentspaceUser) מההרשאות שלו ברמת הפרויקט. - אם עדיין לא עשיתם את זה, נותנים למשתמש את התפקיד Gemini Enterprise Restricted User (
roles/discoveryengine.agentspaceRestrictedUser) ברמת הפרויקט. - משתמשים ב-
setIamPolicyכדי להקצות למשתמש את התפקיד "משתמש ב-Gemini Enterprise" (roles/discoveryengine.agentspaceUser) לכל אפליקציה ספציפית שהוא צריך לגשת אליה. מידע נוסף זמין במאמר ניהול מדיניות IAM לאפליקציות.
ניהול מדיניות IAM לאפליקציות
כדי לנהל את הגישה לאפליקציית Gemini Enterprise, אתם יכולים להשתמש בשיטות ה-API getIamPolicy ו-setIamPolicy.
בשלבים הבאים מוסבר איך לאחזר את המדיניות הנוכחית, ואז לעדכן אותה כדי להעניק או לבטל את הגישה של המשתמש.
קבלת מדיניות ה-IAM של האפליקציה
משיגים את מדיניות ה-IAM הנוכחית של האפליקציה באמצעות השיטה getIamPolicy. מומלץ לאחזר קודם את המדיניות הקיימת כדי להימנע מדריסת ההרשאות הנוכחיות.
REST
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:getIamPolicy"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט. -
ENDPOINT_LOCATION: האזור המרובה לבקשת ה-API. מציינים אחד מהערכים הבאים:-
usלאזור הגיאוגרפי שכולל מספר אזורים בארה"ב -
euלמספר אזורים באיחוד האירופי -
globalלמיקום הגלובלי
-
-
LOCATION: האזור של מאגר הנתונים:global,usאוeu
APP_ID: המזהה של האפליקציה שרוצים להגדיר.
עדכון מדיניות ה-IAM של האפליקציה
כדי להעניק למשתמשים גישה לאפליקציה או לבטל את הגישה שלהם, מעדכנים את מדיניות ה-IAM של האפליקציה באמצעות השיטה setIamPolicy.
מדיניות ה-IAM משתמשת בתפקיד Gemini Enterprise User (roles/discoveryengine.agentspaceUser) כדי לתת למשתמשים גישה ישירה לאפליקציה.
REST
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"policy": {
"etag": "ETAG",
"bindings": [
{
"role": "roles/discoveryengine.agentspaceUser",
"members": [
"user:USER_EMAIL",
"group:GROUP_EMAIL",
"principal://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ID",
"principalSet://iam.googleapis.com/locations/global/workloadIdentityPools/POOL_ID/attribute.NAME/VALUE"
]
}
]
}
}' \
"https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
מחליפים את מה שכתוב בשדות הבאים:
ETAG: הערך שלetagשקיבלתם בתגובה כשהשתמשתם ב-methodgetIamPolicy.
USER_EMAIL,GROUP_EMAIL: כתובת אימייל אחת או יותר של משתמש או קבוצה. בנוסף ל-userול-group, גםprincipalו-principalSetהם סוגי חברים תקינים לאיחוד שירותי אימות הזהות של עומסי עבודה.כדי לתת גישה, מוסיפים חשבונות משתמשים למערך
members. לדוגמה,"user:cloudysanfrancisco@gmail.com"או"group:mcymbalgroup@google.com".כדי לבטל את הגישה, מסירים את החשבונות הראשיים מהמערך
members.
POOL_ID: המזהה של מאגר הזהויות של עומסי העבודה.
SUBJECT_ID: מזהה הנושא של זהות ספציפית.
NAME: שם המאפיין.
VALUE: הערך של מאפיין.
PROJECT_ID: מזהה הפרויקט.
ENDPOINT_LOCATION: האזור המרובה לבקשת ה-API. מציינים אחד מהערכים הבאים:-
usלאזור הגיאוגרפי שכולל מספר אזורים בארה"ב -
euלמספר אזורים באיחוד האירופי -
globalלמיקום הגלובלי
-
LOCATION: האזור של מאגר הנתונים:global,usאוeu.
APP_ID: המזהה של האפליקציה שרוצים להגדיר.
מה השלב הבא?
אם אתם רוצים למחוק אפליקציה עם מדיניות IAM, אתם יכולים להסיר את המשתמשים מהמדיניות לפני שאתם מוחקים את האפליקציה. למידע נוסף, קראו את השיטות המומלצות למחיקת אפליקציה עם מדיניות IAM.