כדי להעביר נתונים מקטגוריית מקור ב-Cloud Storage, שירות Storage Transfer Service משתמש בסוכן שירות. סוכן השירות הזה נוצר בפעם הראשונה שאתם מפעילים את 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.
|
storage.objects.getIamPolicy |
מאפשרת לסוכן השירות לקרוא רשימות ACL באובייקטים של המקור. חובה אם מופעלת שמירה של רשימות ACL של אובייקטים (ACL_PRESERVE).
|
התפקידים המוגדרים מראש הבאים מעניקים יחד את ההרשאות הנדרשות:
- אחת מהאפשרויות:
- צפייה באובייקטים באחסון (
roles/storage.objectViewer) אם ההעברה היא לקטגוריה אחרת של Cloud Storage. - יצירת אובייקטים באחסון (
roles/storage.objectCreator) אם ההעברה היא למערכת קבצים.
- צפייה באובייקטים באחסון (
- בנוסף לאחד מהמסמכים הבאים:
- כתיבה בקטגוריה באחסון מדור קודם (
roles/storage.legacyBucketWriter) אם נדרשת הרשאה למחיקת אובייקטים. - קריאה בקטגוריה באחסון מדור קודם (
roles/storage.legacyBucketReader), אם לא נדרשת הרשאה למחיקת אובייקטים.
- כתיבה בקטגוריה באחסון מדור קודם (
- בנוסף, אם שומרים את רשימות ה-ACL של האובייקטים באמצעות
ACL_PRESERVE:- בעלים של אובייקטים באחסון מדור קודם (
roles/storage.legacyObjectOwner)
- בעלים של אובייקטים באחסון מדור קודם (
כל תפקיד ב-Cloud Storage שמסומן כתפקיד legacy אפשר להקצות רק ברמת הקטגוריה.
רשימה מלאה של התפקידים ב-Cloud Storage וההרשאות שהם כוללים מופיעה במאמר תפקידי IAM.
מתן ההרשאות הנדרשות
כדי לתת לסוכן השירות את ההרשאות הנדרשות, פועלים לפי השלבים הבאים.
איך מוצאים את כתובת האימייל של סוכן השירות
עוברים אל דף העזר של
googleServiceAccounts.get.נפתחת חלונית אינטראקטיבית בשם Try this method.
בחלונית, בקטע Request parameters, מזינים את מזהה הפרויקט. הפרויקט שמציינים כאן צריך להיות הפרויקט שבו משתמשים כדי לנהל את Storage Transfer Service, והוא יכול להיות שונה מהפרויקט של קטגוריית המקור.
לוחצים על Execute.
כתובת האימייל של סוכן השירות מוחזרת כערך של
accountEmail. מעתיקים את הערך הזה.כתובת האימייל של סוכן השירות היא בפורמט
project-PROJECT_NUMBER@storage-transfer-service..
הוספת סוכן השירות למדיניות ברמת הקטגוריה
המסוף
- במסוף Google Cloud , נכנסים לדף Buckets של Cloud Storage.
לוחצים על התפריט Bucket overflow () שמשויך לקטגוריה שבה רוצים להקצות תפקיד לחשבון המשתמש.
בוחרים באפשרות Edit access.
לוחצים על הכפתור + Add principal.
בשדה New principals, מזינים את כתובת האימייל של החשבון של סוכן השירות.
בתפריט הנפתח Select a role, בוחרים באפשרות
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. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.
Rust
JSON
להתקין ולהפעיל את ה-CLI של gcloud, כדי שתוכלו ליצור אסימון גישה לכותרת
Authorization.יוצרים קובץ JSON שמכיל את הפרטים הבאים:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.legacyBucketReader", "members":[ "YOUR_AGENT_EMAIL" ] } ] }
מחליפים את מה שכתוב בשדות הבאים:
-
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./storage/v1/b/BUCKET_NAME/iam"
מחליפים את מה שכתוב בשדות הבאים:
-
JSON_FILE_NAMEהוא הנתיב לקובץ שיצרתם בשלב 2. -
OAUTH2_TOKENהוא אסימון הגישה שיצרתם בשלב 1. BUCKET_NAMEהוא שם הקטגוריה שאליה אתם רוצים לתת גישה לחשבון המשתמש. לדוגמה,my-bucket.
-