במאמר הזה מוסבר איך לעדכן את הקטגוריות של Cloud Storage למשתמש ב-Cloud FTP, כולל הקטגוריות שאליהן המשתמש יכול לגשת וההרשאות שיש למשתמש.
ככלל, אלה השלבים לעדכון הקטגוריות של משתמש:
- מעדכנים את התפקידים ב-IAM של חשבון השירות של המשתמש.
- ממפים את הספריות של המשתמש לקטגוריות המעודכנות.
לפני שמתחילים
יוצרים קטגוריה אחת או יותר של Cloud Storage לאחסון הנתונים שהמשתמש יעבוד איתם, אם הקטגוריות עדיין לא קיימות. אפשר להעניק למשתמש גישה לעד 10 קטגוריות.
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת לעדכון משתמשי SFTP, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין FTP (roles/ftp.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה ftp.users.update, שנדרשת כדי לעדכן משתמשי SFTP.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים מוגדרים מראש.
עדכון תפקידי IAM לחשבון שירות של משתמש
אם משנים את הדליים שהמשתמש יכול לגשת אליהם, או אם משנים את ההרשאה שיש למשתמש למיפוי קיים של ספרייה, צריך לעדכן את חשבון השירות של המשתמש בתפקידים הרלוונטיים ב-IAM. מבצעים את הפעולות הבאות:
משיגים את כתובת האימייל של חשבון השירות של המשתמש. איך מקבלים פרטים על משתמש?
אם מוסיפים קטגוריות חדשות למיפוי הספריות או מגדילים את הגישה לקטגוריות קיימות, צריך לבצע את הפעולות הבאות:
מקצים לעצמכם את התפקיד 'צפייה בקטגוריית אחסון' (
roles/storage.bucketViewer) בקטגוריה, אם התפקיד עדיין לא הוקצה לכם:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="user:ADMINISTRATOR_EMAIL" \ --role="roles/storage.bucketViewer"
מחליפים את מה שכתוב בשדות הבאים:
ADMINISTRATOR_EMAIL: כתובת האימייל של הגורם הראשי שיוצר את משתמש ה-SFTP. אם אתם יוצרים את המשתמש (בניגוד לאפליקציה), הערך הזה הוא כתובת האימייל שבה אתם משתמשים כדי לגשת אל Google Cloud.
BUCKET_NAME: שם הקטגוריה.
אם עדיין לא הוקצה לכם התפקיד "צפייה באובייקט אחסון" (
roles/storage.objectViewer) בקטגוריה, הקצו אותו לעצמכם:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="user:ADMINISTRATOR_EMAIL" \ --role="roles/storage.objectViewer"
מקצים לחשבון השירות של המשתמש את תפקידי ה-IAM שנדרשים לגישה למאגרי המידע:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="ROLE_TO_GRANT"
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות של המשתמש.
ROLE_TO_GRANT: תפקיד ה-IAM שרוצים להקצות. מציינים אחד מהתפקידים הבאים:- כדי לקבל גישה לקריאה בלבד, משתמשים בתפקיד
roles/storage.objectViewer. - כדי לקבל גישת קריאה וכתיבה, צריך להשתמש בתפקיד
roles/storage.objectAdmin.
- כדי לקבל גישה לקריאה בלבד, משתמשים בתפקיד
-
חוזרים על השלבים הקודמים לכל מאגר שהמשתמש צריך לגשת אליו.
אם מסירים מאגרי מידע ממיפוי הספריות או מצמצמים את הגישה למאגרי מידע קיימים, צריך לבטל את הגישה מחשבון השירות של המשתמש:
gcloud storage buckets remove-iam-policy-binding gs://BUCKET_NAME \ --member="serviceAccount:SERVICE_ACCOUNT" \ --role="ROLE_TO_REVOKE"
מחליפים את
ROLE_TO_REVOKEבתפקיד ב-IAM שרוצים לבטל.חוזרים על השלב הזה לכל דלי ולכל תפקיד IAM שהמשתמש לא אמור יותר לקבל גישה אליהם.
עדכון הקטגוריות של המשתמש
gcloud
כדי לעדכן את הקטגוריות של משתמש SFTP, מריצים את הפקודה gcloud alpha storage ftp users update.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- USERNAME: שם המשתמש של משתמש ה-SFTP.
- LOCATION_ID: המיקום של השרת, למשל
us-west1. - SERVER_ID: מזהה השרת.
- BUCKET_NAME: השם של מאגר (bucket) שלמשתמש ה-SFTP יש גישה אליו, למשל
example-bucket. השמיטו אתgs://. - (אופציונלי) BUCKET_PREFIX: הנתיב של תיקייה בתוך הקטגוריה שרוצים להגדיר כתיקיית השורש של מיפוי התיקיות הזה.
אם משמיטים את המאפיין
bucket_prefix, אז Cloud FTP משתמש בתיקיית השורש של הקטגוריה. -
DIRECTORY: הנתיב של ספריית הנחיתה הלוגית שמוצג למשתמש ה-SFTP. לדוגמה,
/home/uploads.אם ממפים כמה דליים או תיקיות, צריך לספק נתיב ייחודי לספרייה לכל מיפוי.
אין תמיכה בספריות לוגיות מקוננות. אם מספקים כמה מיפויים לספרייה, צריך לספק את הספריות במבנה שטוח במקום במבנה בתצוגת עץ. לדוגמה, השתמשו ב-
/dir1וב-/dir2במקום ב-/dir1וב-/dir1/dir2. - SFTP_PERMISSION: רמת הגישה לספרייה. כדי להגדיר הרשאת קריאה בלבד, צריך להגדיר את הערך הזה בתור
READ_ONLY. כדי לקבל גישת קריאה וכתיבה, צריך להגדיר את הערך הזה ל-READ_WRITE.
כדי להעניק למשתמש גישה לכמה מאגרי מידע, צריך לציין את הדגל --storage-directory-mapping כמה פעמים, עם מיפוי ספריות לכל מאגר מידע.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID \ --server=SERVER_ID \ --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
Windows (PowerShell)
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ` --server=SERVER_ID ` --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
Windows (cmd.exe)
gcloud alpha storage ftp users update USERNAME --location=LOCATION_ID ^ --server=SERVER_ID ^ --storage-directory-mapping=bucket=BUCKET_NAME,bucket_prefix=BUCKET_PREFIX,directory=DIRECTORY,permission=SFTP_PERMISSION
אם למשתמש יש חיבור SFTP פעיל, יכול להיות שהוא יצטרך להתנתק ולהתחבר מחדש כדי שההגדרות המעודכנות של הקטגוריה ייכנסו לתוקף.
REST
כדי לעדכן את הקטגוריות של משתמש SFTP, משתמשים בשיטה servers.users.patch.
בפרמטר השאילתה updateMask, מציינים את השדה storageDirectoryMappings.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud של השרת.
- LOCATION_ID: המיקום של השרת, למשל
us-west1. - SERVER_ID: מזהה השרת.
- USERNAME: שם המשתמש של משתמש ה-SFTP.
- BUCKET_NAME: שם הקטגוריה שלמשתמש ה-SFTP יש גישה אליה, למשל
example-bucket. לא כוללים אתgs://. - (אופציונלי) BUCKET_PREFIX: הנתיב של תיקייה בתוך קטגוריית האחסון שרוצים להגדיר כתיקיית השורש למיפוי הזה של הספריות. אם לא מציינים את הערך הזה, Cloud FTP משתמש בשורש של הדלי.
-
DIRECTORY: הנתיב של ספריית הנחיתה הלוגית שמוצג למשתמש ה-SFTP. לדוגמה,
/home/uploads. אם משמיטים את הערך הזה, Cloud FTP מגדיר את ספריית הנחיתה כ-/.אם ממפים כמה קטגוריות או תיקיות, צריך לציין נתיב ספרייה ייחודי לכל מיפוי.
אין תמיכה בספריות לוגיות מקוננות. אם מספקים כמה מיפויים לספרייה, צריך לספק את הספריות במבנה שטוח במקום במבנה בתצוגת עץ. לדוגמה, השתמשו ב-
/dir1וב-/dir2במקום ב-/dir1וב-/dir1/dir2. - SFTP_PERMISSION: רמת הגישה לספרייה. כדי להגדיר הרשאת קריאה בלבד, צריך להגדיר את הערך הזה ל-
READ_ONLY. כדי לקבל גישת קריאה וכתיבה, צריך להגדיר את הערך הזה ל-READ_WRITE.
כדי לתת למשתמש גישה לכמה קטגוריות, צריך לציין כמה מיפויים של קטגוריות ברשימה storageDirectoryMappings.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=storageDirectoryMappings
תוכן בקשת JSON:
{
"storageDirectoryMappings": [
{
"bucket": "BUCKET_NAME",
"bucketPrefix": "BUCKET_PREFIX",
"directory": "DIRECTORY",
"permission": "SFTP_PERMISSION"
}
]
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. העדכון של המשתמש יימשך כמה שניות.אם למשתמש יש חיבור SFTP פעיל, יכול להיות שהוא יצטרך להתנתק ואז להתחבר מחדש כדי שההגדרות המעודכנות של מאגר הנתונים יחולו.
ספריות לקוח
C#
כדי ללמוד איך מתקינים את ספריית הלקוח ואיך משתמשים בה ב-Cloud FTP, ראו: ספריות לקוח של Cloud FTP. מידע נוסף מופיע במאמרי העזרה של Cloud FTP C# API.
כדי לבצע אימות ב-Cloud FTP, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Go
כדי ללמוד איך מתקינים את ספריית הלקוח ואיך משתמשים בה ב-Cloud FTP, ראו: ספריות לקוח של Cloud FTP. למידע נוסף, קראו את מאמרי העזרה של Cloud FTP Go API.
כדי לבצע אימות ב-Cloud FTP, אתם צריכים להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Java
כדי ללמוד איך מתקינים את ספריית הלקוח ואיך משתמשים בה ב-Cloud FTP, ראו: ספריות לקוח של Cloud FTP. למידע נוסף, קראו את מאמרי העזרה של Cloud FTP Java API.
כדי לבצע אימות ב-Cloud FTP, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנה ושימוש בספריית הלקוח של Cloud FTP מופיע במאמר ספריות הלקוח של Cloud FTP. מידע נוסף מופיע במאמרי העזרה של Cloud FTP Node.js API.
כדי לבצע אימות ב-Cloud FTP, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
PHP
כדי ללמוד איך מתקינים את ספריית הלקוח ואיך משתמשים בה ב-Cloud FTP, ראו: ספריות לקוח של Cloud FTP. למידע נוסף, קראו את מאמרי העזרה של Cloud FTP PHP API.
כדי לבצע אימות ב-Cloud FTP, אתם צריכים להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנה ושימוש בספריית הלקוח של Cloud FTP מופיע במאמר ספריות הלקוח של Cloud FTP. מידע נוסף מופיע במאמרי העזרה של Cloud FTP Python API.
כדי לבצע אימות ב-Cloud FTP, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Ruby
מידע על התקנה ושימוש בספריית הלקוח של Cloud FTP מופיע במאמר ספריות הלקוח של Cloud FTP. למידע נוסף, קראו את מאמרי העזרה של Cloud FTP Ruby API.
כדי לבצע אימות ב-Cloud FTP, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.