במאמר הזה מוסבר איך לעדכן את חשבון השירות של משתמש ב-Cloud FTP. חשבון השירות ניגש למשאבים של Cloud Storage בשם המשתמש.
כדי לעדכן את חשבון השירות של משתמש:
- מגדירים חשבון שירות עם התפקידים המתאימים ב-IAM.
- מעדכנים את חשבון השירות שמצורף למשתמש.
מומלץ להשתמש בחשבון שירות ייעודי לכל משתמש כדי שתוכלו לנהל את הגישה ל-SFTP בנפרד לכל משתמש.
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת לעדכון משתמשי SFTP, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM FTP Admin (roles/ftp.admin) בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה ftp.users.update, שנדרשת כדי לעדכן משתמשי SFTP.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
הגדרת חשבון שירות
אם עדיין אין חשבון שירות, יוצרים חשבון שירות בשביל המשתמש.
gcloud iam service-accounts create USERNAME-sa \ --description="USERNAME SFTP Service Account" \ --display-name="USERNAME SFTP Service Account"
מחליפים את
USERNAMEבשם משתמש ייחודי עבור משתמש ה-SFTP. שם המשתמש חייב להתחיל באות קטנה באנגלית, ויכול לכלול אותיות קטנות, מספרים או מקפים.אם הפעולה מצליחה, מוצגת הודעה כמו
Created service account [example-userid-sa]מקצים לעצמכם את התפקיד 'משתמש בחשבון שירות' (
roles/iam.serviceAccountUser):gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \ --member="user:ADMINISTRATOR_EMAIL" \ --role="roles/iam.serviceAccountUser"
מחליפים את
ADMINISTRATOR_EMAILבכתובת האימייל של החשבון הראשי שמעדכן את משתמש ה-SFTP. אם אתם מעדכנים את המשתמש (ולא את האפליקציה), הערך הזה הוא כתובת האימייל שמשמשת אתכם לגישה אל Google Cloud.אם הפעולה מצליחה, מוצגת הודעה כמו זו:
Updated IAM policy for serviceAccount [example-userid-sa@example-project.iam.gserviceaccount.com]. bindings: - members: - user:admin@example.com role: roles/iam.serviceAccountUser etag: BwZJk7OiSzw= version: 1מקצים לחשבון השירות של המשתמש את תפקיד ה-IAM שנדרש לגישה למאגר:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member="serviceAccount:USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE"
מחליפים את
ROLEבאחד מתפקידי ה-IAM הבאים:- כדי להגדיר הרשאת גישה לקריאה בלבד, משתמשים בתפקיד
roles/storage.objectViewer. - כדי לקבל גישת קריאה וכתיבה, צריך להשתמש בתפקיד
roles/storage.objectAdmin.
חוזרים על השלב הזה לכל מאגר שהמשתמש צריך לגשת אליו.
- כדי להגדיר הרשאת גישה לקריאה בלבד, משתמשים בתפקיד
נותנים לסוכן השירות של Cloud FTP הרשאה ליצור אסימונים לחשבון השירות של המשתמש:
מוצאים את כתובת האימייל של סוכן השירות של שרת ה-SFTP. הוראות מפורטות מופיעות במאמר קבלת פרטים על שרת.
נותנים הרשאה לסוכן השירות של Cloud FTP:
gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:SERVICE_AGENT_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"
מחליפים את
SERVICE_AGENT_EMAILבכתובת האימייל של סוכן השירות.
לאחר מכן, מעדכנים את חשבון השירות של המשתמש.
עדכון חשבון השירות של משתמש
REST
כדי לעדכן את חשבון השירות שמצורף למשתמש SFTP, משתמשים בשיטת servers.users.patch.
בפרמטר השאילתה updateMask, מציינים את השדה customerServiceAccount.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט של השרת ב- Google Cloud .
- LOCATION_ID: המיקום של השרת, למשל
us-west1. - SERVER_ID: מזהה השרת.
- USERNAME: שם המשתמש של משתמש ה-SFTP.
ה-method של ה-HTTP וכתובת ה-URL:
PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=customerServiceAccount
תוכן בקשת JSON:
{
"customerServiceAccount": "USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת. העדכון של המשתמש יימשך כמה שניות.