Storage Transfer Service משתמש בחשבון שירות בניהול Google, שנקרא סוכן שירות, כדי להעביר נתונים מקטגוריית מקור ב-Cloud Storage. סוכן השירות הזה נוצר בפעם הראשונה שקוראים ל-googleServiceAccounts.get.
קטגוריית המקור לא צריכה להיות שייכת לאותו פרויקט כמו סוכן השירות. השלבים זהים לא משנה באיזה פרויקט נמצאת הקטגוריה.
הרשאות של משתמשים
כדי להעניק לסוכן השירות את ההרשאות הנדרשות, צריכות להיות לכם ההרשאות הרלוונטיות בקטגוריית המקור:
storage.buckets.getIamPolicystorage.buckets.setIamPolicy
התפקיד בעלים של קטגוריית אחסון מדור קודם (roles/storage.legacyBucketOwner) או התפקיד אדמין לניהול אחסון (roles/storage.admin) מספקים את ההרשאות הנדרשות.
הענקת הרשאות אוטומטית במסוף Google Cloud
אם אתם משתמשים במסוף Google Cloud כדי ליצור את ההעברה, ויש לכם את ההרשאות שמפורטות בקטע הרשאות משתמש, סוכן השירות יקבל באופן אוטומטי את ההרשאות הנדרשות בדלי המקור.
אפשר לדלג על השלבים בדף הזה ולעבור ישירות אל יצירת העברה.
ההרשאות הנדרשות
לסוכן השירות צריכות להיות ההרשאות הבאות בקטגוריית המקור:
| הרשאה | תיאור |
|---|---|
storage.buckets.get |
מאפשר לסוכן השירות לקבל את המיקום של הקטגוריה. |
storage.objects.list |
מאפשר לסוכן השירות להציג רשימה של אובייקטים בקטגוריה. |
storage.objects.get |
מאפשר לסוכן השירות לקרוא אובייקטים בקטגוריה. |
storage.objects.create |
ההרשאה הזו מאפשרת לסוכן השירות ליצור אובייקטים בקטגוריה. חובה אם ההעברה היא למערכת קבצים. Storage Transfer Service יוצר ומאכלס שתי תיקיות בקטגוריית המקור: התיקייה |
storage.objects.delete |
מאפשר לסוכן השירות למחוק אובייקטים בקטגוריה. חובה
אם הערך של deleteObjectsFromSourceAfterTransfer הוא
true.
|
התפקידים המוגדרים מראש הבאים מעניקים יחד את ההרשאות הנדרשות:
- אחת מהאפשרויות:
- צפייה באובייקטים באחסון (
roles/storage.objectViewer) אם ההעברה היא לקטגוריה אחרת של Cloud Storage. - יצירת אובייקטים באחסון (
roles/storage.objectCreator) אם ההעברה היא למערכת קבצים.
- צפייה באובייקטים באחסון (
- בנוסף, אחד מהפרטים הבאים:
- Storage Legacy Bucket Writer (
roles/storage.legacyBucketWriter) אם נדרשת הרשאת מחיקת אובייקטים. - Storage Legacy Bucket Reader (
roles/storage.legacyBucketReader) אם לא נדרשת הרשאת מחיקת אובייקטים.
- Storage Legacy Bucket Writer (
כל תפקיד ב-Cloud Storage שמסומן כlegacy אפשר להקצות רק ברמת הקטגוריה.
רשימה מלאה של תפקידים ב-Cloud Storage וההרשאות שמוגדרות בהם מופיעה במאמר תפקידי IAM.
כשמגדירים את ACL_PRESERVE, נדרש גם התפקיד בעלי אובייקט ב-Storage מדור קודם (roles/storage.legacyObjectOwner) לאובייקט המקור ברשימות ACL של אובייקטים. במקרה של ACL_PRESERVE, צריך להוסיף ידנית את חשבון השירות עם התפקיד בעלים של אובייקט מדור קודם באחסון כדי לתת לאובייקט המקור את ההרשאה storage.objects.getIamPolicy.
מתן ההרשאות הנדרשות
כדי להעניק לסוכן השירות את ההרשאות הנדרשות, פועלים לפי השלבים הבאים.
איך מוצאים את האימייל של סוכן השירות
עוברים אל דף העזר של
googleServiceAccounts.get.תיפתח חלונית אינטראקטיבית עם הכותרת Try this method (נסו את השיטה הזו).
בחלונית, בקטע Request parameters (פרמטרים של בקשה), מזינים את מזהה הפרויקט. הפרויקט שאתם מציינים כאן חייב להיות הפרויקט שבו אתם משתמשים כדי לנהל את Storage Transfer Service, ויכול להיות שהוא שונה מהפרויקט של דלי המקור.
לוחצים על Execute.
כתובת האימייל של סוכן השירות מוחזרת כערך של
accountEmail. מעתיקים את הערך הזה.כתובת האימייל של סוכן השירות היא בפורמט
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
הוספת סוכן השירות למדיניות ברמת הקטגוריה
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
לוחצים על התפריט Bucket overflow () שמשויך לקטגוריה שבה רוצים להקצות תפקיד לישות מורשית.
בוחרים באפשרות Edit access.
לוחצים על הלחצן + Add principal.
בשדה New principals, מזינים את כתובת האימייל של חשבון סוכן השירות.
בתפריט הנפתח בחירת תפקיד, בוחרים באפשרות
Storage Object ViewerאוStorage Object Creator.לוחצים על הוספת תפקיד נוסף.
בוחרים באפשרות
Storage Legacy Bucket Writerאו באפשרותStorage Legacy Bucket Reader.לוחצים על Save.
gcloud
משתמשים בפקודה gcloud storage buckets add-iam-policy-binding:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.legacyBucketReader
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAMEהוא שם הקטגוריה שאליה מעניקים גישה לחשבון המשתמש. לדוגמה,my-bucket. -
YOUR_AGENT_EMAILהיא כתובת האימייל של חשבון הסוכן שהעתקתם בשלב איך מוצאים את כתובת האימייל של סוכן השירות.
דוגמאות קוד
C++
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage C++ API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
C#
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage C# API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Go
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage Go API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Java
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage Java API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Node.js
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage Node.js API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
PHP
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage PHP API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Python
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage Python API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Ruby
מידע על התקנת ספריית הלקוח של Cloud Storage והשימוש בה מופיע במאמר ספריות הלקוח של Cloud Storage. מידע נוסף מופיע במאמרי העזרה של Cloud Storage Ruby API.
כדי לבצע אימות ב-Cloud Storage, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
JSON
התקנה והפעלה של ה-CLI של gcloud, שמאפשרות ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
מחליפים את מה שכתוב בשדות הבאים:
משתמשים ב-
cURLכדי לשלוח קריאה ל-API בפורמט JSON באמצעות בקשתPUT setIamPolicy:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
מחליפים את מה שכתוב בשדות הבאים:
-
JSON_FILE_NAMEהוא הנתיב לקובץ שיצרתם בשלב 2. -
OAUTH2_TOKENהוא אסימון הגישה שיצרתם בשלב 1. BUCKET_NAMEהוא שם הקטגוריה שאליה אתם רוצים לתת גישה לחשבון המשתמש. לדוגמה,my-bucket.
-