ב-Cloud Storage משתמשים בסוכן שירות כדי להעביר נתונים לקטגוריה של Cloud Storage. סוכן השירות הזה נוצר בפעם הראשונה שאתם מפעילים את googleServiceAccounts.get.
קטגוריית היעד לא חייבת להיות באותו פרויקט כמו סוכן השירות. השלבים זהים בכל הפרויקטים שבהם נמצאת הקטגוריה.
הרשאות של משתמשים
כדי לתת לסוכן השירות את ההרשאות הנדרשות, צריכות להיות לכם ההרשאות הרלוונטיות בקטגוריית היעד:
storage.buckets.getIamPolicystorage.buckets.setIamPolicy
התפקידים בעלים של קטגוריית אחסון מדור קודם (roles/storage.legacyBucketOwner) ואדמין של אחסון (roles/storage.admin) מספקים את ההרשאות הנדרשות.
מתן הרשאות אוטומטי במסוף Google Cloud
אם אתם משתמשים במסוף Google Cloud כדי ליצור את ההעברה, ויש לכם את ההרשאות שמפורטות בקטע הרשאות משתמש, סוכן השירות יקבל באופן אוטומטי את ההרשאות הנדרשות בקטגוריית היעד.
אתם יכולים לדלג על השלבים שבדף הזה. אם צריך, מגדירים את הגישה למקור ואז יוצרים העברה.
ההרשאות הנדרשות
לסוכן השירות צריכות להיות ההרשאות הבאות בקטגוריית היעד:
| הרשאה | תיאור |
|---|---|
storage.buckets.get |
מאפשרת לחשבון השירות לקבל את המיקום של הקטגוריה. |
storage.objects.get |
מאפשר לחשבון השירות לראות אובייקטים ואת המטא-נתונים שלהם, לא כולל רשימות ACL. חובה אם ההעברה מוגדרת [להחליף אובייקטים](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) בכיור כשהם שונים, או אף פעם. לא נדרש אם הגדרת ההעברה היא החלפה תמיד. |
storage.objects.create |
מאפשרת לחשבון השירות להוסיף אובייקטים לקטגוריה. |
storage.objects.delete |
מאפשרת לחשבון השירות למחוק אובייקטים בקטגוריה.
חובה אם מגדירים את שימו לב שאם בקטגוריית היעד מופעל ניהול גרסאות של אובייקטים, אף אחד מהפקדים |
storage.objects.list |
מאפשרת לחשבון השירות להציג רשימה של אובייקטים בקטגוריה. חובה אם הגדרתם את overwriteObjectsAlreadyExistingInSink לערך false או את deleteObjectsUniqueInSink לערך true. |
התפקיד המוגדר מראש הבא מעניק את ההרשאות הנדרשות:
- כתיבה בקטגוריה באחסון מדור קודם (
roles/storage.legacyBucketWriter)
בנוסף, בהגדרות העברה שמוגדרות להחלפת אובייקטים בכיור כשהם שונים, או אף פעם, צריך להקצות לסוכן השירות את התפקיד המוגדר מראש הבא:
- צפייה באובייקטים באחסון (
roles/storage.objectViewer)
רשימה מלאה של התפקידים ב-Cloud Storage וההרשאות שהם כוללים מופיעה במאמר תפקידי IAM.
מתן ההרשאות הנדרשות
כדי להקצות לסוכן השירות את התפקידים Storage Legacy Bucket Writer ו-Storage Object Viewer:
איך מוצאים את כתובת האימייל של סוכן השירות
עוברים אל דף העזר של
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, מזינים את כתובת האימייל של החשבון של סוכן השירות.
בתפריט הנפתח Select a role, בוחרים באפשרות
Storage Legacy Bucket Writer.לוחצים על Save.
חוזרים על הפעולה כדי להוסיף את התפקיד
Storage Object Viewerאם ההעברה מוגדרת להחלפת אובייקטים בכיור כשהם שונים, או אף פעם.
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.legacyBucketWriter
מחליפים את מה שכתוב בשדות הבאים:
-
BUCKET_NAMEהוא שם הקטגוריה שאליה מעניקים גישה לחשבון המשתמש. לדוגמה,my-bucket. -
YOUR_AGENT_EMAILהוא כתובת האימייל של חשבון הסוכן שהעתקתם בקטע איך מוצאים את כתובת האימייל של סוכן השירות.
כדי להקצות את התפקיד Storage Object Viewer להגדרות העברה שמוגדרות לדרוס אובייקטים ב-sink כשהם שונים או אף פעם:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:YOUR_AGENT_EMAIL --role=roles/storage.objectViewer
דוגמאות קוד
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.legacyBucketWriter", "members":[ "YOUR_AGENT_EMAIL" ] }, { "role": "roles/storage.objectViewer", "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.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
מחליפים את מה שכתוב בשדות הבאים:
-
JSON_FILE_NAMEהוא הנתיב לקובץ שיצרתם בשלב 2. -
OAUTH2_TOKENהוא אסימון הגישה שיצרתם בשלב 1. BUCKET_NAMEהוא שם הקטגוריה שאליה אתם רוצים לתת גישה לחשבון המשתמש. לדוגמה,my-bucket.
-
במאמרי העזרה של Cloud Storage IAM מוסבר איך מקצים תפקידי IAM למשאבים של Cloud Storage.