במאמר הזה מוסבר איך ליצור שרת SFTP חיצוני באמצעות Cloud FTP. אפשר לגשת לשרת SFTP חיצוני דרך האינטרנט. שותפים שנמצאים מחוץ לרשת שלכם יכולים להשתמש בשרת כדי להעביר קבצים אל Cloud Storage וממנו בצורה מאובטחת.
אתם יכולים להגביל את הגישה לשרת SFTP חיצוני על סמך כתובות ה-IP של המשתמשים.
הוראות ליצירת שרת פנימי שאפשר לגשת אליו רק בתוך רשת הענן הווירטואלי הפרטי (VPC) מפורטות במאמר יצירת שרת SFTP פנימי. אחרי שיוצרים שרת, אי אפשר לשנות את ההגדרה שלו משרת חיצוני לשרת פנימי או להפך.
לפני שמתחילים
gcloud
-
התקינו את ה-CLI של Google Cloud.
-
הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים Google Cloud פרויקט.
תפקידים שנדרשים כדי לבחור או ליצור פרויקט
- Select a project: כדי לבחור פרויקט לא צריך תפקיד IAM ספציפי – אפשר לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד Project Creator (יצירת פרויקטים) (
roles/resourcemanager.projectCreator), שכולל את ההרשאהresourcemanager.projects.create. איך מקצים תפקידים
-
יוצרים Google Cloud פרויקט:
gcloud projects create PROJECT_ID
מחליפים את
PROJECT_IDבשם של פרויקט Google Cloud שיוצרים. -
בוחרים את הפרויקט שיצרתם: Google Cloud
gcloud config set project PROJECT_ID
מחליפים את
PROJECT_IDבשם הפרויקט ב- Google Cloud .
-
אם משתמשים בפרויקט קיים, מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה. אם משתמשים בפרויקט חדש, לא צריך לוודא כי כבר יש את ההרשאות הנדרשות.
מפעילים את Cloud FTP API:
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable ftp.googleapis.com
- אם רוצים להגביל את הגישה לשרת על סמך כתובות ה-IP של המשתמשים, צריך לאסוף רשימה של בלוקים בפורמט CIDR שמורשים לגשת לשרת.
התפקידים הנדרשים
כדי לקבל את ההרשאה שנדרשת ליצירת שרת SFTP, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של Cloud FTP (roles/ftp.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאה ftp.servers.create, שנדרשת כדי ליצור שרת SFTP.
יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.
יצירת שרת חיצוני
gcloud
כדי ליצור שרת חיצוני, מריצים את הפקודה gcloud alpha storage ftp servers create ומספקים את הדגל --access-type=EXTERNAL.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SERVER_ID: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. יכול להכיל אותיות קטנות, מספרים ומקפים. האורך המרבי הוא 30 תווים.
-
LOCATION_ID: Google Cloud המיקום של השרת, למשל
us-west1.כדי להשיג את מהירויות העברת הנתונים הכי גבוהות, צריך ליצור את השרת באותו מיקום שבו נמצאת קטגוריה של Cloud Storage שבה מאוחסנים הנתונים. אם המיקום של הקטגוריה לא נתמך על ידי Cloud FTP, בוחרים את המיקום הזמין הקרוב ביותר.
- CIDR_BLOCK: חסימת CIDR שמותרת לה גישה לשרת. לדוגמה:
192.0.2.0/24. צריך לציין לפחות ערך אחד, ואפשר לציין עד 500 בלוקים של CIDR ברשימה מופרדת בפסיקים. כדי לאפשר חיבורים מכל כתובות ה-IP, משתמשים ב-0.0.0.0/0.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL \ --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK
Windows (PowerShell)
gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL ` --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK
Windows (cmd.exe)
gcloud alpha storage ftp servers create SERVER_ID --access-type=EXTERNAL ^ --location=LOCATION_ID --allowed-cidr-blocks=CIDR_BLOCK
יצירת השרת נמשכת כ-10 דקות.
REST
כדי ליצור שרת חיצוני, משתמשים בשיטה servers.create ומספקים הגדרת גישה externalConfig.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט של השרת ב- Google Cloud .
-
LOCATION_ID: Google Cloud המיקום של השרת, למשל
us-west1.כדי להשיג את מהירויות העברת הנתונים הכי גבוהות, צריך ליצור את השרת באותו מיקום שבו נמצאת קטגוריה של Cloud Storage שבה מאוחסנים הנתונים. אם המיקום של הקטגוריה לא נתמך על ידי Cloud FTP, בוחרים את המיקום הזמין הקרוב ביותר.
- SERVER_ID: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. יכול להכיל אותיות קטנות, מספרים ומקפים. האורך המרבי הוא 30 תווים.
- CIDR_BLOCK: חסימת CIDR שמותרת לה גישה לשרת. לדוגמה:
192.0.2.0/24. צריך לספק לפחות ערך אחד, ואפשר לספק עד 500 בלוקים של CIDR . כדי לאפשר חיבורים מכל כתובות ה-IP, משתמשים ב-0.0.0.0/0.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID
תוכן בקשת JSON:
{
"accessType": "EXTERNAL",
"externalConfig": {
"allowedCidrBlocks": [
"CIDR_BLOCK"
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת.יצירת השרת נמשכת כ-10 דקות.