נושא ייבוא של Amazon Managed Streaming for Apache Kafka (Amazon MSK) מאפשר לכם להטמיע נתונים מ-Amazon MSK כמקור חיצוני ב-Pub/Sub באופן רציף. אחר כך תוכלו להזרים את הנתונים לכל אחד מהיעדים ש-Pub/Sub תומך בהם.
במאמר הזה מוסבר איך ליצור ולנהל נושאים לייבוא של Amazon MSK. כדי ליצור נושא רגיל, ראו יצירת נושא רגיל.
מידע נוסף על ייבוא נושאים זמין במאמר מידע על ייבוא נושאים.
לפני שמתחילים
מגדירים את התפקידים וההרשאות שנדרשים לניהול נושאי ייבוא של Amazon MSK, כולל:
מגדירים איחוד זהויות של עומסי עבודה כדי ש-Google Cloud יוכל לגשת לשירות הסטרימינג החיצוני.
תפקידים והרשאות נדרשים
כדי לקבל את ההרשאות שנדרשות ליצירה ולניהול של נושאי ייבוא של Amazon MSK, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד עריכה ב-Pub/Sub (roles/pubsub.editor) בנושא או בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירה ולניהול של נושאי ייבוא של Amazon MSK. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור ולנהל נושאים לייבוא ב-Amazon MSK, צריך את ההרשאות הבאות:
- יוצרים נושא לייבוא: pubsub.topics.create
- מחיקת נושא ייבוא: pubsub.topics.delete
- קבלת נושא לייבוא: pubsub.topics.get
- הצגת רשימה של נושא ייבוא: pubsub.topics.list
- פרסום בנושא ייבוא: pubsub.topics.publish ו-pubsub.serviceAgent
- עדכון נושא ייבוא: pubsub.topics.update
- קבלת מדיניות IAM בנושא ייבוא: pubsub.topics.getIamPolicy
-
מגדירים את מדיניות ה-IAM לנושא ייבוא:
pubsub.topics.setIamPolicy
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
אפשר להגדיר בקרת גישה ברמת הפרויקט וברמת המשאב הבודד.
הגדרת זהות מאוחדת לגישה ל-Amazon MSK
איחוד שירותי אימות הזהות של עומסי עבודה מאפשר לשירותים לגשת לעומסי עבודה שפועלים מחוץ ל-Google Cloud. Google Cloud Google Cloudבזכות איחוד שירותי אימות הזהות, אתם לא צריכים לשמור או להעביר פרטי כניסה ל- Google Cloud כדי לגשת למשאבים שלכם בעננים אחרים. במקום זאת, אפשר להשתמש בזהויות של עומסי העבודה עצמם כדי לבצע אימות ב- Google Cloud ולגשת למשאבים.
יצירת חשבון שירות ב- Google Cloud
השלב הזה הוא אופציונלי. אם כבר יש לכם חשבון שירות, אתם יכולים להשתמש בו במקום ליצור חשבון שירות חדש. אם אתם משתמשים בחשבון שירות קיים, עוברים אל תיעוד המזהה הייחודי של חשבון השירות כדי להמשיך לשלב הבא.
בנושאי ייבוא של Amazon MSK, Pub/Sub משתמש בחשבון השירות כזהות כדי לגשת למשאבים מ-AWS.
מידע נוסף על יצירת חשבון שירות, כולל דרישות מוקדמות, תפקידים והרשאות נדרשים והנחיות למתן שמות, זמין במאמר יצירת חשבונות שירות. אחרי שיוצרים חשבון שירות, יכול להיות שיהיה צריך להמתין 60 שניות לפחות לפני שאפשר להשתמש בו. הסיבה לכך היא מודל העקביות ההדרגתי: יכול להיות שייקח זמן עד שחשבון השירות החדש יופיע.
תיעוד המזהה הייחודי של חשבון השירות
כדי להגדיר תפקיד במסוף AWS, צריך מזהה ייחודי של חשבון שירות.
נכנסים לדף הפרטים חשבון שירות במסוף Google Cloud .
לוחצים על חשבון השירות שיצרתם או על חשבון השירות שבו אתם מתכננים להשתמש.
בדף Service account details (פרטי חשבון השירות), רושמים את המספר הייחודי.
תצטרכו את המזהה כחלק מתהליך העבודה להגדרת תפקיד במסוף AWS.
הוספת התפקיד 'יצירת אסימונים בחשבון שירות' לחשבון השירות של Pub/Sub
התפקיד 'יצירת אסימונים בחשבון שירות' (roles/iam.serviceAccountTokenCreator) מאפשר לחשבונות משתמשים ליצור פרטי כניסה לטווח קצר לחשבון שירות. האסימונים או פרטי הכניסה האלה משמשים להתחזות לחשבון השירות.
מידע נוסף על התחזות לחשבון שירות זמין במאמר התחזות לחשבון שירות.
אפשר גם להוסיף את התפקיד 'פרסום הודעות ב-Pub/Sub' (roles/pubsub.publisher) במהלך התהליך הזה. מידע נוסף על התפקיד ועל הסיבה להוספתו זמין במאמר הוספת התפקיד 'פרסום הודעות ב-Pub/Sub' לחשבון השירות של Pub/Sub.
נכנסים לדף IAM במסוף Google Cloud .
מסמנים את התיבה Include Google-provided role grants.
מחפשים את חשבון השירות בפורמט
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com.לוחצים על הלחצן Edit Principal (עריכת חשבון המשתמש) בחשבון השירות הרלוונטי.
אם צריך, לוחצים על הוספת תפקיד נוסף.
מחפשים את התפקיד 'יצירת אסימונים בחשבון שירות' (
roles/iam.serviceAccountTokenCreator) ולוחצים עליו.לוחצים על Save.
יצירת מדיניות ב-AWS
צריך מדיניות ב-AWS שתאפשר ל-Pub/Sub לבצע אימות ב-AWS כדי ש-Pub/Sub יוכל להטמיע נתונים מ-Amazon MSK.
- שיטות נוספות ומידע על יצירת מדיניות ב-AWS זמינים במאמר יצירת מדיניות IAM.
כדי ליצור מדיניות ב-AWS:
נכנסים אל AWS Management Console ופותחים את IAM console.
בחלונית הניווט של המסוף IAM, לוחצים על Access Management (ניהול גישה) > Policies (מדיניות).
לוחצים על יצירת מדיניות.
בקטע Click a service (בחירת שירות), לוחצים על MSK.
בקטע פעולה מותרת,לוחצים על קריאה > GetBootstrapBrokers.
הפעולה הזו מעניקה הרשאה לקבל את ברוקרי האתחול ש-Pub/Sub משתמש בהם כדי להתחבר לאשכול MSK.
לוחצים על הוספת הרשאות נוספות.
בקטע Select a service (בחירת שירות), לוחצים על Apache Kafka APIs for MSK (ממשקי API של Apache Kafka ל-MSK).
בקטע פעולה מותרת, בוחרים באפשרויות הבאות:
List > DescribeTopic
הפעולה הזו מעניקה הרשאה לנושא של Pub/Sub ingestion לקבל פרטים על נושא ה-Kafka של Amazon MSK.
קריאה > ReadData
הפעולה הזו מעניקה הרשאה לקרוא נתונים מנושא Amazon MSK Kafka.
כתיבה > חיבור
הפעולה הזו מעניקה הרשאה להתחבר לאשכול Amazon MSK Kafka ולאמת אותו.
בקטע Resources (משאבים), מציינים את cluster ARN (אם רוצים להגביל את המדיניות לאשכולות ספציפיים, וזה מומלץ).
לוחצים על הוספת הרשאות נוספות.
בקטע Select a service (בחירת שירות), לוחצים על STS.
בקטע Action allowed (הפעולה מותרת), לוחצים על Write (כתיבה) > AssumeRoleWithWebIdentity (קבלת תפקיד עם זהות אינטרנט).
הפעולה הזו מעניקה הרשאה לקבל קבוצה של פרטי אבטחה זמניים ל-Pub/Sub כדי לבצע אימות ל-Amazon MSK באמצעות איחוד שירותי אימות הזהות.
לוחצים על הבא.
מזינים שם ותיאור למדיניות.
לוחצים על יצירת מדיניות.
יצירת תפקיד ב-AWS באמצעות מדיניות אמון מותאמת אישית
צריך ליצור תפקיד ב-AWS כדי ש-Pub/Sub יוכל לבצע אימות ב-AWS כדי להטמיע נתונים מ-Amazon MSK.
נכנסים אל AWS Management Console ופותחים את IAM console.
בחלונית הניווט של המסוף, בקטע IAM, לוחצים על Roles (תפקידים).
לוחצים על יצירת תפקיד.
בקטע Select trusted entity (בחירת ישות מהימנה), לוחצים על Custom trust policy (מדיניות אמון בהתאמה אישית).
בקטע Custom trust policy, מזינים או מדביקים את הטקסט הבא:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "accounts.google.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "accounts.google.com:sub": "<SERVICE_ACCOUNT_UNIQUE_ID>" } } } ] }מחליפים את
<SERVICE_ACCOUNT_UNIQUE_ID>במזהה הייחודי של חשבון השירות שרשמתם בשלב רשימת המזהה הייחודי של חשבון השירות.לוחצים על הבא.
בקטע Add permissions (הוספת הרשאות), מחפשים את המדיניות המותאמת אישית שיצרתם ולוחצים עליה.
לוחצים על הבא.
מזינים שם ותיאור לתפקיד.
לוחצים על יצירת תפקיד.
הוספת התפקיד 'פרסום הודעות ב-Pub/Sub' לחשבון המשתמש ב-Pub/Sub
כדי להפעיל פרסום, צריך להקצות תפקיד של פרסום לחשבון השירות של Pub/Sub, כדי ש-Pub/Sub יוכל לפרסם בנושא הייבוא של Amazon MSK.
הוספת התפקיד של סוכן שירות Pub/Sub לחשבון השירות של Pub/Sub
כדי לאפשר ל-Pub/Sub להשתמש במכסת הפרסום של פרויקט נושא הייבוא, לסוכן השירות של Pub/Sub נדרשת ההרשאה serviceusage.services.use בפרויקט של נושא הייבוא.
כדי לתת את ההרשאה הזו, מומלץ להוסיף את תפקיד סוכן השירות של Pub/Sub לחשבון השירות של Pub/Sub.
אם לחשבון השירות של Pub/Sub אין את התפקיד של סוכן שירות Pub/Sub, אפשר להקצות אותו באופן הבא:
נכנסים לדף IAM במסוף Google Cloud .
מסמנים את התיבה Include Google-provided role grants.
מחפשים את חשבון השירות בפורמט
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com.לוחצים על הלחצן Edit principal (עריכת חשבון המשתמש) בחשבון השירות הרלוונטי.
אם צריך, לוחצים על הוספת תפקיד נוסף.
מחפשים את התפקיד של סוכן שירות Pub/Sub (
roles/pubsub.serviceAgent) ולוחצים עליו.לוחצים על Save.
הפעלת פרסום מכל הנושאים
כדאי להשתמש בשיטה הזו אם לא יצרתם נושאים לייבוא מ-Amazon MSK.
נכנסים לדף