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

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

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

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

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

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

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

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

אם ההרשאות האלה רחבות מדי בהשוואה למדיניות של הארגון שלכם, תוכלו לעיין בקטעים הבאים במסמך הזה כדי לראות מהן ההרשאות המינימליות שנדרשות לשימוש ב-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
  • לסוכן השירות:

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

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

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

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

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

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

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

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

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

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

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

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

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

הרשאות של סוכן שירות

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

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

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

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

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

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

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

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

תפקיד / הרשאה מה היא עושה הערות
יצירת אובייקטים באחסון (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) נותן לסוכני העברה את ההרשאות של Storage Transfer Service שנדרשות כדי להשלים העברה. התפקיד הזה כולל גם את ההרשאות שנדרשות לרישום קבצים שדילגו עליהם. מקצים את התפקיד הזה למשתמש או לחשבון השירות שמשמשים את הסוכנים.

רשימה מפורטת של ההרשאות שהתפקיד הזה מעניק זמינה במאמר בקרת גישה באמצעות 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 הצגת רשימה של פעילויות של העלאה מרובת חלקים בקטגוריה.

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

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