הרשאות העברה מבוססות-סוכן

לפני שיוצרים העברה מבוססת-סוכן, צריך להגדיר הרשאות לישויות הבאות:

  • המשתמש או חשבון השירות שמנוהל על ידי משתמש שמשמשים ליצירת ההעברה. זה החשבון שמחוברים אליו במסוף Google Cloud , או החשבון שמצוין כשמבצעים אימות ל-CLI של gcloud. חשבון המשתמש יכול להיות חשבון משתמש רגיל או חשבון שירות שמנוהל על ידי משתמש.

  • חשבון השירות בניהול Google, שנקרא גם סוכן השירות, שבו נעשה שימוש ב-Storage Transfer Service. בדרך כלל, החשבון הזה מזוהה באמצעות כתובת האימייל שלו, בפורמט project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.

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

במאמר הענקה, שינוי וביטול גישה למשאבים מוסבר איך נותנים תפקידי IAM.

השיטה הפשוטה ביותר למתן הרשאות

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

אם ההרשאות האלה רחבות מדי בהתאם למדיניות של הארגון, אפשר לעיין בקטעים הבאים במסמך הזה כדי לראות מהן ההרשאות המינימליות שנדרשות ל-Storage Transfer Service.

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

gcloud transfer authorize

כדי להחיל את התפקידים האלה באופן אוטומטי, משתמשים בדגל --add-missing:

gcloud transfer authorize --add-missing

כדי להעניק הרשאות לחשבון שירות שמנוהל על ידי המשתמש, מעבירים את קובץ המפתח של חשבון השירות:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

הוראות ליצירת חשבון שירות מופיעות במאמר יצירה וניהול של חשבונות שירות.

הפקודה מעניקה את ההרשאות הבאות.

  • למשתמש או לחשבון שירות שמנוהל על ידי משתמש:

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • לחשבון השירות שמנוהל על ידי Google:

    • roles/storage.admin
    • roles/storagetransfer.serviceAgent

הוראות להתקנת gcloud CLI מופיעות במדריך למתחילים של gcloud.

הרשאות של משתמש או של חשבון שירות בניהול המשתמשים

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

חשבונות אדמין

אדמינים בחשבונות Storage Transfer Service יכולים לנהל סוכני העברה, להגדיר מגבלות על השימוש ברוחב פס ולמחוק משימות העברה.

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

תפקיד / הרשאה מה היא עושה הערות
resourcemanager.projects.getIamPolicy ההרשאה הזו משמשת כדי לוודא שלחשבון השירות שמנוהל על ידי Google יש את ההרשאות הנדרשות להעברה. כדי להעניק את ההרשאה הזו, צריך להעניק את התפקיד המוגדר מראש Role Viewer (צפייה בתפקידים) (roles/iam.roleViewer) או ליצור תפקיד בהתאמה אישית עם ההרשאה הזו ולהעניק את התפקיד בהתאמה אישית.
אדמין של העברת נתונים באחסון (roles/storagetransfer.admin) מאפשר פעולות ניהול בפרויקט ההעברה, כמו הגדרת הפרויקט ומעקב אחרי סוכנים. רשימה מפורטת של ההרשאות שניתנות מופיעה במאמר בנושא תפקידים מוגדרים מראש ב-Storage Transfer Service.

חשבונות משתמשים

חשבונות משתמשים ב-Storage Transfer Service משמשים ליצירה ולהפעלה של העברות. בדרך כלל אין לחשבונות האלה גישה למחיקת משימות העברה.

חשבון משתמש יכול להיות משתמש במסוף או חשבון שירות. Google Cloud אם אתם משתמשים בחשבון שירות, השיטה שבה אתם מעבירים את פרטי הכניסה אל Storage Transfer Service משתנה בהתאם לממשק שבו אתם משתמשים.

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

תפקיד / הרשאה מה היא עושה הערות
resourcemanager.projects.getIamPolicy ההרשאה הזו משמשת כדי לוודא שלחשבון השירות שמנוהל על ידי Google יש את ההרשאות הנדרשות ב-Pub/Sub להעברה. כדי להעניק את ההרשאה הזו, צריך להעניק את התפקיד המוגדר מראש Role Viewer (צפייה בתפקידים) (roles/iam.roleViewer) או ליצור תפקיד בהתאמה אישית עם ההרשאה הזו ולהעניק את התפקיד בהתאמה אישית.
משתמש בהעברת נתונים באחסון (roles/storagetransfer.user) ההרשאה מאפשרת למשתמש ליצור העברות, לקבל מידע על העברות, לעדכן העברות ולראות רשימה של העברות. רשימה מפורטת של ההרשאות שניתנות מופיעה במאמר בנושא תפקידים מוגדרים מראש ב-Storage Transfer Service.

הרשאות של חשבון שירות בניהול Google

‫Storage Transfer Service משתמש בחשבון שירות שמנוהל על ידי Google כדי להעביר את הנתונים. חשבון השירות הזה נוצר באופן אוטומטי בפעם הראשונה שיוצרים משימת העברה, מתקשרים אל googleServiceAccounts.get או נכנסים לדף ליצירת משימות במסוףGoogle Cloud .

הפורמט של חשבון השירות הוא בדרך כלל project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. כדי לאחזר את מזהה חשבון השירות, משתמשים בקריאה ל-API ‏ googleServiceAccounts.get.

הקצאת תפקידים באופן אוטומטי

יש שתי דרכים להקצות באופן אוטומטי את התפקידים הנכונים לחשבון השירות בניהול Google:

  • יוצרים את ההעברה באמצעות מסוף Google Cloud . ההרשאות הנדרשות מוגדרות במסוף באופן אוטומטי.

  • שימוש ב-gcloud transfer authorize --add-missing. השיטה הכי פשוטה למתן הרשאות

הקצאת תפקידים באופן ידני

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

תפקיד / הרשאה מה היא עושה הערות
יצירת אובייקטים באחסון (roles/storage.objectCreator) מאפשרת ל-Storage Transfer Service ליצור יומני העברה בקטגוריה של Cloud Storage שמקושרת להעברה הזו. הענקת הרשאה לכל הקטגוריות של Cloud Storage שנעשה בהן שימוש בהעברה. אם זה מתאים למצב שלכם, אתם יכולים להקצות את התפקיד ברמת הפרויקט לפרויקט שממנו מופעל Storage Transfer Service.

רשימה מפורטת של ההרשאות שמוענקות בתפקידים האלה מופיעה במאמר תפקידים מוגדרים מראש ב-Cloud Storage.
צפייה באובייקטים באחסון (roles/storage.objectViewer) ההגדרה הזו מאפשרת ל-Storage Transfer Service לקבוע אם קובץ כבר הועבר אל Cloud Storage או ממנו.
Storage Transfer Service Agent (roles/storagetransfer.serviceAgent) מאפשרת ל-Storage Transfer Service ליצור ולשנות באופן אוטומטי נושאי Pub/Sub כדי לתקשר מ-Google Cloud עם סוכני העברה. הקצאת התפקיד ברמת הפרויקט לפרויקט שממנו מופעל Storage Transfer Service.

רשימה מפורטת של ההרשאות שהתפקיד הזה מעניק זמינה במאמר בנושא הרשאות ותפקידים.
קריאה בקטגוריה באחסון מדור קודם (roles/storage.legacyBucketReader) מאפשר ל-Storage Transfer Service לקרוא מטא-נתונים של קטגוריה ב-Cloud Storage.

לכל קטגוריה של Cloud Storage שמשמשת בהעברה.

אפשר להקצות תפקידים ב-Cloud Storage legacy רק ברמת הקטגוריה.

הוראות מפורטות מופיעות במאמר מתן ההרשאות הנדרשות.

העברת הרשאות בחשבון של סוכן

אפשר להריץ את סוכני ההעברה של Storage Transfer Service באמצעות החשבון של המשתמש או באמצעות חשבון שירות.

כדי להגדיר חשבון שירות או חשבון משתמש של סוכן העברה שמריץ את סוכני ההעברה, צריך להקצות את התפקיד הבא:

תפקיד / הרשאה מה היא עושה הערות
Storage Transfer Agent (roles/storagetransfer.transferAgent) נותן לסוכני העברה את ההרשאות הנדרשות בשירות העברת נתונים לאחסון כדי להשלים העברה. התפקיד הזה כולל גם את ההרשאות שנדרשות לרישום קבצים שדילגו עליהם. נותנים את התפקיד הזה למשתמש או לחשבון השירות שמשמשים את הסוכנים.

רשימה מפורטת של ההרשאות שהתפקיד הזה מעניק זמינה במאמר בקרת גישה באמצעות IAM.

הרשאות במקור וביעד

בנוסף, צריך לוודא שלחשבון הסוכן יש את ההרשאות הנכונות לגשת לנתוני המקור ולכתוב ביעד.

ממערכת קבצים, מאחסון שתואם ל-S3 או מ-HDFS אל Cloud Storage

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

הרשאה תיאור
storage.objects.create מאפשר לחשבון הסוכן לכתוב אובייקטים ב-Cloud Storage במהלך ההעברה.
storage.objects.get מאפשר לחשבון הסוכן לקרוא נתונים ומטא-נתונים של אובייקטים.
storage.objects.list מאפשרת לחשבון הסוכן להציג רשימה של אובייקטים בקטגוריה של Cloud Storage.
storage.objects.delete חובה אם ההעברה מוגדרת להחלפה או למחיקה של אובייקטים ביעד. לדוגמה, אם overwriteObjectsAlreadyExistingInSink או deleteObjectsUniqueInSink מוגדרים בהגדרות transferOptions של ההעברה.

כדי להעניק את ההרשאות האלה, צריך להקצות את התפקיד הבא:

אפשרות אחרת היא ליצור תפקיד בהתאמה אישית עם ההרשאות הספציפיות ולהקצות את התפקיד בהתאמה אישית.

נדרשות הרשאות נוספות כדי להפעיל העלאות מרובות חלקים.

מ-Cloud Storage למערכת קבצים

אם המקור של ההעברה הוא קטגוריה של Cloud Storage, לסוכן ההעברה צריכה להיות ההרשאה הבאה בקטגוריית המקור.

הרשאה תיאור
storage.objects.create מאפשר לחשבון הסוכן לכתוב יומני העברה ומטא-נתונים שקשורים להעברה בקטגוריית המקור ב-Cloud Storage.
storage.objects.get מאפשר לחשבון הסוכן לקרוא נתונים ומטא-נתונים של אובייקטים.
storage.objects.list מאפשרת לחשבון הסוכן להציג רשימה של אובייקטים בקטגוריה של Cloud Storage.
storage.objects.delete חובה אם ההעברה מוגדרת למחיקת אובייקטים מהמקור. מידע נוסף זמין במאמר בנושא deleteObjectsFromSourceAfterTransfer.

כדי להעניק את ההרשאה הזו, צריך להעניק את התפקיד הבא:

אפשרות אחרת היא ליצור תפקיד בהתאמה אישית עם ההרשאה היחידה הזו ולהקצות את התפקיד.

ממערכת קבצים למערכת קבצים

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

הרשאה תיאור
storage.objects.create מאפשר לחשבון הסוכן לכתוב אובייקטים ב-Cloud Storage במהלך ההעברה.
storage.objects.get מאפשר לחשבון הסוכן לקרוא נתונים ומטא-נתונים של אובייקטים.
storage.objects.list מאפשרת לחשבון הסוכן להציג רשימה של אובייקטים בקטגוריה של Cloud Storage.
storage.objects.delete חובה אם ההעברה מוגדרת למחיקת אובייקטים בקטגוריית הביניים אחרי שההעברה מסתיימת.

כדי להעניק את ההרשאות האלה, צריך להקצות את התפקיד הבא:

אפשרות אחרת היא ליצור תפקיד בהתאמה אישית עם ההרשאות הספציפיות ולהקצות את התפקיד בהתאמה אישית.

נדרשות הרשאות נוספות כדי להפעיל העלאות מרובות חלקים.

העלאות מרובות חלקים

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

  • להעברות אל Cloud Storage, צריך להקצות את ההרשאות לקטגוריית היעד.
  • בהעברות בין מערכות קבצים, צריך להקצות את ההרשאות לדלי הביניים.
שם ההרשאה של ההעלאה מרובת החלקים תיאור
storage.multipartUploads.create העלאת אובייקטים בכמה חלקים.
storage.multipartUploads.abort ביטול פעולות של העלאה מרובת חלקים.
storage.multipartUploads.listParts הצגת רשימה של חלקי האובייקטים שהועלו בפעילות של העלאה מרובת חלקים.
storage.multipartUploads.list הצגת רשימה של פעילויות של העלאה מרובת חלקים בקטגוריה.

כדי להעניק את ההרשאות האלה, צריך להקצות את התפקיד הבא:

אפשרות אחרת היא ליצור תפקיד בהתאמה אישית עם ההרשאות הספציפיות ולהקצות את התפקיד בהתאמה אישית.