תיקיות מנוהלות ב-Cloud Storage מספקות בקרת גישה פרטנית לאובייקטים בקטגוריות של Cloud Storage. אפשר להגדיר הרשאות ברמת התיקייה בקטגוריות שמוגדרת בהן גישה אוניברסלית ברמת הקטגוריה. כשמעבירים אובייקטים בין קטגוריות של Cloud Storage באמצעות Storage Transfer Service, אפשר לשמור את ההרשאות האלה של תיקיות מנוהלות.
מגבלות
ההגבלות הבאות חלות על העברות של תיקיות מנוהלות:
- בקובץ היעד צריך להשתמש בגישה אחידה ברמת הקטגוריה.
- העברות של תיקיות מנוהלות לא תומכות באפשרויות
deleteObjectsUniqueInSinkאוdeleteObjectsFromSourceAfterTransfer. - לא יכולים להיות תנאי IAM בקטגוריית היעד או בפרויקט שלה שמשתמשים בסוג המשאב bucket (
storage.googleapis.com/Bucket) או בסוג המשאב object (storage.googleapis.com/Object). אם יש קטגוריה בפרויקט עם תנאי IAM שמשתמש באחד מסוגי המשאבים האלה, אי אפשר להעביר תיקיות מנוהלות לאף אחת מהקטגוריות בפרויקט הזה, גם אם התנאי יוסר בהמשך. - אין תמיכה בהעברות מבוססות-אירועים.
- אין תמיכה בהעברות של קובצי מניפסט.
הרשאות IAM
ההרשאות הבאות של Cloud Identity and Access Management (IAM) ב-Google Cloud נדרשות לסוכן השירות של Storage Transfer Service.
אפשר להגדיר הרשאות גם למקור וגם ליעד ברמת הקטגוריה, או להגדיר אותן בתיקייה המנוהלת. כדי להגדיר הרשאות בתיקייה מנוהלת של היעד, התיקייה הזו צריכה כבר להיות קיימת.
לא מומלץ להגדיר הרשאות לתיקיות מנוהלות ברמת הפרויקט. מידע נוסף זמין במאמר שיקולי אבטחה.
בקטגוריית המקור או בתיקייה מנוהלת:
storage.managedFolders.getIamPolicystorage.managedFolders.liststorage.managedFolders.get
בקטגוריית היעד או בתיקייה המנוהלת:
storage.managedFolders.setIamPolicystorage.managedFolders.liststorage.managedFolders.create
ההרשאות האלה הן בנוסף להרשאות הרגילות שנדרשות ל-Storage Transfer Service:
כדי להעניק את ההרשאות הנדרשות לתיקייה מנוהלת, צריך ליצור תפקיד בהתאמה אישית שכולל רק את ההרשאות הנדרשות.
יצירת העברה של תיקייה מנוהלת
כדי ליצור העברה שמכילה תיקייה מנוהלת, מציינים את managedFolderTransferEnabled: true ב-transferSpec. אפשר גם לציין ערך path כדי להעביר רק תיקייה מנוהלת ספציפית.
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
"name": "transferjobs/NAME",
"projectId": "PROJECT_ID",
"transferSpec": {
"gcsDataSource": {
"bucketName": "SOURCE_BUCKET",
"path": "SOURCE_PATH",
"managedFolderTransferEnabled": true
},
"gcsDataSink": {
"bucketName": "DESTINATION_BUCKET",
"path": "DESTINATION_PATH",
}
},
"status": "ENABLED"
}
אם לא מוגדרות הרשאות העברה מנוהלת נכונות במקור וביעד, ההעברה תיכשל.
מידע נוסף על יצירת העברה באמצעות API בארכיטקטורת REST מופיע במאמר יצירת העברות. אפשר גם לעיין בהפניה ל-transferJobs.create.
שיקולי אבטחה
הענקת הרשאות לתיקיות מנוהלות לסוכן שירות מאפשרת לחשבון לשנות מדיניות IAM בתיקיות היעד, או בכל התיקיות אם התפקיד ניתן ברמת הפרויקט. הדבר הזה יוצר סיכון אבטחה: משתמש עם הרשאות עריכה של משרה יכול לנצל את זה כדי להעניק הרשאות לגורם זדוני. כדי לצמצם את הסיכון הזה, כדאי לבודד העברות של תיקיות מנוהלות בפרויקט ייעודי ב-Google Cloud.
Cloud Logging
פעולות בתיקיות מנוהלות נרשמות ביומן על ידי Cloud Logging. פרטים נוספים זמינים במאמר Cloud Logging for Storage Transfer Service.
פתרון בעיות
במאמר פתרון בעיות מוסבר איך ליצור ולנהל תיקיות מנוהלות.