במסמך הזה מתוארות האפשרויות של בקרת הגישה שזמינות לכם ב-Pub/Sub.
סקירה כללית
ב-Pub/Sub משתמשים בניהול זהויות והרשאות גישה (IAM) כדי לשלוט בגישה.
בעזרת IAM אתם יכולים להקצות תפקידים ספציפיים למשתמשים, לקבוצות ולחשבונות שירות, ולתת להם את ההרשאות שנדרשות כדי לבצע את המשימות שלהם. אפשר להקצות את התפקידים האלה ב-IAM באמצעות מסוףGoogle Cloud או ה-API של IAM.
ב-Pub/Sub, אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הספציפי. הנה כמה דוגמאות לשימוש בבקרת גישה ב-Pub/Sub:
לתת גישה לכל משאב בנפרד, ולא לכל פרויקט הענן.
לתת גישה עם יכולות מוגבלות, כמו פרסום הודעות בנושא מסוים בלבד, או צריכת הודעות ממינוי מסוים בלבד, אבל לא למחוק את הנושא או את המינוי.
לתת לקבוצת מפתחים גישה לכל המשאבים של Pub/Sub בפרויקט.
אם יש לכם גישה לצפייה בלבד במשאב יחיד, כמו נושא או מינוי, אתם לא יכולים לראות את המשאב באמצעות מסוף Google Cloud . במקום זאת, אתם יכולים להשתמש ב-Google Cloud CLI כדי לראות את המשאב.
למידע מפורט על IAM והמאפיינים שלו, תוכלו לעיין במסמכי העזרה של IAM. כדאי לקרוא באופן ספציפי את הקטע הענקה, שינוי וביטול של הרשאות גישה למשאבים.
סוגי התפקידים ב-Pub/Sub
בדומה למוצרים אחרים של Google Cloud , ב-Pub/Sub יש תמיכה בשלושה סוגים של תפקידים:
תפקידים בסיסיים: לתפקידים בסיסיים יש הרבה הרשאות, והם היו קיימים לפני IAM. למידע נוסף על תפקידים בסיסיים, קראו את המאמר תפקידים בסיסיים.
תפקידים מוגדרים מראש: תפקידים מוגדרים מראש נותנים גישה פרטנית למשאבים ספציפיים ב-Google Cloud . מידע נוסף על תפקידים מוגדרים מראש זמין במאמר תפקידים מוגדרים מראש. בהמשך החלק הזה מפורטים התפקידים המוגדרים מראש של Pub/Sub.
תפקידים בהתאמה אישית: תפקידים בהתאמה אישית עוזרים לאכוף את העיקרון של הרשאות מינימליות. מידע נוסף על תפקידים בהתאמה אישית זמין במאמר תפקידים בהתאמה אישית.
הרשאות נדרשות ב-Pub/Sub
בקטעים הבאים מפורטות ההרשאות שנדרשות כדי לגשת למשאבים שונים ב-Pub/Sub.
ההרשאות הנדרשות לנושאים
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל שיטה של Pub/Sub API שקשורה לנושאים. בטבלה מפורטות ההרשאות הנדרשות ב-IAM כדי להפעיל כל method, וגם תיאור של הפעולה שה-method מבצעת.
| 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
|
הפונקציה מחזירה את ההרשאות שיש לפונקציית קריאה חוזרת (caller) במשאב שצוין. | ללא |
ההרשאות הנדרשות למינויים
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל שיטה של Pub/Sub API שקשורה למינויים. בטבלה מפורטות ההרשאות הנדרשות ב-IAM כדי להפעיל כל שיטה, וגם תיאור של מה שהשיטה עושה.
| 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
בתמונת המצב המבוקשת, אם יש כזו. |
projects.subscriptions.setIamPolicy
|
הגדרת מדיניות בקרת הגישה של IAM למינוי. | pubsub.subscriptions.setIamPolicy
במינוי המבוקש |
projects.subscriptions.testIamPermissions
|
הפונקציה מחזירה את ההרשאות שיש לפונקציית קריאה חוזרת (caller) במשאב שצוין. | ללא |
ההרשאות הנדרשות לסכימות
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל שיטה של Pub/Sub API שקשורה לסכימות. בטבלה מפורטות ההרשאות הנדרשות ב-IAM כדי להפעיל כל שיטה, וגם תיאור של מה שהשיטה עושה.
| Method | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.schemas.commit
|
שומר גרסה חדשה של הסכימה. | pubsub.schemas.commit
בסכימה המבוקשת |
projects.schemas.create
|
יוצר סכימה. | pubsub.schemas.create בפרויקט בענן שמכיל את המשאב |
projects.schemas.delete
|
מחיקת סכימה. | pubsub.schemas.delete
בסכימה המבוקשת |
projects.schemas.deleteRevision
|
מחיקת גרסה ספציפית של סכימה. | pubsub.schemas.delete
בסכימה המבוקשת |
projects.schemas.get
|
אחזור סכימה. | pubsub.schemas.get
בסכימה המבוקשת |
projects.schemas.getIamPolicy
|
הצגת מדיניות בקרת הגישה של IAM לסכימה. | pubsub.schemas.getIamPolicy בסכימה המבוקשת |
projects.schemas.list
|
הצגת רשימה של סכימות בפרויקט. | pubsub.schemas.list בפרויקט בענן המבוקש |
projects.schemas.listRevisions
|
הצגת רשימה של כל גרסאות הסכימה של הסכימה שצוינה. | pubsub.schemas.listRevisions
בסכימה המבוקשת |
projects.schemas.rollback
|
יוצרת גרסת סכימה חדשה מגרסה קודמת. | pubsub.schemas.rollback
בסכימה המבוקשת |
projects.schemas.validate
|
מאמת הגדרת סכימה. | pubsub.schemas.validate בפרויקט בענן שמכיל את המשאב |
projects.schemas.validateMessage
|
מאמת הודעה מול סכימה. | pubsub.schemas.validate בפרויקט בענן שמכיל את המשאב |
ההרשאות הנדרשות לתמונות מצב
בטבלה הבאה מפורטות ההרשאות הנדרשות לכל שיטה של Pub/Sub API שקשורה לתמונות מצב. בטבלה מפורטות ההרשאות הנדרשות ב-IAM כדי להפעיל כל שיטה, וגם תיאור של מה שהשיטה עושה.
| שיטת REST | תיאור | ההרשאה הנדרשת |
|---|---|---|
projects.snapshots.create
|
יצירת קובץ snapshot מהמינוי המבוקש. | pubsub.snapshots.create בפרויקט בענן שמכיל את המינוי, וההרשאה pubsub.subscriptions.consume במינוי המקור. |
projects.snapshots.delete
|
הסרת תמונת מצב קיימת. | pubsub.snapshots.delete
בקובץ ה-snapshot המבוקש |
projects.snapshots.getIamPolicy
|
הצגת מדיניות בקרת הגישה של IAM לתמונת מצב. | pubsub.snapshots.getIamPolicy
בקובץ ה-snapshot המבוקש |
projects.snapshots.list
|
מציג רשימה של הסקירות הקיימות. | pubsub.snapshots.list בפרויקט בענן המבוקש |
projects.snapshots.patch
|
עדכון של תמונת מצב קיימת. | pubsub.snapshots.update
בקובץ ה-snapshot המבוקש |
projects.snapshots.setIamPolicy
|
הגדרת מדיניות בקרת הגישה ב-IAM לתמונת מצב. | pubsub.snapshots.setIamPolicy
בקובץ ה-snapshot המבוקש |
projects.snapshots.testIamPermissions
|
הפונקציה מחזירה את ההרשאות שיש לפונקציית קריאה חוזרת (caller) במשאב שצוין. | ללא |
תפקידים זמינים ב-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. |
|
שליטה בגישה דרך מסוף Google Cloud
אתם יכולים להשתמש במסוף Google Cloud כדי לנהל את בקרת הגישה לנושאים ולפרויקטים שלכם.
כדי להגדיר אמצעי בקרת גישה ברמת הפרויקט:
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
לוחצים על הוספה.
מקלידים שם אחד או יותר של חשבונות משתמשים.
ברשימה Select a role, בוחרים את התפקיד שרוצים להקצות.
לוחצים על Save.
מוודאים שחשבון המשתמש מופיע עם התפקיד שנתתם לו.
כדי להגדיר אמצעי בקרת גישה לנושאים ולמינויים, פועלים לפי השלבים הבאים:
במסוף Google Cloud , נכנסים לרשימת הנושאים של Pub/Sub.
אם צריך, בוחרים את הפרויקט שבו מופעל Pub/Sub.
מבצעים את אחת מהפעולות הבאות:
כדי להגדיר תפקידים לנושא אחד או יותר, בוחרים את הנושאים.
כדי להגדיר תפקידים למינוי שמצורף לנושא, לוחצים על מזהה הנושא. בדף Topic details, לוחצים על מזהה המינוי. מופיע הדף Subscription details.
אם חלונית המידע מוסתרת, לוחצים על Show info panel.
בכרטיסייה Permissions, לוחצים על Add principal.
מקלידים שם אחד או יותר של חשבונות משתמשים.
ברשימה Select a role, בוחרים את התפקיד שרוצים להקצות.
לוחצים על Save.
שליטה בגישה באמצעות IAM API
באמצעות Pub/Sub IAM API אפשר להגדיר ולקבל כללי מדיניות בנושאים ובמינויים ספציפיים בפרויקט, ולבדוק את ההרשאות של המשתמשים במשאב נתון. כמו ב-methods הרגילות של Pub/Sub, אפשר להפעיל את ה-methods של IAM API באמצעות ספריות הלקוח, API Explorer או ישירות דרך HTTP.
שימו לב שאי אפשר להשתמש ב-Pub/Sub IAM API כדי לנהל כללי מדיניות ברמת הפרויקט ב- Google Cloud .
בקטעים הבאים מופיעות דוגמאות להגדרה ולקבלה של מדיניות, ולבדיקת ההרשאות שיש למשתמש ששלח את הקריאה למשאב נתון.
קבלת פרטי מדיניות
ה-method 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@", "user:user-3@gmail.com" ] } ] }
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
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
בדוגמה הבאה נעשה שימוש בגרסה 3 של ספריית הלקוח של Pub/Sub ב-Ruby. אם אתם עדיין משתמשים בספרייה 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" ] } ] }
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
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
בדוגמה הבאה נעשה שימוש בגרסה 3 של ספריית הלקוח של Pub/Sub ב-Ruby. אם אתם עדיין משתמשים בספרייה 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@" ] } ] }
3. מחילים את המדיניות בנושא מינויים החדשה.
gcloud pubsub subscriptions set-iam-policy \ projects/${PROJECT}/subscriptions/${SUBSCRIPTION} \ subscription_policy.json
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בגרסה 3 של ספריית הלקוח של Pub/Sub ב-Ruby. אם אתם עדיין משתמשים בספרייה 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
המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Java API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Node.js במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Node.js API.
PHP
Python
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של ה-API בשפת Python של Pub/Sub.
Ruby
בדוגמה הבאה נעשה שימוש בגרסה 3 של ספריית הלקוח של Pub/Sub ב-Ruby. אם אתם עדיין משתמשים בספרייה v2, עיינו במדריך להעברת נתונים (מיגרציה) ל-v3. לרשימה של דוגמאות קוד ב-Ruby v2, עיינו ב דוגמאות הקוד שהוצאו משימוש.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Ruby במאמר התחלה מהירה: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
בדיקת ההרשאות
אפשר להשתמש ב-method 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"
}
]המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
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"
}
]המשך
בדוגמה הבאה נעשה שימוש בגרסה הראשית של ספריית הלקוח של Pub/Sub ב-Go (v2). אם אתם עדיין משתמשים בספרייה של גרסה 1, כדאי לעיין במדריך להעברת נתונים לגרסה 2. כאן תוכלו למצוא רשימה של דוגמאות קוד שהוצאו משימוש בגרסה 1.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Go במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במסמכי העזר של ה-API של Pub/Sub Go.
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
בדוגמה הבאה נעשה שימוש בגרסה 3 של ספריית הלקוח של Pub/Sub ב-Ruby. אם אתם עדיין משתמשים בספרייה v2, עיינו במדריך להעברת נתונים (מיגרציה) ל-v3. לרשימה של דוגמאות קוד ב-Ruby v2, עיינו ב דוגמאות הקוד שהוצאו משימוש.
לפני שתנסו את הדוגמה הזו, פעלו לפי הוראות ההגדרה של Ruby במאמר מדריך למתחילים: שימוש בספריות לקוח. מידע נוסף מופיע במאמרי העזרה של Pub/Sub Ruby API.
תקשורת בין פרויקטים
ה-IAM של Pub/Sub שימושי לכוונון הגישה בתקשורת בין פרויקטים.
פרסום לנושא בפרויקט אחר
נניח שאתם רוצים שחשבון שירות בפרויקט א' יפרסם הודעות בנושא בפרויקט ב'. כדי להפעיל את התרחיש הזה:
מפעילים את Pub/Sub API בפרויקט א'.
מקצים לחשבון השירות את ההרשאה
pubsub.topics.publishבפרויקט ב' או בנושא. התפקיד פרסום הודעות ב-Pub/Sub (roles/pubsub.publisher) כולל את ההרשאה הזו.
יצירת מינוי בפרויקט אחר
נניח שאתם רוצים שחשבון שירות בפרויקט א' ייצור מינוי בפרויקט א' לנושא בפרויקט ב'. כדי להפעיל את התרחיש הזה:
מפעילים את Pub/Sub API בשני הפרויקטים.
נותנים לחשבון השירות את ההרשאות הבאות:
-
pubsub.subscriptions.createבפרויקט א'. -
pubsub.topics.attachSubscriptionבנושא בפרויקט ב'.
התפקיד עריכה ב-Pub/Sub (
roles/pubsub.editor) כולל את ההרשאות האלה.-
יוצרים מינוי בפרויקט א' שמקושר לנושא בפרויקט ב'.
קבלת הודעות מנושא בפרויקט אחר
נניח שאתם רוצים שחשבון שירות בפרויקט א' יקבל הודעות ממינוי בפרויקט ב'. כדי להפעיל את התרחיש הזה:
מפעילים את Pub/Sub API בפרויקט א'.
מקצים לחשבון השירות את התפקיד מנוי Pub/Sub (
roles/pubsub.subscriber) בפרויקט ב' או במינוי.
התנהגות במצב של זמינות חלקית
בדיקות ההרשאה תלויות במערכת המשנה של IAM. כדי להציע זמן אחזור נמוך באופן עקבי לפעולות של נתונים (פרסום וצריכת הודעות), המערכת עשויה לחזור למדיניות IAM שנשמרה במטמון. במאמרי העזרה של IAM מוסבר מתי השינויים ייכנסו לתוקף.
המאמרים הבאים
- אם נתקלתם בבעיות בגישה למשאבי Pub/Sub או באימות שלהם, תוכלו להיעזר במאמר פתרון בעיות כלליות.