במסמך הזה מתוארות אפשרויות בקרת הגישה שזמינות לכם ב-Pub/Sub.
סקירה כללית
ב-Pub/Sub נעשה שימוש בניהול זהויות והרשאות גישה (IAM) לבקרת גישה.
מערכת IAM מאפשרת להעניק תפקידים ספציפיים למשתמשים, לקבוצות ולחשבונות שירות, וכך לתת להם את ההרשאות הנדרשות לביצוע המשימות שלהם. אפשר להקצות את תפקידי ה-IAM האלה באמצעות מסוףCloud de Confiance או ה-API של IAM.
ב-Pub/Sub, אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הבודד. הנה כמה דוגמאות לשימוש בבקרת גישה ב-Pub/Sub:
הענקת גישה לכל משאב בנפרד, ולא לכל הפרויקט בענן.
להעניק גישה עם יכולות מוגבלות, כמו פרסום הודעות בנושא מסוים בלבד, או צריכת הודעות ממינוי בלבד, אבל לא מחיקת הנושא או המינוי.
לתת גישה לכל משאבי Pub/Sub בפרויקט לקבוצת מפתחים.
אם יש לכם גישת צפייה בלבד למשאב יחיד, כמו נושא או מינוי, לא תוכלו לראות את המשאב באמצעות מסוף Cloud de Confiance . במקום זאת, אפשר להשתמש ב-Google Cloud CLI כדי להציג את המשאב.
למידע מפורט על IAM והמאפיינים שלו, תוכלו לעיין במסמכי העזרה של IAM. כדאי לקרוא באופן ספציפי את המאמר הענקה, שינוי וביטול של הרשאות גישה למשאבים.
סוגי התפקידים ב-Pub/Sub
בדומה למוצרים אחרים Cloud de Confiance by S3NS , ב-Pub/Sub יש תמיכה בשלושה סוגים של תפקידים:
תפקידים בסיסיים: לתפקידים בסיסיים יש הרבה הרשאות, והם היו קיימים לפני IAM. מידע נוסף על תפקידים בסיסיים זמין במאמר תפקידים בסיסיים.
תפקידים מוגדרים מראש: תפקידים מוגדרים מראש מאפשרים גישה פרטנית לCloud de Confiance משאבים ספציפיים. מידע נוסף על תפקידים מוגדרים מראש זמין במאמר תפקידים מוגדרים מראש. התפקידים המוגדרים מראש ב-Pub/Sub מפורטים בהמשך הקטע הזה.
תפקידים בהתאמה אישית: תפקידים בהתאמה אישית עוזרים לאכוף את העיקרון של הרשאות מינימליות. מידע נוסף על תפקידים בהתאמה אישית זמין במאמר תפקידים בהתאמה אישית.
הרשאות Pub/Sub שנדרשות
בקטעים הבאים מפורטות ההרשאות ב-Pub/Sub שנדרשות כדי לגשת למשאבים שונים ב-Pub/Sub.
ההרשאות הנדרשות לנושאים
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל method של Pub/Sub API שקשורה לנושאים. בטבלה מפורטת כל method, ההרשאה הנדרשת ב-IAM כדי להפעיל אותה ותיאור של הפעולה שהיא מבצעת.
| Method | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.topics.create
|
יוצר את הנושא שצוין עם השם שצוין. | pubsub.topics.create
בפרויקט בענן שמכיל את האפליקציה |
projects.topics.delete
|
מוחק את הנושא עם השם שצוין. | pubsub.topics.delete
בנושא המבוקש |
projects.topics.get
|
אחזור ההגדרה של נושא. | pubsub.topics.get
בנושא המבוקש |
projects.topics.getIamPolicy
|
מקבל את מדיניות בקרת הגישה ב-IAM לנושא. | pubsub.topics.getIamPolicy
בנושא המבוקש |
projects.topics.list
|
מוצגת רשימה של כל הנושאים. | pubsub.topics.list בפרויקט בענן המבוקש |
projects.topics.patch
|
מעדכנים נושא קיים. | pubsub.topics.update
בנושא המבוקש |
projects.topics.publish
|
הוספה של הודעה אחת או יותר לנושא. | pubsub.topics.publish
בנושא המבוקש |
projects.topics.setIamPolicy
|
הגדרת מדיניות בקרת הגישה ב-IAM לנושא. | pubsub.topics.setIamPolicy
בנושא המבוקש |
projects.topics.testIamPermissions
|
מחזירה את ההרשאות שיש למבצע הקריאה במשאב שצוין. | ללא |
הרשאות שנדרשות למינויים
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל method של Pub/Sub API שקשורה למינויים. בטבלה מפורטת כל הרשאת IAM שנדרשת כדי להפעיל כל method, וגם תיאור של הפעולה שה-method מבצעת.
| Method | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.subscriptions.acknowledge
|
מאשר את ההודעות שמשויכות ל-ack_ids ב-AcknowledgeRequest. | pubsub.subscriptions.consume
במינוי המבוקש |
projects.subscriptions.create
|
יצירת מינוי לנושא מסוים. | pubsub.subscriptions.create
בפרויקט בענן שכולל את הנושא ו-pubsub.topics.attachSubscription בנושא המבוקש.
כדי ליצור מינוי S בפרויקט א שמצורף לנושא T בפרויקט ב, צריך להעניק את ההרשאות המתאימות גם בפרויקט א וגם בנושא T. במקרה הזה, אפשר לתעד את פרטי הזהות של המשתמש ביומני הביקורת של פרויקט ב'. |
projects.subscriptions.delete
|
מחיקת מינוי קיים. | pubsub.subscriptions.delete
במינוי המבוקש |
projects.subscriptions.detach
|
מנתק מינוי מנושא. | pubsub.topics.detachSubscription בנושא שהמינוי משויך אליו. |
projects.subscriptions.get
|
אחזור פרטי ההגדרה של מינוי. | pubsub.subscriptions.get
במינוי המבוקש |
projects.subscriptions.getIamPolicy
|
קבלת מדיניות בקרת הגישה ב-IAM למינוי. | pubsub.subscriptions.getIamPolicy
במינוי המבוקש |
projects.subscriptions.list
|
רשימות שמתאימות למינויים. | pubsub.subscriptions.list בפרויקט בענן המבוקש |
projects.subscriptions.modifyAckDeadline
|
משנה את הזמן הקצוב לתגובה עבור הודעה ספציפית. | pubsub.subscriptions.consume
במינוי המבוקש |
projects.subscriptions.modifyPushConfig
|
משנה את ה-pushConfig של מינוי ספציפי. | pubsub.subscriptions.update
במינוי המבוקש |
projects.subscriptions.patch
|
עדכון של מינוי קיים. | pubsub.subscriptions.update
במינוי המבוקש |
projects.subscriptions.pull
|
שליפת הודעות מהשרת. | pubsub.subscriptions.consume
במינוי המבוקש |
projects.subscriptions.seek
|
חיפוש מינוי קיים בנקודת זמן או בצילום מצב. | pubsub.subscriptions.consume
במינוי המבוקש וpubsub.snapshots.seek
ב-snapshot המבוקש, אם יש כזה. |
projects.subscriptions.setIamPolicy
|
הגדרת מדיניות בקרת הגישה ב-IAM למינוי. | pubsub.subscriptions.setIamPolicy
במינוי המבוקש |
projects.subscriptions.testIamPermissions
|
מחזירה את ההרשאות שיש למבצע הקריאה במשאב שצוין. | ללא |
הרשאות נדרשות לסכימות
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל method של Pub/Sub API שקשור לסכימות. בטבלה מפורטת כל הרשאת IAM שנדרשת כדי להפעיל כל method, וגם תיאור של הפעולה שה-method מבצעת.
| Method | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.schemas.commit
|
שמירת גרסה חדשה של הסכימה. | pubsub.schemas.commit
on the requested schema |
projects.schemas.create
|
יוצר סכימה. | pubsub.schemas.create
בפרויקט בענן שמכיל את האפליקציה |
projects.schemas.delete
|
מחיקת סכימה. | pubsub.schemas.delete
on the requested schema |
projects.schemas.deleteRevision
|
מחיקה של גרסה ספציפית של סכימה. | pubsub.schemas.delete
on the requested schema |
projects.schemas.get
|
קבלת סכימה. | pubsub.schemas.get
on the requested schema |
projects.schemas.getIamPolicy
|
מקבל את מדיניות בקרת הגישה ב-IAM עבור סכימה. | pubsub.schemas.getIamPolicy בסכימה המבוקשת |
projects.schemas.list
|
הצגת סכימות בפרויקט. | pubsub.schemas.list בפרויקט בענן המבוקש |
projects.schemas.listRevisions
|
מציגה רשימה של כל הגרסאות של הסכימה שצוין השם שלה. | pubsub.schemas.listRevisions
on the requested schema |
projects.schemas.rollback
|
יוצר גרסה חדשה של סכימה מגרסה קודמת. | pubsub.schemas.rollback
on the requested schema |
projects.schemas.validate
|
מאמת הגדרת סכימה. | pubsub.schemas.validate
בפרויקט בענן שמכיל את האפליקציה |
projects.schemas.validateMessage
|
מאמת הודעה מול סכימה. | pubsub.schemas.validate
בפרויקט בענן שמכיל את האפליקציה |
ההרשאות שנדרשות לצילום תמונות
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל method של Pub/Sub API שקשור לצילומי מצב. בטבלה מפורטת כל הרשאת IAM שנדרשת כדי להפעיל כל method, וגם תיאור של הפעולה שה-method מבצעת.
| שיטת REST | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.snapshots.create
|
יוצר קובץ snapshot מהמינוי המבוקש. | pubsub.snapshots.create בפרויקט בענן שמכיל את המינוי וpubsub.subscriptions.consume במינוי המקור. |
projects.snapshots.delete
|
הסרה של תמונת מצב קיימת. | pubsub.snapshots.delete
בדוח תמונת המצב המבוקש |
projects.snapshots.getIamPolicy
|
קבלת מדיניות בקרת הגישה ב-IAM עבור קובץ snapshot. | pubsub.snapshots.getIamPolicy
בדוח תמונת המצב המבוקש |
projects.snapshots.list
|
רשימה של תמונות המצב הקיימות. | pubsub.snapshots.list בפרויקט בענן המבוקש |
projects.snapshots.patch
|
מעדכן תמונת מצב קיימת. | pubsub.snapshots.update
בדוח תמונת המצב המבוקש |
projects.snapshots.setIamPolicy
|
הגדרת מדיניות בקרת הגישה ב-IAM לקובץ snapshot. | pubsub.snapshots.setIamPolicy
בדוח תמונת המצב המבוקש |
projects.snapshots.testIamPermissions
|
מחזירה את ההרשאות שיש למבצע הקריאה במשאב שצוין. | ללא |
תפקידים זמינים ב-Pub/Sub
בטבלה הבאה מפורטים כל התפקידים ב-Pub/Sub וההרשאות שמשויכות לכל תפקיד:
| Role | Permissions |
|---|---|
Pub/Sub Admin( Provides full access to topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Editor( Provides access to modify topics and subscriptions, and access to publish and consume messages. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Publisher( Provides access to publish messages to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Subscriber( Provides access to consume messages from a subscription and to attach subscriptions to a topic. Lowest-level resources where you can grant this role:
|
|
Pub/Sub Viewer( Provides access to view topics and subscriptions. Lowest-level resources where you can grant this role:
|
|
Service agent roles
Service agent roles should only be granted to service agents.
| Role | Permissions |
|---|---|
Cloud Pub/Sub Service Agent( Grants Cloud Pub/Sub Service Account access to manage resources. |
|
שליטה בגישה דרך מסוף Cloud de Confiance
אתם יכולים להשתמש במסוף Cloud de Confiance כדי לנהל את בקרת הגישה לנושאים ולפרויקטים.
כדי להגדיר אמצעי בקרה לגישה ברמת הפרויקט, פועלים לפי השלבים הבאים:
נכנסים לדף IAM במסוף Cloud de Confiance .
בוחרים את הפרויקט הרצוי.
לוחצים על הוספה.
מקלידים שם ראשי אחד או יותר.
ברשימה Select a role, בוחרים את התפקיד שרוצים להקצות.
לוחצים על Save.
מוודאים שחשבון המשתמש מופיע עם התפקיד שהקציתם לו.
כדי להגדיר אמצעי בקרה לגישה לנושאים ולמינויים, פועלים לפי השלבים הבאים:
נכנסים לרשימת Topics של Pub/Sub במסוף Cloud de Confiance .
במידת הצורך, בוחרים את הפרויקט שמופעל בו Pub/Sub.
מבצעים אחת מהפעולות הבאות:
כדי להגדיר תפקידים לנושא אחד או יותר, בוחרים את הנושאים.
כדי להגדיר תפקידים למינוי שמצורף לנושא, לוחצים על מזהה הנושא. בדף פרטי הנושא, לוחצים על מזהה המינוי. יופיע הדף Subscription details.
אם חלונית המידע מוסתרת, לוחצים על Show info panel.
בכרטיסייה Permissions, לוחצים על Add principal.
מקלידים שם ראשי אחד או יותר.
ברשימה Select a role, בוחרים את התפקיד שרוצים להקצות.
לוחצים על Save.
שליטה בגישה באמצעות IAM API
ה-API של IAM ב-Pub/Sub מאפשר להגדיר ולקבל מדיניות בנושאים ובמינויים ספציפיים בפרויקט, ולבדוק את ההרשאות של משתמש למשאב נתון. כמו במקרה של שיטות Pub/Sub רגילות, אפשר להפעיל את שיטות IAM API באמצעות ספריות הלקוח, או באמצעות API Explorer, או ישירות באמצעות HTTP.
שימו לב שאי אפשר להשתמש ב-Pub/Sub IAM API כדי לנהל מדיניות ברמת הפרויקט. Cloud de Confiance
בקטעים הבאים מופיעות דוגמאות להגדרת מדיניות ולקבלת מדיניות, ולבדיקה של ההרשאות שיש למשתמש ששלח את הקריאה למשאב נתון.
טעינת מדיניות
השיטה getIamPolicy() מאפשרת לכם לקבל מדיניות קיימת.
השיטה הזו מחזירה אובייקט JSON שמכיל את המדיניות שמשויכת למשאב.
הנה קוד לדוגמה לקבלת מדיניות למינוי:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
קבלת מדיניות המינויים:
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json
פלט:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.s3ns-system.iam.gserviceaccount.com", "user:user-3@gmail.com" ] } ] }
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של PHP במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub PHP API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
הנה קוד לדוגמה לקבלת מדיניות בנושא מסוים:C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
קבלת המדיניות בנושא
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json
פלט:
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role":" roles/pubsub.viewer", "members": [ "user:user-1@gmail.com" ] } ] }
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של PHP במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub PHP API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
הגדרת מדיניות
השיטה setIamPolicy() מאפשרת לצרף מדיניות למשאב. השיטה setIamPolicy() מקבלת SetIamPolicyRequest, שמכיל את המדיניות שצריך להגדיר ואת המשאב שאליו המדיניות מצורפת.
הפונקציה מחזירה את המדיניות שנוצרה.
הנה קוד לדוגמה להגדרת מדיניות למינוי:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
1. שומרים את המדיניות למינוי.
gcloud pubsub subscriptions get-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ --format json > subscription_policy.json
2. פותחים את subscription_policy.json ומעדכנים את הקישורים על ידי הקצאת תפקידים מתאימים לחשבונות המתאימים.
מידע נוסף על עבודה עם קובצי subscription_policy.json זמין במאמר
מדיניות במסמכי IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.admin", "members": [ "user:user-1@gmail.com" ] }, { "role": "roles/pubsub.editor", "members": [ "serviceAccount:service-account-2@appspot.s3ns-system.iam.gserviceaccount.com" ] } ] }
3. מחילים את מדיניות המינויים החדשה.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
הנה קוד לדוגמה להגדרת מדיניות לנושא:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
1. שומרים את המדיניות של הנושא.
gcloud pubsub topics get-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ --format json > topic_policy.json
2. פותחים את topic_policy.json ומעדכנים את הקישורים על ידי הקצאת תפקידים מתאימים לחשבונות המתאימים.
מידע נוסף על עבודה עם קובצי subscription_policy.json זמין במאמר
מדיניות במסמכי IAM.
{ "etag": "BwUjMhCsNvY=", "bindings": [ { "role": "roles/pubsub.editor", "members": [ "user:user-1@gmail.com", "user:user-2@gmail.com" ] } ] }
3. החלת המדיניות החדשה בנושא.
gcloud pubsub topics set-iam-policy \ projects/${PROJECT}/topics/${TOPIC} \ topic_policy.json
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
בדיקת ההרשאות
אפשר להשתמש בשיטה testIamPermissions() כדי לבדוק אילו מההרשאות שצוינו אפשר להוסיף למשאב מסוים או להסיר ממנו. היא מקבלת כפרמטרים שם משאב וסדרת הרשאות, ומחזירה את קבוצת המשנה של ההרשאות.
הנה קוד לדוגמה לבדיקת הרשאות למינוי:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
gcloud iam list-testable-permissions \
https://pubsub.googleapis.com/v1/projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \
--format jsonפלט:
[
{
"name": "pubsub.subscriptions.consume",
"stage": "GA"
},
{
"name": "pubsub.subscriptions.delete",
"stage": "GA"
},
{
"name": "pubsub.subscriptions.get",
"stage": "GA"
},
{
"name": "pubsub.subscriptions.getIamPolicy",
"stage": "GA"
},
{
"name": "pubsub.subscriptions.setIamPolicy",
"stage": "GA"
},
{
"name": "pubsub.subscriptions.update",
"stage": "GA"
}
]המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של PHP במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub PHP API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
הנה קוד לדוגמה לבדיקת הרשאות בנושא:
C#
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של C# במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub C# API.
gcloud
gcloud iam list-testable-permissions \
https://pubsub.googleapis.com/v1/projects/${PROJECT}/topics/${TOPIC} \
--format jsonתשובה
[
{
"name": "pubsub.topics.attachSubscription",
"stage": "GA"
},
{
"name": "pubsub.topics.delete",
"stage": "GA"
},
{
"name": "pubsub.topics.detachSubscription",
"stage": "GA"
},
{
"name": "pubsub.topics.get",
"stage": "GA"
},
{
"name": "pubsub.topics.getIamPolicy",
"stage": "GA"
},
{
"name": "pubsub.topics.publish",
"stage": "GA"
},
{
"name": "pubsub.topics.setIamPolicy",
"stage": "GA"
},
{
"name": "pubsub.topics.update",
"stage": "GA"
}
]המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח Go Pub/Sub (v2). אם אתם עדיין משתמשים בספרייה v1, כדאי לעיין במדריך להעברה לגרסה v2. כדי לראות רשימה של דוגמאות קוד מגרסה 1, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Go API.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר הפעלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של PHP במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub PHP API.
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בספריית הלקוח של Ruby Pub/Sub בגרסה 3. אם אתם עדיין משתמשים בספרייה v2, כדאי לעיין במדריך להעברה לגרסה v3. כדי לראות רשימה של דוגמאות קוד של Ruby v2, אפשר לעיין ב דוגמאות הקוד שהוצאו משימוש.
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Ruby במאמר תחילת העבודה המהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
תקשורת בין פרויקטים
שירות Pub/Sub IAM שימושי לכוונון עדין של הגישה בתקשורת בין פרויקטים.
נניח שחשבון שירות בפרויקט Cloud א רוצה לפרסם הודעות בנושא בפרויקט Cloud ב. קודם מפעילים את Pub/Sub API בפרויקט א'.
שנית, מעניקים לחשבון השירות הרשאת עריכה בפרויקט ב' ב-Cloud. עם זאת, הגישה הזו לרוב גסה מדי. אפשר להשתמש ב-IAM API כדי להשיג רמת גישה מפורטת יותר.
לדוגמה, בקטע הקוד הזה נעשה שימוש בשיטה setIamPolicy() ב-project-b ובקובץ topic_policy.json מוכן כדי לתת לחשבון השירות foobar@project-a.s3ns.iam.gserviceaccount.com של project-a את תפקיד המפרסם בנושא projects/project-b/topics/topic-b:
gcloud pubsub topics set-iam-policy \
projects/project-b/topics/topic-b \
topic_policy.json
Updated IAM policy for topic topic-b. bindings: - members: - serviceAccount:foobar@project-a.s3ns.iam.gserviceaccount.com role: roles/pubsub.publisher etag: BwWGrQYX6R4=
התנהגות של זמינות חלקית
בדיקות ההרשאה תלויות במערכת המשנה של IAM. כדי להבטיח שזמן האחזור של התגובה לפעולות על נתונים (פרסום וצריכת הודעות) יהיה נמוך באופן עקבי, המערכת עשויה להשתמש במדיניות IAM ששמורה במטמון. מידע על המועד שבו השינויים ייכנסו לתוקף מופיע במאמרי העזרה בנושא IAM.
המאמרים הבאים
- אם נתקלתם בבעיות בגישה למשאבי Pub/Sub או באימות שלהם, כדאי לעיין במאמר פתרון בעיות כללי.