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

העברות ללא סוכן כוללות העברות בתוך Cloud Storage, או מ-Amazon S3, מ-Azure Blob Storage או מ-Data Lake Storage Gen2, או רשימות של כתובות URL של אובייקטים ציבוריים. הם לא דורשים סוכני העברה או מאגרי סוכנים.

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

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

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

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

תפקיד / הרשאה מה היא עושה הערות
resourcemanager.projects.getIamPolicy ההרשאה הזו משמשת כדי לוודא שלחשבון השירות שמנוהל על ידי Google יש את ההרשאות הנדרשות להעברה. כדי להעניק את ההרשאה הזו, צריך להעניק את התפקיד המוגדר מראש Role Viewer (צפייה בתפקידים) (roles/iam.roleViewer) או ליצור תפקיד בהתאמה אישית עם ההרשאה הזו ולהעניק את התפקיד בהתאמה אישית.
אחד מהתפקידים הבאים:
אדמין של העברת נתונים באחסון (roles/storagetransfer.admin) מאפשר את כל הפעולות של Storage Transfer Service, כולל מחיקת משימות העברה. רשימה מפורטת של ההרשאות שניתנות מופיעה במאמר בנושא תפקידים מוגדרים מראש ב-Storage Transfer Service.
משתמש בהעברת נתונים באחסון (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][googleServiceAccounts.get].

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

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

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

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

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

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

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

הרשאה בקטגוריית היעד של Cloud Storage.

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

צפייה באובייקטים באחסון (roles/storage.objectViewer)

מאפשרת ל-Storage Transfer Service להעתיק אובייקטים ממקור Cloud Storage.

בנוסף, האפשרות הזו מאפשרת ל-Storage Transfer Service לקבוע אם קובץ כבר קיים ביעד ב-Cloud Storage ואם הוא השתנה.

נותנים הרשאה לקטגוריית המקור ב-Cloud Storage אם מעבירים מ-Cloud Storage.

צריך גם לתת הרשאה לקטגוריית היעד ב-Cloud Storage אם ההעברה מוגדרת ל[החלפת אובייקטים](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) במיקום היעד כשהם שונים, או אף פעם לא. לא נדרש אם הגדרת ההעברה היא תמיד להחליף את הקובץ.

אם זה מתאים למצב שלכם, אתם יכולים להקצות את התפקיד ברמת הפרויקט לפרויקט שממנו מופעל Storage Transfer Service.

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

נותנים הרשאה לקטגוריית המקור ב-Cloud Storage אם מעבירים מ-Cloud Storage.

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

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

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

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

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

העברות בין פרויקטים ב-Cloud Storage

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

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

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

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

  • קריאה בקטגוריה באחסון מדור קודם (roles/storage.legacyBucketReader)
  • צפייה באובייקטים באחסון (roles/storage.objectViewer)

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

  • Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter)
  • בנוסף, להעברות שמוגדרות להחלפת אובייקטים ביעד כשהם שונים, או אף פעם: צפייה באובייקטים באחסון (roles/storage.objectViewer)

הוראות להקצאת תפקידים ברמת ה-bucket זמינות במאמרים הבאים:

אי אפשר להעניק תפקידים ב-Cloud Storage Legacy ברמת הפרויקט.

הגבלות על הארגון

אם הארגון שלכם החיל אילוצים של מדיניות הארגון, כמו הגבלות על הדומיין (constraints/iam.allowedPolicyMemberDomains) או השבתה של צירוף חשבונות שירות למשאבים בפרויקטים אחרים (constraints/iam.disableCrossProjectServiceAccountUsage), צריך לעדכן את האילוצים האלה כדי שההעברות בין הפרויקטים יצליחו.

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

הרשאות ב-AWS וב-Microsoft

אם קובצי המקור נמצאים ב-AWS S3 או ב-Microsoft Azure Storage, צריך גם להגדיר גישה אליהם. במסמכים הבאים מפורטים השלבים הנדרשים: