מתן הרשאה לחשבונות להעברת נתונים
במסמך הזה מוסבר איך שירות העברת הנתונים ל-BigQuery פועל עם סוגים שונים של חשבונות, אילו סוגים של הרשאות צריך כדי לבצע משימות כלליות של העברת נתונים, ואיך לפתור בעיות שקשורות לשגיאות נפוצות בהרשאות.
כדי להתחיל להשתמש בשירות העברת נתונים ל-BigQuery, צריך לוודא שהחשבונות שמשויכים לפרויקט – גם חשבונות משתמשים וגם חשבונות שירות – מאומתים ומורשים עם ההרשאות הנכונות לביצוע ההעברה שאתם צריכים. מידע על הרשאות ספציפיות למקור נתונים מופיע במדריך ההעברה של כל מקור נתונים.
מושגים מרכזיים
שירות העברת הנתונים ל-BigQuery מבצע אוטומציה של העברת נתונים ממקורות נתונים שונים אל BigQuery. מודל האימות וההרשאה פועל בשני שלבים שונים, מישור הבקרה ומישור הנתונים, ומתייחס לשני סוגי משתמשים: יוצר ההעברה או הבעלים של ההעברה.
מישור הבקרה
מישור הבקרה מייצג את השלב בתהליך ההרשאה שבו משתמש מאומת יכול לשלוט בהגדרות ההעברה ובפעולות ההעברה ולנהל אותן. למשתמש במישור הבקרה צריכות להיות ההרשאות המתאימות לניהול זהויות והרשאות גישה (IAM) כדי לשלוט בהגדרות ההעברה ובפעולות ההעברה ולנהל אותן:
- ההרשאה
bigquery.transfers.update, שמאפשרת למשתמשים לבצע את הפעולות הבאות:- הגדרת תצורות להעברת נתונים.
- ניהול ההעברות הקיימות, כמו עדכון, השבתה או מחיקה של העברה.
- ההרשאה
bigquery.transfers.get, שמאפשרת למשתמשים לעקוב אחרי הרצות של העברה, למשל לבדוק את הסטטוס של הרצת העברה או לצפות בהיסטוריה וביומנים של הרצות העברה.
אם אתם משתמשים במסוף Google Cloud או בכלי שורת הפקודה של BigQuery כדי ליצור העברה, אתם צריכים גם את ההרשאה bigquery.transfers.get.
ההרשאה bigquery.transfers.update לא נדרשת כדי להגדיר שאילתה מתוזמנת. מידע נוסף זמין במאמר בנושא ההרשאות הנדרשות לשאילתות מתוזמנות.
מישור הנתונים
מישור הנתונים מייצג את השלב שבו הנתונים נמצאים מחוץ לשליטה הישירה של המשתמש. במישור הנתונים, שירות העברת הנתונים ל-BigQuery יכול להפעיל העברות נתונים במצב אופליין, ויכול להפעיל ריצות של העברות באופן אוטומטי על סמך לוח זמנים שצוין על ידי המשתמש. במישור הנתונים, פרטי הכניסה של בעלי ההעברה משמשים לגישה לנתוני המקור, ובנוסף (בהתאם למקור הנתונים) פרטי הכניסה של בעלי ההעברה או סוכן השירות של שירות העברת הנתונים ל-BigQuery משמשים להפעלת משימות ב-BigQuery ולכתיבת נתונים במערך נתוני היעד.
לפרטים נוספים על ההרשאות הנדרשות, אפשר לעיין בסעיפים הבאים במדריך הזה:
- הרשאת גישת קריאה למקורות נתונים חיצוניים
- הרשאה להפעלת משימות ב-BigQuery
- הרשאה להפעלת משימות ב-BigQuery ולכתיבת נתונים למערך נתוני היעד
העברת יוצר לעומת העברת בעלים
יוצר ההעברה הוא זהות המשתמש שיצר והגדיר את תצורת ההעברה. משתמש בשירות העברת הנתונים ל-BigQuery ויוצר העברה יכול להיות חשבון משתמש או חשבון שירות.
המונח 'בעלים של העברה' מתייחס לזהות המשתמש ששירות העברת הנתונים ל-BigQuery משתמש בה כדי לאשר את העברת הנתונים, במיוחד לצורך חילוץ נתוני המקור. במקורות הנתונים שתומכים בחשבונות שירות, הבעלים של ההעברה יכול להיות חשבון משתמש או חשבון שירות. במקורות נתונים אחרים, הבעלים של ההעברה חייב להיות חשבון משתמש.
הבעלים של ההעברה והמשתמש שיצר את ההעברה יכולים להיות בעלי אותה זהות משתמש, אבל זה לא חובה. יש כמה דרכים להגדיר את הבעלים של ההעברה כמשתמש אחר ולא כיוצר ההעברה:
- כשיוצרים העברה, אפשר להגדיר את הבעלים כחשבון שירות אם מקור הנתונים תומך בחשבונות שירות.
- אחרי שיוצרים העברה, אפשר להעביר את הבעלות לחשבון משתמש חדש (או לחשבון שירות אם מקור הנתונים תומך בחשבונות שירות) שיש לו הרשאות
bigquery.transfers.updateו-bigquery.transfers.get. כדי לעדכן את פרטי הכניסה, צריך להיות מחוברים לחשבון החדש.
הרשאת גישת קריאה למקורות נתונים חיצוניים
יכול להיות שיהיו הבדלים בין ההרשאות שנדרשות לקריאת נתוני המקור ממקור נתונים אחד לבין ההרשאות שנדרשות ממקור נתונים אחר. לדוגמה, כדי לגשת ל-Google Ads, נדרשות הרשאות גישה לקריאה של מספר הלקוח ב-Google Ads. באופן דומה, כדי לגשת לדוחות ב-Google Play Console, צריך לתת הרשאת גישה ל-Google Play. למידע נוסף על הרשאות שספציפיות למקור נתונים, אפשר לעיין במדריכי ההעברה של כל מקור נתונים.
בהתאם לסוג הזהות של בעל ההעברה, נדרשת שיטת הרשאה שונה כדי לאחזר את אסימון הגישה לנתוני המקור.
העברת בעלות כחשבון שירות
כשמשתמשים בחשבון שירות כבעלים של ההעברה, ההרשאות הנדרשות ניתנות באופן אוטומטי כשמפעילים את BigQuery Data Transfer Service API בפרויקט. שירות העברת הנתונים ל-BigQuery משתמש בסוכן שירות כדי לקבל את אסימון הגישה לחשבון השירות שסופק על ידי המשתמש (הבעלים של ההעברה).
כשמפעילים את שירות העברת נתונים ל-BigQuery API, נוצר סוכן שירות עבור הפרויקט. בנוסף, המערכת מעניקה לסוכן השירות את התפקיד BigQuery Data Transfer Service Agent (roles/bigquerydatatransfer.serviceAgent), שכולל את ההרשאה iam.serviceAccounts.getAccessToken. ההרשאה הזו מאפשרת לסוכן השירות של שירות העברת הנתונים ל-BigQuery להתחזות לחשבון השירות של בעלי ההעברה כדי לאחזר את אסימון הגישה.
מידע נוסף על סוכן השירות של שירות העברת נתונים ל-BigQuery זמין במאמר בנושא סוכן שירות. מידע נוסף על השימוש בחשבונות שירות ורשימה עדכנית של מקורות נתונים שתומכים בחשבונות שירות זמין במאמר שימוש בחשבונות שירות.
העברת בעלות דרך חשבון משתמש
אם הבעלים של ההעברה שיוצר את הגדרת ההעברה הוא חשבון משתמש (ולא חשבון שירות), צריך להעניק באופן ידני הרשאה לשירות העברת הנתונים ל-BigQuery כדי לקבל את אסימון הגישה לחשבון המשתמש ולגשת לנתוני המקור בשם הבעלים של ההעברה. אפשר לתת אישור ידני באמצעות ממשק תיבת הדו-שיח של OAuth.
צריך לתת הרשאה לשירות העברת הנתונים ל-BigQuery רק בפעם הראשונה שיוצרים העברה למקור נתונים מסוים. צריך לתת את ההרשאה שוב כשיוצרים את ההעברה הראשונה לאזור חדש, גם אם משתמשים באותו מקור נתונים. העברות נתונים מערוצי YouTube הן היוצאות מן הכלל – צריך להעניק אישור להרשאות באופן ידני בכל פעם שיוצרים העברת נתונים מערוץ YouTube.
שינוי הבעלים של ההעברה על ידי עדכון פרטי הכניסה דורש גם אישור ידני אם הבעלים החדש מעולם לא יצר העברה למקור הנתונים באזור הזה.
בצילום המסך הבא מוצג ממשק תיבת הדו-שיח של OAuth כשיוצרים העברה של Google Ads. בתיבת הדו-שיח מוצגות הרשאות ספציפיות למקור הנתונים שצריך לתת:
כדי לבטל את ההרשאות שניתנו:
- עוברים אל הדף של החשבון ב-Google.
- לוחצים על שירות העברת נתונים ל-BigQuery.
- כדי לבטל את ההרשאות, לוחצים על הסרת הגישה.
הרשאה להפעלת משימות ב-BigQuery
כשמבצעים מיגרציה מרוב מקורות הנתונים, למעט מיגרציה באמצעות שאילתות מתוזמנות או עותקים של מערכי נתונים, שירות העברת הנתונים ל-BigQuery מסתמך על סוכני שירות כדי להפעיל משימות של BigQuery בפרויקט. ההרשאה הנדרשת bigquery.job.create ניתנת אוטומטית לסוכן השירות כשמפעילים את BigQuery Data Transfer Service API בפרויקט. מידע נוסף על הפעלת שירות העברת נתונים ל-BigQuery
כשמבצעים מיגרציה באמצעות שאילתות מתוזמנות או עותקים של מערכי נתונים, שירות העברת הנתונים ל-BigQuery משתמש בפרטי הכניסה של בעלי ההעברה כדי להתחיל את העבודות ב-BigQuery.
הרשאה להפעלת משימות ב-BigQuery ולכתיבת נתונים למערך הנתונים של היעד
כשמבצעים מיגרציה מרוב מקורות הנתונים, למעט מיגרציה באמצעות שאילתות מתוזמנות או העתקים של מערכי נתונים, שירות העברת הנתונים ל-BigQuery מסתמך על סוכן השירות כדי לכתוב נתונים במערך נתוני היעד ב-BigQuery. ההרשאה הנדרשת, roles/bigquery.dataEditor, ניתנת לסוכן השירות על ידי שירות העברת הנתונים ל-BigQuery כשיוצרים את ההעברה. כדי להעניק את ההרשאה, צריך לקבל את ההרשאה bigquery.datasets.update במערך הנתונים של היעד.
כשמבצעים מיגרציה באמצעות שאילתות מתוזמנות או עותקים של מערכי נתונים, שירות העברת הנתונים ל-BigQuery משתמש בפרטי הכניסה של בעל ההעברה כדי להריץ את העבודות ב-BigQuery ולכתוב את הנתונים במערך הנתונים של היעד ב-BigQuery.
פתרון בעיות שקשורות להרשאות
אם נתקלתם בבעיות שקשורות להרשאה או להרשאות בהעברה, כדאי לעיין במאמר בעיות שקשורות להרשאה ולהרשאות.