בקרת גישה באמצעות IAM

בדף הזה מתוארים התפקידים וההרשאות של ניהול הזהויות והרשאות הגישה (IAM) שנדרשים כדי לרכוש ולנהל מוצרים מסחריים ב-Cloud Marketplace.

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

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

  • כדי להקצות תפקידים והרשאות ב-Cloud Marketplace באמצעות gcloud, צריך להתקין את ה-CLI של gcloud. אחרת, אתם יכולים להקצות תפקידים באמצעות מסוף Google Cloud .

רכישה וניהול של תפקידים

מומלץ להקצות את התפקיד Billing Account Administrator ב-IAM למשתמשים שרוכשים שירותים מ-Cloud Marketplace.

משתמשים שרוצים לגשת לשירותים צריכים לפחות את התפקיד Viewer.

הרשאת אדמין ל-OAuth 2.0 ולאימות דומיין

אם הפתרון שלכם ב-Marketplace דורש אימות OAuth 2.0 או הגדרה ברמת הדומיין (למשל, לשילוב SaaS), אתם צריכים הרשאות אדמין כדי לנהל את הגדרות הזהות והאבטחה של הפרויקט.

תרחיש ההרשאה או התפקיד הנדרשים פעולה
איך מקבלים שוב הרשאת אדמין roles/resourcemanager.organizationAdmin כדי לנהל את Project Owner, צריך להקצות את התפקיד הזה ברמת הארגון.
אימות דומיינים מורשים roles/cloudsecurityscanner.editor התפקיד הזה מאפשר לנהל את אבטחת האינטרנט והגדרות שקשורות לדומיין.
ניהול אימות OAuth roles/owner או roles/editor מגדירים את מסך ההסכמה ל-OAuth ושולחים את המיתוג לבדיקה.

כדי לפתור בעיות אימות נפוצות, כמו "הדומיין לא נמצא" או כתובות URL של דף הבית שלא מגיבות, ודאו שהדומיין מאומת ב-Search Console ושהגישה למדיניות הפרטיות שלכם פתוחה לכולם. מידע נוסף על אימות הזהות זמין במאמר אימות הזהות.

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

דרישות ספציפיות למוצר

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

  • Google Cloud Dataprep by Trifacta
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

רשימה של תפקידים והרשאות ב-IAM

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

Role Permissions

(roles/consumerprocurement.entitlementManager)

Allows managing entitlements and enabling, disabling, and inspecting service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.*

  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.entitlementViewer)

Allows inspecting entitlements and service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.eventsViewer)

Allows viewing key events for an offer

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

(roles/consumerprocurement.licensePoolEditor)

Allows managing license pools and license assignments.

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

(roles/consumerprocurement.licensePoolViewer)

Allows viewing license pools and license assignments.

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

(roles/consumerprocurement.orderAdmin)

Allows managing purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

(roles/consumerprocurement.orderViewer)

Allows inspecting purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

(roles/consumerprocurement.procurementAdmin)

Allows managing purchases, consents at both billing account and project level.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list
  • consumerprocurement.consents.allowProjectGrant
  • consumerprocurement.consents.check
  • consumerprocurement.consents.grant
  • consumerprocurement.consents.list
  • consumerprocurement.consents.revoke
  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • consumerprocurement.events.get
  • consumerprocurement.events.list
  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list
  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update
  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update
  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.procurementViewer)

Allows inspecting purchases, consents and entitlements and service states for a consumer project.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

הקצאת תפקידי IAM למשתמשים

מבין התפקידים שמופיעים בטבלה שלמעלה, צריך להקצות את התפקידים consumerprocurement.orderAdmin ו-consumerprocurement.orderViewer ברמת החשבון לחיוב או ברמת הארגון, ואת התפקידים consumerprocurement.entitlementManager ו-consumerprocurement.entitlementViewer ברמת הפרויקט או ברמת הארגון.

כדי להקצות תפקידים למשתמשים באמצעות gcloud, מריצים את אחת מהפקודות הבאות:

ארגון

כדי להקצות תפקידים ברמת הארגון, צריך להיות לכם התפקיד resourcemanager.organizationAdmin.

gcloud organizations add-iam-policy-binding organization-id \
--member=member --role=role-id

הערכים הזמניים לשמירת מקום (placeholders) הם:

  • ‫organization-id: המזהה המספרי של הארגון שאתם מקצים לו את התפקיד.
  • ‫member: המשתמש שאתם נותנים לו גישה.
  • ‫role-id: מזהה התפקיד, מהטבלה הקודמת.

חשבון לחיוב

כדי להקצות תפקידים ברמת החשבון לחיוב, צריך להיות לכם התפקיד billing.admin.

gcloud beta billing accounts set-iam-policy account-id \
policy-file

הערכים הזמניים לשמירת מקום (placeholders) הם:

  • ‫account-id: מזהה החשבון לחיוב, שאפשר לקבל מהדף Manage billing accounts.
  • ‫policy-file: קובץ מדיניות IAM, בפורמט JSON או YAML. קובץ המדיניות חייב להכיל את מזהי התפקידים מהטבלה הקודמת, ואת המשתמשים שאתם מקצים להם את התפקידים.

פרויקט

כדי להקצות תפקידים ברמת הפרויקט, צריך להיות לכם התפקיד resourcemanager.folderAdmin.

gcloud projects add-iam-policy-binding project-id \
--member=member --role=role-id

הערכים הזמניים לשמירת מקום (placeholders) הם:

  • ‫project-id: הפרויקט שבו אתם מקצים את התפקיד.
  • ‫member: המשתמש שאתם נותנים לו גישה.
  • ‫role-id: מזהה התפקיד, מהטבלה הקודמת.

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

שימוש בתפקידים בהתאמה אישית ב-Cloud Marketplace

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

אם אתם יוצרים תפקיד בהתאמה אישית למשתמשים שרוכשים שירותים מ-Cloud Marketplace, התפקיד צריך לכלול את ההרשאות הבאות בחשבון לחיוב שמשמש לרכישת השירותים:

גישה לאתרי שותפים באמצעות כניסה יחידה (SSO)

מוצרים מסוימים של Cloud Marketplace API תומכים בכניסה יחידה (SSO) לאתר חיצוני של שותף. למשתמשים מורשים בארגון יש גישה ללחצן "MANAGE ON PROVIDER" בדף פרטי המוצר. הכפתור הזה מפנה את המשתמשים לאתר של השותף. במקרים מסוימים, המשתמשים מתבקשים "להיכנס באמצעות חשבון Google". במקרים אחרים, המשתמשים מחוברים בהקשר של חשבון משותף.

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

בנוסף, למשתמש צריכות להיות הרשאות IAM מספיקות בפרויקט שנבחר. ברוב המוצרים נדרש התפקיד roles/consumerprocurement.entitlementManager (או roles/editor, תפקיד בסיסי).

הרשאות מינימליות למוצרים ספציפיים

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

  • ‫Apache Kafka ב-Confluent Cloud
  • ‫DataStax Astra ל-Apache Cassandra
  • Elastic Cloud
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

במוצרים האלה, אתם יכולים להשתמש בהרשאות המינימליות הבאות:

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • serviceusage.services.get
  • serviceusage.services.list
  • resourcemanager.projects.get

בדרך כלל מקבלים את ההרשאות האלה עם התפקידים roles/consumerprocurement.entitlementManager או roles/consumerprocurement.entitlementViewer.