תיקיות מנוהלות ב-Cloud Storage מספקות בקרת גישה פרטנית לאובייקטים בקטגוריות של Cloud Storage. אפשר להגדיר הרשאות ברמת התיקייה בקטגוריות שמוגדרת בהן גישה אוניברסלית ברמת הקטגוריה. כשמעבירים אובייקטים בין קטגוריות של Cloud Storage באמצעות Storage Transfer Service, אפשר לשמור את ההרשאות האלה של תיקיות מנוהלות.
מגבלות
ההגבלות הבאות חלות על העברות של תיקיות מנוהלות:
- בקטגוריית היעד צריך להשתמש בגישה אחידה ברמת הקטגוריה.
- העברות של תיקיות מנוהלות לא תומכות באפשרויות
deleteObjectsUniqueInSinkאוdeleteObjectsFromSourceAfterTransfer. - לא יכולים להיות תנאי IAM בקטגוריית היעד או בפרויקט שלה שמשתמשים בסוג המשאב bucket (
storage.googleapis.com/Bucket) או בסוג המשאב object (storage.googleapis.com/Object). אם יש קטגוריה בפרויקט עם תנאי IAM שמשתמש באחד מסוגי המשאבים האלה, אי אפשר להעביר תיקיות מנוהלות לאף אחת מהקטגוריות בפרויקט הזה, גם אם התנאי יוסר בהמשך. - אין תמיכה בהעברות מבוססות-אירועים.
- אין תמיכה בהעברות של קובצי מניפסט.
הרשאות IAM
חשבון השירות המנוהל על ידי Google צריך את ההרשאות הבאות של Cloud Identity and Access Management (IAM) ב-Google Cloud.
גם במקור וגם ביעד, אפשר להגדיר הרשאות ברמת הקטגוריה או להגדיר אותן בתיקייה המנוהלת. כדי להגדיר הרשאות בתיקייה מנוהלת של יעד, התיקייה הזו צריכה כבר להיות קיימת.
לא מומלץ להגדיר הרשאות לתיקיות מנוהלות ברמת הפרויקט. מידע נוסף זמין במאמר שיקולי אבטחה.
בקטגוריית המקור או בתיקייה מנוהלת:
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 reference.
שיקולי אבטחה
הענקת הרשאות לתיקייה מנוהלת לחשבון שירות בניהול Google מאפשרת לחשבון לשנות את מדיניות ה-IAM בתיקיות היעד, או בכל התיקיות אם התפקיד ניתן ברמת הפרויקט. הדבר הזה יוצר סיכון אבטחה: משתמש עם הרשאות עריכה של משרה יכול לנצל את זה כדי להעניק הרשאות לגורם זדוני. כדי לצמצם את הסיכון הזה, כדאי לבודד העברות של תיקיות מנוהלות בתוך פרויקט ייעודי ב-Google Cloud.
Cloud Logging
פעולות בתיקיות מנוהלות נרשמות ביומן על ידי Cloud Logging. פרטים נוספים זמינים במאמר בנושא Cloud Logging ל-Storage Transfer Service.
פתרון בעיות
במאמר פתרון בעיות מוסבר איך ליצור ולנהל תיקיות מנוהלות.