הגדרה של אמצעי בקרה פרטניים לגישה לאפליקציות ולמאגרי נתונים

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

אם אתם רוצים להגביל את הגישה של משתמשי הקצה רק ברמת האפליקציה, בלי להגדיר הרשאות למאגר נתונים או תפקידים מותאמים אישית ברמת הפרויקט, תוכלו לעיין במאמר בנושא הגדרת אמצעי בקרה לגישה לאפליקציות.

סקירה כללית

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

אמצעי בקרה על הגישה ברמת המשאב מאפשרים לאדמינים:

  • הענקת גישה למשתמשים לאפליקציות ספציפיות ולמאגרי נתונים מקושרים בלי לחשוף אפליקציות אחרות באותו פרויקט.
  • להקצות ניהול אפליקציות או מעקב לקריאה בלבד לאפליקציות ספציפיות בלי להעניק זכויות ניהול נרחבות ברמת הפרויקט.
  • אכיפה של גבולות נתונים ארגוניים ומדיניות תאימות.

איך פועלים אמצעי בקרת הגישה

כדי להעניק גישה ברמת המשאב, האדמינים צריכים להגדיר שני קשרי תפקידים לכל משתמש או קבוצה. ההרשאות מוערכות באופן עצמאי: כדי לקבל תשובות ממאגר נתונים באפליקציה, צריך לתת למשתמש הרשאות גם באפליקציית היעד וגם במאגר נתוני היעד.

רמת הקישור לתפקיד סוג התפקיד מטרה, היקף ודוגמאות לתפקידים
ברמת הפרויקט תפקיד בהתאמה אישית

התפקידים המותאמים אישית שיוצרים במדריך הזה מעניקים הרשאות שנדרשות למשתמש כדי לאמת את עצמו או לטעון דפים של רשימות במסוף בכל הפרויקט, בלי לחשוף תוכן ספציפי של אפליקציות או של מאגרי נתונים.

תפקידים לדוגמה:

ברמת המשאב תפקיד מוגדר מראש

התפקידים המוגדרים מראש שאתם מקצים במשאב של האפליקציה או של מאגר הנתונים מעניקים הרשאות תפעוליות, כמו צ'אט, הגדרת הגדרות או צפייה בניתוח נתונים, אך רק במשאב הזה.

תפקידים לדוגמה:

מקרה לדוגמה

נניח שיש פרויקט ב- Google Cloud בשם cymbal-ai-project שמכיל שתי אפליקציות וכמה מאגרי נתונים:

תרחיש לדוגמה: הגבלת הגישה באפליקציות ובמאגרי נתונים
הקשר Google Cloud פרויקט ב-Cymbal בשם cymbal-ai-project מכיל שתי אפליקציות:
  • אפליקציית שירותים פיננסיים Cymbal, שמחוברת לשני מאגרי נתונים: מאגר הנתונים General Finance ומאגר הנתונים Confidential Payroll.
  • אפליקציית Cymbal HR שמחוברת למאגר הנתונים של Cymbal HR.
יעד לתת לאלכס (alex@cymbal.com) גישה לשימוש באפליקציית שירותים פיננסיים של Cymbal ולשאילת שאילתות רק במאגר הנתונים הכללי של Cymbal Finance, ולמנוע ממנו גישה למאגר הנתונים הסודי של שכר העובדים ולאפליקציית Cymbal HR.
הגדרות נדרשות כדי להגדיר את אמצעי בקרת הגישה:
  1. ברמת הפרויקט: מפעילים ב-cymbal-ai-project בקרת גישה לאפליקציות ולמאגרי נתונים, ומקצים לאלכס את התפקיד customRestrictedEndUser בפרויקט כדי שהדפדפן שלו יוכל לבצע אימות בשירות.
  2. ברמת המשאב: מעניקים לאלכס את התפקיד משתמש Gemini Enterprise (roles/discoveryengine.agentspaceUser) רק באפליקציית Cymbal Finance ובמאגר הנתונים General Finance.
תוצאה כשאלכס נכנס לחשבון, הוא יכול לפתוח את אפליקציית Cymbal Finance ולשאול שאילתות במאגר הנתונים General Finance. למרות שמאגר הנתונים הסודי של השכר מקושר לאותה אפליקציה, אלכס לא יכול לראות אותו או להריץ עליו שאילתות. גם ניסיונות לגשת אל אפליקציית Cymbal HR או לשלוח שאילתות אל מאגר הנתונים של Cymbal HR נדחים.

בתרשים הבא מודגם איך ההגדרות ברמת הפרויקט וההרשאות העצמאיות של IAM ברמת המשאב פועלות יחד בתרחיש הזה:

דיאגרמה של הגדרת מדיניות IAM מפורטת באפליקציות ובמאגרי נתונים.

לפני שמתחילים

הפעלת בקרת גישה לאפליקציות ולמאגרי נתונים

כדי להגדיר הרשאות מפורטות באפליקציות ובמאגרי נתונים או כדי להציג את הכרטיסייה הרשאות משתמש במסוף Google Cloud , צריך להפעיל את בקרת הגישה לאפליקציות ולמאגרי נתונים בפרויקט באמצעות מסוף Google Cloud או API בארכיטקטורת REST:

המסוף

כדי להפעיל את אמצעי הבקרה לגישה לאפליקציות ולמאגרי נתונים במסוף Google Cloud :

  1. במסוף Google Cloud , עוברים לדף Gemini Enterprise >‏ Settings.

    כניסה לדף Settings

  2. לוחצים על הכרטיסייה Resource access control (בקרת גישה למשאבים).

  3. מפעילים את המתג Resource access control (בקרת גישה למשאבים).

  4. לוחצים על Save.

  5. בתיבת הדו-שיח הפעלת בקרת גישה למשאבים?, לוחצים על הפעלה.

REST

כדי להפעיל את בקרת הגישה לאפליקציות ולמאגרי נתונים באמצעות API בארכיטקטורת REST, צריך להפעיל את ה-method‏ projects.patch:

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -H "x-goog-user-project: PROJECT_ID" \
  "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID?updateMask=customer_provided_config.resource_access_control_config.data_store_access_control_enabled" \
  -d '{
    "customer_provided_config": {
      "resource_access_control_config": {
        "data_store_access_control_enabled": true
      }
    }
  }'

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫ENDPOINT_LOCATION: האזור הרב-אזורי של בקשת ה-API. מציינים אחד מהערכים הבאים:
    • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
    • ‫eu עבור מספר אזורים באיחוד האירופי
    • ‫global Global location
    מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.

יצירת תפקידים בהתאמה אישית ברמת הפרויקט

תפקידים בהתאמה אישית ברמת הפרויקט מעניקים הרשאות בלי לחשוף את כל משאבי הפרויקט. צריך ליצור כל תפקיד בהתאמה אישית רק פעם אחת לכלGoogle Cloud פרויקט.

יצירת תפקיד משתמש מוגבל בהתאמה אישית

התפקיד customRestrictedEndUser מעניק הרשאות ברמת הפרויקט שנדרשות למשתמשי קצה כדי לטעון את נקודת הקצה של ההרשאה של Gemini Enterprise ואת ההגדרה של כלי הפיתוח (discoveryengine.locations.buildAuthorizationUrl ו-discoveryengine.devToolsConfigs.get). הוא לא מעניק גישה לבדיקה או לשאילתות של אפליקציות או מאגרי נתונים ספציפיים.

המסוף

כדי ליצור את התפקיד בהתאמה אישית במסוף Google Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף Roles במסוף Google Cloud .

    לדף Roles

  2. בוחרים את הפרויקט Google Cloud .

  3. לוחצים על + יצירת תפקיד בהתאמה אישית.

  4. מזינים את פרטי התפקיד:

    • תפקיד: Custom Gemini Enterprise Restricted End User
    • תיאור: Base project-level permissions to access Gemini Enterprise apps.
    • מזהה התפקיד: customRestrictedEndUser
    • שלב ההשקה של התפקיד: בוחרים באפשרות זמינות לכלל המשתמשים (GA).
  5. לוחצים על + הוספת הרשאות.

  6. מסננים ובוחרים את ההרשאות הבאות:

    • discoveryengine.devToolsConfigs.get
    • discoveryengine.locations.buildAuthorizationUrl
  7. לוחצים על הוספה.

  8. לוחצים על יצירה.

gcloud

כדי ליצור את התפקיד המותאם אישית באמצעות Google Cloud CLI, מבצעים את השלבים הבאים:

  1. מריצים את הפקודה gcloud iam roles describe כדי לוודא שהתפקיד קיים בפרויקט:

    gcloud iam roles describe customRestrictedEndUser --project=PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. מריצים את הפקודה gcloud iam roles create כדי ליצור את התפקיד:

    gcloud iam roles create customRestrictedEndUser \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted End User" \
      --description="Base project-level permissions to access Gemini Enterprise apps." \
      --stage=GA \
      --permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

REST

כדי ליצור את התפקיד בהתאמה אישית באמצעות API בארכיטקטורת REST, קוראים ל-method‏ roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedEndUser",
    "role": {
      "title": "Custom Gemini Enterprise Restricted End User",
      "description": "Base project-level permissions to access Gemini Enterprise apps.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.locations.buildAuthorizationUrl"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud.

יצירת תפקיד אדמין מוגבל בהתאמה אישית

התפקיד customRestrictedAdmin מעניק הרשאות ברמת הפרויקט שנדרשות לאדמינים ולצופים שהוקצו להם הרשאות גישה כדי לראות את רשימות המשאבים וסרגלי הצד במסוף Google Cloud , בלי להעניק גישה לצפייה בתוכן של אפליקציות או מאגרי נתונים ספציפיים או לשינוי שלהם. כדי להעניק שליטה אדמיניסטרטיבית באפליקציה או במאגר נתונים ספציפיים, צריך להקצות את התפקיד המותאם אישית הזה ברמת הפרויקט, ואז להקצות את התפקיד Gemini Enterprise Admin ‏(roles/discoveryengine.agentspaceAdmin) ישירות במשאב היעד.

המסוף

כדי ליצור את התפקיד בהתאמה אישית במסוף Google Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף Roles במסוף Google Cloud .

    לדף Roles

  2. בוחרים את הפרויקט Google Cloud .

  3. לוחצים על + יצירת תפקיד.

  4. מזינים את פרטי התפקיד:

    • תפקיד: Custom Gemini Enterprise Restricted Admin
    • תיאור: Base project-level permissions to list and view Gemini Enterprise configuration pages.
    • מזהה התפקיד: customRestrictedAdmin
    • שלב ההשקה של התפקיד: בוחרים באפשרות זמינות לכלל המשתמשים (GA).
  5. לוחצים על + הוספת הרשאות.

  6. מסננים ובוחרים את ההרשאות הבאות:

    • discoveryengine.aclConfigs.get
    • discoveryengine.collections.list
    • discoveryengine.dataStores.list
    • discoveryengine.devToolsConfigs.get
    • discoveryengine.engines.list
    • discoveryengine.licenseConfigs.list
    • discoveryengine.locations.buildAuthorizationUrl
    • discoveryengine.locations.getConnectorSource
    • discoveryengine.locations.listConnectorSources
    • discoveryengine.projects.get
    • discoveryengine.userStores.listUserLicenses
    • resourcemanager.projects.get
  7. לוחצים על הוספה.

  8. לוחצים על יצירה.

gcloud

כדי ליצור את התפקיד המותאם אישית באמצעות Google Cloud CLI, מבצעים את השלבים הבאים:

  1. מריצים את הפקודה gcloud iam roles describe כדי לוודא שהתפקיד קיים בפרויקט:

    gcloud iam roles describe customRestrictedAdmin --project=PROJECT_ID
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. מריצים את הפקודה gcloud iam roles create כדי ליצור את התפקיד:

    gcloud iam roles create customRestrictedAdmin \
      --project=PROJECT_ID \
      --title="Custom Gemini Enterprise Restricted Admin" \
      --description="Base project-level permissions to list and view Gemini Enterprise configuration pages." \
      --stage=GA \
      --permissions=discoveryengine.aclConfigs.get,discoveryengine.collections.list,discoveryengine.dataStores.list,discoveryengine.devToolsConfigs.get,discoveryengine.engines.list,discoveryengine.licenseConfigs.list,discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.getConnectorSource,discoveryengine.locations.listConnectorSources,discoveryengine.projects.get,discoveryengine.userStores.listUserLicenses,resourcemanager.projects.get
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

REST

כדי ליצור את התפקיד בהתאמה אישית באמצעות API בארכיטקטורת REST, קוראים ל-method‏ roles.create:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "roleId": "customRestrictedAdmin",
    "role": {
      "title": "Custom Gemini Enterprise Restricted Admin",
      "description": "Base project-level permissions to list and view Gemini Enterprise configuration pages.",
      "stage": "GA",
      "includedPermissions": [
        "discoveryengine.aclConfigs.get",
        "discoveryengine.collections.list",
        "discoveryengine.dataStores.list",
        "discoveryengine.devToolsConfigs.get",
        "discoveryengine.engines.list",
        "discoveryengine.licenseConfigs.list",
        "discoveryengine.locations.buildAuthorizationUrl",
        "discoveryengine.locations.getConnectorSource",
        "discoveryengine.locations.listConnectorSources",
        "discoveryengine.projects.get",
        "discoveryengine.userStores.listUserLicenses",
        "resourcemanager.projects.get"
      ]
    }
  }' \
  "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles"

מחליפים את PROJECT_ID במזהה הפרויקט ב- Google Cloud.

עדכון של תפקיד קיים בהתאמה אישית

אם כבר קיים תפקיד בהתאמה אישית בפרויקט ואתם צריכים להוסיף הרשאות חסרות, צריך לעדכן את התפקיד:

המסוף

כדי לעדכן תפקיד בהתאמה אישית במסוף Google Cloud :

  1. נכנסים לדף Roles במסוף Google Cloud .

    לדף Roles

  2. בוחרים את Google Cloud הפרויקט שבו יצרתם את התפקיד בהתאמה אישית.

  3. לוחצים על הכרטיסייה Custom או מסננים את הרשימה כדי לאתר את התפקיד המותאם אישית (customRestrictedEndUser או customRestrictedAdmin).

  4. לוחצים על השם של התפקיד בהתאמה אישית.

  5. לוחצים על עריכת התפקיד.

  6. לוחצים על + הוספת הרשאות.

  7. מחפשים את ההרשאות שרוצים להוסיף ובוחרים אותן, ואז לוחצים על הוספה.

  8. לוחצים על Save.

gcloud

כדי לעדכן תפקיד קיים בהתאמה אישית באמצעות Google Cloud CLI, מריצים את הפקודה gcloud iam roles update:

  • כדי להגדיר את תפקיד משתמש הקצה המוגבל, מריצים את הפקודה הבאה:

    gcloud iam roles update customRestrictedEndUser \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.devToolsConfigs.get,discoveryengine.locations.buildAuthorizationUrl
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  • כדי להקצות את תפקיד האדמין המוגבל, מריצים את הפקודה הבאה:

    gcloud iam roles update customRestrictedAdmin \
      --project=PROJECT_ID \
      --add-permissions=discoveryengine.locations.buildAuthorizationUrl,discoveryengine.locations.listConnectorSources
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

REST

כדי לעדכן תפקיד בהתאמה אישית באמצעות ה-API בארכיטקטורת REST, קוראים ל-method ‏roles.patch. שימו לב שהרשימה roles.patch מחליפה את הרשימה includedPermissions. צריך לציין את כל ההרשאות שרוצים שהתפקיד יכלול:

  • כדי להגדיר את תפקיד משתמש הקצה המוגבל, מריצים את הפקודה הבאה:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.locations.buildAuthorizationUrl"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedEndUser?updateMask=includedPermissions"
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  • כדי להקצות את תפקיד האדמין המוגבל, מריצים את הפקודה הבאה:

    curl -X PATCH \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "includedPermissions": [
          "discoveryengine.aclConfigs.get",
          "discoveryengine.collections.list",
          "discoveryengine.dataStores.list",
          "discoveryengine.devToolsConfigs.get",
          "discoveryengine.engines.list",
          "discoveryengine.licenseConfigs.list",
          "discoveryengine.locations.buildAuthorizationUrl",
          "discoveryengine.locations.getConnectorSource",
          "discoveryengine.locations.listConnectorSources",
          "discoveryengine.projects.get",
          "discoveryengine.userStores.listUserLicenses",
          "resourcemanager.projects.get"
        ]
      }' \
      "https://iam.googleapis.com/v1/projects/PROJECT_ID/roles/customRestrictedAdmin?updateMask=includedPermissions"
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

הקצאת תפקיד בהתאמה אישית ברמת הפרויקט

מקצים את תפקידי הפרויקט בהתאמה אישית למשתמש או לקבוצה.

המסוף

כדי להקצות את התפקיד בהתאמה אישית באמצעות מסוף Google Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים את Google Cloud הפרויקט שבו יצרתם את התפקיד בהתאמה אישית.

  3. לוחצים על Grant Access כדי להוסיף חשבון משתמש חדש או לערוך חשבון משתמש קיים.

  4. בשדה New principals, מזינים את כתובת האימייל של המשתמש או הקבוצה.

  5. בוחרים את התפקיד בהתאמה אישית שנוצר עבור הפרסונה, למשל אחד מהתפקידים הבאים:

    • משתמש קצה מוגבל ב-Gemini Enterprise בהתאמה אישית
    • אדמין מוגבל בהתאמה אישית של Gemini Enterprise
  6. לוחצים על Save.

gcloud

כדי להקצות את התפקיד בהתאמה אישית באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="projects/PROJECT_ID/roles/CUSTOM_ROLE_ID"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫CUSTOM_ROLE_ID: המזהה של התפקיד המותאם אישית שרוצים להקצות: customRestrictedEndUser או customRestrictedAdmin.
  • ‫USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

REST

כדי להקצות את התפקיד בהתאמה אישית באמצעות Cloud Resource Manager API, מבצעים את השלבים הבאים באמצעות תבנית read-modify-write:

  1. כדי לאחזר את המדיניות הנוכחית ואת etag שלה, משתמשים בשיטה getIamPolicy כדי לקבל את מדיניות ה-IAM הנוכחית:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. מגדירים את מדיניות ה-IAM המעודכנת באמצעות השיטה setIamPolicy עם מטען הייעודי (payload) של המדיניות המעודכנת:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "projects/PROJECT_ID/roles/CUSTOM_ROLE_ID",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag שקיבלתם בתגובה כשנעזרתם ב-method getIamPolicy.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים בין התפקיד לבין הגורם הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud.
    • ‫CUSTOM_ROLE_ID: המזהה של התפקיד המותאם אישית ברמת הפרויקט שרוצים להקצות. מציינים אחת מהאפשרויות הבאות:
      • ‫customRestrictedEndUser: מעניק לפרויקט הרשאות למשתמשי קצה לאימות ולגישה לאפליקציות.
      • ‫customRestrictedAdmin: מעניקה לפרויקט הרשאות לאדמינים לצפייה ברשימות משאבים במסוף Google Cloud .
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

הגדרת הרשאות שניתנות לאפליקציה

נותנים הרשאות ברמת המשאב במשאב של אפליקציית היעד באמצעות מסוףGoogle Cloud או ה-API ל-REST.

אם רוצים להקצות תפקיד בהתאמה אישית במקום תפקיד מוגדר מראש במדיניות IAM ברמת האפליקציה, צריך לוודא שהתפקיד בהתאמה אישית כולל את כל ההרשאות של התפקיד המוגדר מראש התואם, כמו משתמש ב-Gemini Enterprise (roles/discoveryengine.agentspaceUser) או אדמין של Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

המסוף

כדי להגדיר הרשאות שניתנות לאפליקציה במסוף Google Cloud :

  1. במסוף Google Cloud , נכנסים לדף Gemini Enterprise >‏ Apps.

    מעבר אל 'אפליקציות'

  2. בוחרים את אפליקציית היעד.

  3. לוחצים על הרשאות משתמש ואז על הוספת משתמש.

  4. בוחרים את התפקיד של המשתמש או הקבוצה:

  5. לוחצים על Save.

REST

כדי להגדיר הרשאות שניתנות לאפליקציה באמצעות API בארכיטקטורת REST, מבצעים את השלבים הבאים באמצעות תבנית קריאה-שינוי-כתיבה:

  1. כדי לאחזר את המדיניות הנוכחית ואת etag שלה, משתמשים בשיטה getIamPolicy כדי לקבל את מדיניות ה-IAM הנוכחית:

    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 Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: ‫global,‏ us או eu.
    • ‫APP_ID: המזהה של האפליקציה שרוצים להגדיר.
  2. מגדירים את מדיניות ה-IAM המעודכנת באמצעות השיטה setIamPolicy עם מטען הייעודי (payload) של המדיניות המעודכנת:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "PREDEFINED_ROLE",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/engines/APP_ID:setIamPolicy"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag שקיבלתם בתגובה כשנעזרתם ב-method getIamPolicy.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים בין התפקיד לבין הגורם הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • ‫USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה (לדוגמה, alex@example.com).
      • כדי להעניק גישה, מוסיפים את כתובות האימייל של המשתמשים למערך members, כשכל כתובת מתחילה בקידומת user:. מומלץ להימנע מרווחים מיותרים לפני כתובת האימייל או אחריה.
      • כדי לבטל את הגישה, מסירים את כתובת האימייל של המשתמש מהמערך members.
    • ‫PREDEFINED_ROLE: התפקיד המוגדר מראש שרוצים להקצות לאפליקציה. לדוגמה, משתמש Gemini Enterprise (roles/discoveryengine.agentspaceUser) למשתמשי קצה, אדמין Gemini Enterprise (roles/discoveryengine.agentspaceAdmin) לאדמינים או צפייה ב-Gemini Enterprise (roles/discoveryengine.agentspaceViewer) לצופים. מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.
    • ‫PROJECT_ID: מזהה הפרויקט ב-Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי של בקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: ‫global,‏ us או eu.
    • ‫APP_ID: המזהה של האפליקציה שרוצים להגדיר.

הגדרת ההרשאות למאגר הנתונים

כדי להגדיר הרשאות גישה לנתונים, צריך להעניק הרשאות ברמת המשאב במאגר הנתונים של היעד באמצעות Google Cloud המסוף או REST API. משתמשי קצה יכולים להתחבר רק למאגרי נתונים שיש להם הרשאה מפורשת לגשת אליהם, ולשאול בהם שאילתות.

אם רוצים להקצות תפקיד בהתאמה אישית במקום תפקיד מוגדר מראש במדיניות IAM של מאגר הנתונים, צריך לוודא שהתפקיד בהתאמה אישית כולל את כל ההרשאות של התפקיד המוגדר מראש התואם, כמו משתמש Gemini Enterprise (roles/discoveryengine.agentspaceUser) או אדמין Gemini Enterprise (roles/discoveryengine.agentspaceAdmin).

במחברים של צד שלישי שמחילים הרשאות למסמכים של משתמשי קצה, הגישה של משתמשי קצה למסמכים ספציפיים ממשיכה להיות כפופה לרשימות בקרת הגישה (ACL) שמסונכרנות ממערכת המקור (הענקת גישה ל-IAM לא עוקפת את רשימות ה-ACL של המקור).

כדי למצוא את מאגרי הנתונים, האוספים ומזהי הישויות, אפשר לעיין במאמר קבלת פרטים על מאגר נתונים וישות.

המסוף

כדי להגדיר הרשאות למאגר נתונים במסוף Google Cloud , מבצעים את השלבים הבאים. הרשאות שמוקצות למאגר נתונים במסוף Google Cloud מועברות אוטומטית לכל ישויות הצאצא שמתחתיו:

  1. במסוף Google Cloud , נכנסים לדף Gemini Enterprise >‏ Data Stores.

    מעבר לדף Data Stores

  2. לוחצים על השם של מאגר הנתונים.

  3. לוחצים על הרשאות משתמש > הוספת משתמש.

  4. בוחרים את התפקיד של המשתמש או הקבוצה:

  5. לוחצים על Save.

REST

כדי להגדיר הרשאות למאגר נתונים באמצעות API בארכיטקטורת REST, מרחיבים את הקטע שמתאים להגדרת מאגר הנתונים:

מאגרי נתונים עם ישויות

משתמשים באפשרות הזו למחברים של צד שלישי שמכילים כמה סוגים של ישויות, כמו Jira,‏ Salesforce,‏ Confluence או SharePoint Online. כשמשתמשים ב-API בארכיטקטורת REST, ההרשאות לא מועברות אוטומטית מאוסף המחברים הראשי לישויות המשנה. צריך להעניק את אותן הרשאות גם למשאב האוסף הראשי וגם לכל מאגרי הנתונים של הישויות הבסיסיות (לא מגדירים הרשאות רק לקבוצת משנה של ישויות).

כדי להגדיר הרשאות למאגרי נתונים עם ישויות:

  1. מקבלים את מדיניות ה-IAM הנוכחית לאיסוף של מחבר הנתונים:

    קוראים את המדיניות הנוכחית באמצעות getIamPolicy ואת etag שלה:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:getIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫COLLECTION_ID: מזהה האוסף של מחבר הנתונים. מידע נוסף זמין במאמר קבלת פרטים על מאגר נתונים וישות.
  2. מגדירים את מדיניות ה-IAM המעודכנת באוסף של מחבר הנתונים:

    קריאה ל-setIamPolicy כולל etag וקישור התפקיד:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/COLLECTION_ID:setIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag שקיבלתם כתשובה כשנעזרתם ב-method getIamPolicy בשלב 1.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים לתפקיד ולחשבון הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.
    • ‫PREDEFINED_ROLE: התפקיד המוגדר מראש שרוצים להקצות לאוסף. לדוגמה, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) למשתמשי קצה, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) לאדמינים או Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) למשתמשים עם הרשאת צפייה. מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫COLLECTION_ID: מזהה האוסף של מחבר הנתונים.
  3. טעינת מדיניות ה-IAM הנוכחית של מאגר נתונים של ישויות:

    ב-Gemini Enterprise, מאגרי נתונים של ישויות צאצא נמצאים בתיקייה default_collection ומופיע לפניהם מזהה האוסף של המחבר. מתקשרים אל getIamPolicy במאגר נתוני הישויות בקטע default_collection:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:getIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫DATA_STORE_ENTITY_ID: המזהה של מאגר נתוני הישות (לדוגמה, DataConnector3_entityA). מידע נוסף זמין במאמר קבלת פרטים על מאגר נתונים וישות.
  4. מגדירים את מדיניות ה-IAM המעודכנת במאגר הנתונים של ישויות:

    קוראים ל-setIamPolicy במאגר נתוני הישות, כולל etag:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ENTITY_ID:setIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag שקיבלתם כתשובה כשנעזרתם ב-method getIamPolicy בשלב 3.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים לתפקיד ולחשבון הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.
    • ‫PREDEFINED_ROLE: התפקיד המוגדר מראש שרוצים להקצות למאגר נתוני הישות. לדוגמה, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) למשתמשי קצה, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) לאדמינים או Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) למשתמשים עם הרשאת צפייה. מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫DATA_STORE_ENTITY_ID: המזהה של מאגר הנתונים של הישות.

חוזרים על שלבים 3 ו-4 לכל מאגר נתוני ישויות בקטע data connector. אם בהמשך תגדירו את המחבר לסנכרון של סוגי ישויות נוספים, תצטרכו להגדיר מדיניות IAM בכל מאגר נתונים של ישות שנוצר לאחרונה.

מאגרי נתונים ללא ישויות

אפשר להשתמש באפשרות הזו למאגרי נתונים עצמאיים, כמו Cloud Storage,‏ BigQuery או מקורות נתונים שלא מכילים ישויות. מגדירים הרשאות ישירות במשאב של מאגר הנתונים היחיד בקטע default_collection.

כדי להגדיר הרשאות למאגרי נתונים ללא ישויות:

  1. אחזור מדיניות ה-IAM הנוכחית של מאגר הנתונים:

    קוראים את המדיניות הנוכחית באמצעות getIamPolicy ואת etag שלה:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:getIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫DATA_STORE_ID: המזהה של מאגר הנתונים. מידע נוסף זמין במאמר קבלת פרטים על מאגר נתונים וישות.
  2. מגדירים את מדיניות ה-IAM המעודכנת במאגר הנתונים:

    קריאה ל-setIamPolicy כולל etag וקישור התפקיד:

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{
      "policy": {
        "etag": "ETAG",
        "bindings": [
          {
            "role": "EXISTING_ROLE",
            "members": [
              "user:EXISTING_USER_EMAIL"
            ]
          },
          {
            "role": "PREDEFINED_ROLE",
            "members": [
              "user:USER_EMAIL"
            ]
          }
        ]
      }
    }' \
    "https://ENDPOINT_LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID:setIamPolicy"

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag שקיבלתם כתשובה כשנעזרתם ב-method getIamPolicy בשלב 1.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים לתפקיד ולחשבון הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.
    • ‫PREDEFINED_ROLE: התפקיד המוגדר מראש שרוצים להקצות למאגר הנתונים. לדוגמה, Gemini Enterprise User (roles/discoveryengine.agentspaceUser) למשתמשי קצה, Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin) לאדמינים או Gemini Enterprise Viewer (roles/discoveryengine.agentspaceViewer) למשתמשים עם הרשאת צפייה. מידע נוסף מופיע במאמר בנושא תפקידים מוגדרים מראש.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud .
    • ‫ENDPOINT_LOCATION: האזור הרב-אזורי לבקשת ה-API. מציינים אחד מהערכים הבאים:
      • ‫us לאזור הגיאוגרפי בארה"ב שכולל מספר אזורים
      • ‫eu עבור מספר אזורים באיחוד האירופי
      • ‫global Global location
      מידע נוסף זמין במאמר בנושא ציון אזור מרובה עבור מאגר הנתונים.
    • ‫LOCATION: האזור המרובה של מאגר הנתונים: global,‏ us או eu.
    • ‫DATA_STORE_ID: המזהה של מאגר הנתונים.

איך מעניקים גישה ל-Gemini Notebook Enterprise ולתכונות של כלי פיתוח מבוססי-AI

משתמשים עם גישה מוגבלת שהוקצה להם התפקיד customRestrictedEndUser ברמת הפרויקט מאבדים את הגישה לתכונות כמו כלי AI למפתחים ו-Gemini Notebook Enterprise, כי התפקיד שלהם בפרויקט כולל רק הרשאות בסיסיות.

הענקת התפקיד המלא Gemini Enterprise User (roles/discoveryengine.agentspaceUser) ברמת הפרויקט מבטלת את הבידוד וחושפת את כל האפליקציות ומאגרי הנתונים בפרויקט. במקום זאת, אדמינים יכולים לתת תפקידים מצומצמים ברמת הפרויקט שמתייחסים לתכונות ספציפיות.

הענקת גישה ל-Gemini Notebook Enterprise

מקצים את התפקיד Cloud NotebookLM User (roles/discoveryengine.notebookLmUser) כדי לאפשר למשתמשים עם גישה מוגבלת ליצור מחברות ולהשתמש בהן בלי לחשוף אפליקציות או מאגרי נתונים:

המסוף

כדי לתת גישה באמצעות מסוף Google Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים את הפרויקט Google Cloud .

  3. מוצאים את המשתמש או הקבוצה ברשימת ההרשאות ולוחצים על עריכת חשבון המשתמש. אפשרות נוספת היא ללחוץ על Grant access כדי להוסיף משתמש חדש.

  4. בקטע הקצאת תפקידים, לוחצים על הוספת תפקיד נוסף.

  5. בשדה Select a role (בחירת תפקיד), מחפשים את התפקיד Cloud NotebookLM User (roles/discoveryengine.notebookLmUser) ובוחרים בו.

  6. לוחצים על Save.

gcloud

כדי להעניק גישה באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/discoveryengine.notebookLmUser"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

REST

כדי לתת גישה באמצעות API בארכיטקטורת REST, צריך לעדכן את מדיניות IAM של הפרויקט באמצעות ה-method setIamPolicy:

  1. כדי לאחזר את המדיניות הנוכחית ואת etag שלה, משתמשים בשיטה getIamPolicy כדי לקבל את מדיניות ה-IAM הנוכחית:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. מגדירים את מדיניות ה-IAM המעודכנת באמצעות ה-method‏ setIamPolicy עם התפקיד roles/discoveryengine.notebookLmUser:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/discoveryengine.notebookLmUser",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag מהתגובה getIamPolicy.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים בין התפקיד לבין הגורם הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud.
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

הענקת גישה לכלים מבוססי-AI למפתחים

כדי להפעיל כלי פיתוח מבוססי-AI בלי לחשוף את אפליקציות Gemini Enterprise או את מאגרי הנתונים שלהם, צריך להקצות את התפקידים Gemini for Google Cloud User (roles/cloudaicompanion.user) ו-User role for Business AI Code API (roles/businessaicode.user).

המסוף

כדי לתת גישה באמצעות מסוף Google Cloud , פועלים לפי השלבים הבאים:

  1. נכנסים לדף IAM במסוף Google Cloud .

    כניסה לדף IAM

  2. בוחרים את הפרויקט Google Cloud .

  3. מוצאים את המשתמש או הקבוצה ברשימת ההרשאות ולוחצים על עריכת חשבון המשתמש. אפשרות נוספת היא ללחוץ על Grant access כדי להוסיף משתמש חדש.

  4. בקטע הקצאת תפקידים, מקצים כל אחד מהתפקידים הבאים:

    • ‫Gemini ל-Google Cloud User ‏ (roles/cloudaicompanion.user)
    • תפקיד משתמש ב-Business AI Code API ‏ (roles/businessaicode.user)
  5. לוחצים על Save.

gcloud

כדי להעניק גישה באמצעות Google Cloud CLI, מריצים את הפקודות הבאות:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/cloudaicompanion.user"

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="user:USER_EMAIL" \
  --role="roles/businessaicode.user"

מחליפים את מה שכתוב בשדות הבאים:

  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
  • ‫USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

REST

כדי לתת גישה באמצעות API בארכיטקטורת REST, צריך לעדכן את מדיניות IAM של הפרויקט באמצעות ה-method setIamPolicy:

  1. כדי לאחזר את המדיניות הנוכחית ואת etag שלה, משתמשים בשיטה getIamPolicy כדי לקבל את מדיניות ה-IAM הנוכחית:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{}' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy"
    

    מחליפים את PROJECT_ID במזהה שלGoogle Cloud הפרויקט.

  2. מגדירים את מדיניות ה-IAM המעודכנת באמצעות השיטה setIamPolicy עם התפקידים roles/cloudaicompanion.user ו-roles/businessaicode.user:

    curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      -d '{
        "policy": {
          "etag": "ETAG",
          "bindings": [
            {
              "role": "EXISTING_ROLE",
              "members": [
                "user:EXISTING_USER_EMAIL"
              ]
            },
            {
              "role": "roles/cloudaicompanion.user",
              "members": [
                "user:USER_EMAIL"
              ]
            },
            {
              "role": "roles/businessaicode.user",
              "members": [
                "user:USER_EMAIL"
              ]
            }
          ]
        }
      }' \
      "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ETAG: הערך etag מהתגובה getIamPolicy.
    • ‫EXISTING_ROLE ו-EXISTING_USER_EMAIL: הקישורים הקיימים בין התפקיד לבין הגורם הראשי שמוחזרים על ידי השיטה getIamPolicy שרוצים לשמור.
    • ‫PROJECT_ID: המזהה של הפרויקט ב- Google Cloud.
    • USER_EMAIL: כתובת האימייל של המשתמש או הקבוצה.

מה השלב הבא?

אם רוצים למחוק אפליקציה עם מדיניות IAM, אפשר להסיר את המשתמשים מהמדיניות לפני שמוחקים את האפליקציה. למידע נוסף, אפשר לעיין במאמר שיטות מומלצות למחיקת אפליקציה עם מדיניות IAM.