במאמר הזה מוסבר איך ליצור שרת SFTP פנימי באמצעות Cloud FTP. אפשר לגשת לשרת SFTP פנימי רק בתוך רשת הענן הווירטואלי הפרטי (VPC) באמצעות Private Service Connect. עובדים ובעלי עניין פנימיים שנמצאים ברשת שלכם יכולים להשתמש בשרת כדי להעביר קבצים באופן מאובטח אל Cloud Storage וממנו.
אתם מציינים את הפרויקטים שמורשים להתחבר לשרת. אפשר גם לציין פרויקטים שלא יאושרו לקישור.
מידע רקע על VPC זמין בסקירה הכללית על VPC.
במאמר יצירת שרת SFTP חיצוני מוסבר איך ליצור שרת חיצוני שאפשר לגשת אליו דרך האינטרנט. אחרי שיוצרים את השרת, אי אפשר לשנות את הסוג שלו (חיצוני או פנימי).
לפני שמתחילים
המסוף
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud FTP API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud FTP API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
אוספים את המידע הבא על המשתמשים בשרת:
- רשימה של מזהי פרויקטים או מספרי פרויקטים שמורשים לגשת לשרת.
- (אופציונלי) רשימה של מזהי פרויקטים או מספרי פרויקטים שנדחתה הגישה שלהם לשרת.
gcloud
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים פרויקט ב- Google Cloud .
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
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). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable ftp.googleapis.com
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
יוצרים או בוחרים פרויקט ב- Google Cloud .
התפקידים שנדרשים כדי לבחור או ליצור פרויקט
- בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
-
יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (
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). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידיםgcloud services enable ftp.googleapis.com
-
אוספים את המידע הבא על המשתמשים בשרת:
- רשימה של מזהי פרויקטים או מספרי פרויקטים שמורשים לגשת לשרת.
- (אופציונלי) רשימה של מזהי פרויקטים או מספרי פרויקטים שנדחתה הגישה שלהם לשרת.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות ליצירת שרת SFTP, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של Cloud FTP (roles/ftp.admin) ב-IAM בפרויקט.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות ליצירת שרת SFTP. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור שרת SFTP, צריך את ההרשאות הבאות:
-
ftp.servers.create -
אם משתמשים במסוף Google Cloud כדי לבצע את המשימה:
-
ftp.servers.list -
ftp.locations.list
-
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
יצירת שרת פנימי
המסוף
- נכנסים לדף Cloud FTP במסוף Google Cloud .
לוחצים על יצירת שרת.
בכרטיסייה Server configuration, מזינים את הפרטים הבסיסיים של השרת:
בשדה מזהה השרת, מזינים מזהה ייחודי לשרת.
ברשימה Region, בוחרים את Google Cloud המיקום של השרת.
כדי שהעברת הנתונים תהיה מהירה ככל האפשר, צרו את השרת באותו מיקום של קטגוריה של Cloud Storage שבה מאוחסנים הנתונים. אם המיקום של הקטגוריה לא נתמך ב-Cloud FTP, צריך לבחור את המיקום הזמין הקרוב ביותר.
(אופציונלי) מזינים שם לתצוגה של השרת.
לוחצים על Continue.
בכרטיסייה Networking and security, מגדירים את הקישוריות לשרת:
בוחרים באפשרות Internal (VPC only).
בקטע Accepted projects, מציינים את הפרויקטים של הצרכנים שיכולים להתחבר לשרת באמצעות Private Service Connect. מבצעים את הפעולות הבאות:
בשדה Project ID or number, מזינים את מזהה הפרויקט או המספר של פרויקט שמותר להתחבר אליו. לדוגמה,
example-allowed-project.בשדה Connection limit, מזינים את המספר המקסימלי של נקודות קצה של Private Service Connect שאפשר ליצור בפרויקט של הצרכן. הערך צריך להיות בין נקודת קצה אחת ל-250 נקודות קצה.
כדי להוסיף עוד פרויקטים, לוחצים על Add accepted project וחוזרים על השלבים הקודמים.
(אופציונלי) כדי למנוע מפרויקטים להתחבר לשרת, בקטע Rejected projects לוחצים על Add rejected project. מזינים את מזהה הפרויקט או את מספר הפרויקט של הצרכן שאסור לו להתחבר לשרת.
פרויקטים שמופיעים ברשימה הזו לא יכולים לגשת לשרת, גם אם הם מופיעים ברשימת הפרויקטים המורשים.
לוחצים על יצירה.
יצירת השרת נמשכת כ-10 דקות.
gcloud
כדי ליצור שרת פנימי, מריצים את הפקודה gcloud alpha storage ftp servers create ומציינים את הדגל --access-type=INTERNAL.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- SERVER_ID: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. הוא יכול להכיל אותיות קטנות, מספרים ומקפים.
לא יכול להתחיל בתחילית
googאו להכיל את המחרוזתgoogle, כולל שגיאות איות דומות כמוg00gle. האורך המקסימלי הוא 30 תווים. -
LOCATION_ID: Google Cloud המיקום של השרת, למשל
us-west1.כדי להעביר נתונים במהירות הגבוהה ביותר, צריך ליצור את השרת באותו מיקום שבו נמצאת הקטגוריה של Cloud Storage שבה מאוחסנים הנתונים. אם המיקום של הקטגוריה לא נתמך ב-Cloud FTP, בוחרים את המיקום הזמין הקרוב ביותר.
-
PROJECT_TO_ALLOW: מזהה הפרויקט או מספר הפרויקט של הצרכן שמורשה להתחבר לשרת באמצעות Private Service Connect. לדוגמה,
example-allowed-project. צריך לציין לפחות פרויקט אחד.אפשר לאשר עד 500 פרויקטים. אפשר לציין כמה פרויקטים ואת מגבלות החיבורים שלהם ברשימה מופרדת בפסיקים. לדוגמה,
--consumer-accept-list=projectA=20,projectB=15. - CONNECTION_LIMIT: המספר המקסימלי של נקודות קצה מסוג Private Service Connect שאפשר ליצור בפרויקט הצרכן. הערך צריך להיות בין נקודת קצה אחת ל-250 נקודות קצה.
-
(אופציונלי) PROJECT_TO_REJECT: מזהה הפרויקט או מספר הפרויקט של הצרכן שאסור לו להתחבר לשרת. לדוגמה,
example-rejected-project. פרויקטים ברשימה הזו לא יכולים לגשת לשרת, גם אם הם כלולים ברשימת הפרויקטים המורשים.אפשר לדחות עד 64 פרויקטים. כדי לציין כמה פרויקטים, צריך להפריד ביניהם בפסיקים.
אם אתם לא רוצים לדחות פרויקטים באופן מפורש, אל תשתמשו בדגל--consumer-reject-list.
מריצים את הפקודה הבאה:
Linux, macOS או Cloud Shell
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL \ --location=LOCATION_ID \ --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT \ --consumer-reject-list=PROJECT_TO_REJECT
Windows (PowerShell)
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ` --location=LOCATION_ID ` --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ` --consumer-reject-list=PROJECT_TO_REJECT
Windows (cmd.exe)
gcloud alpha storage ftp servers create SERVER_ID --access-type=INTERNAL ^ --location=LOCATION_ID ^ --consumer-accept-list=PROJECT_TO_ALLOW=CONNECTION_LIMIT ^ --consumer-reject-list=PROJECT_TO_REJECT
יצירת השרת נמשכת כ-10 דקות.
REST
כדי ליצור שרת פנימי, משתמשים ב-method servers.create ומספקים הגדרת גישה מסוג internalConfig.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud של השרת.
-
LOCATION_ID: Google Cloud המיקום של השרת, למשל
us-west1.כדי להעביר נתונים במהירות הגבוהה ביותר, צריך ליצור את השרת באותו מיקום שבו נמצאת הקטגוריה של Cloud Storage שבה מאוחסנים הנתונים. אם המיקום של הקטגוריה לא נתמך ב-Cloud FTP, בוחרים את המיקום הזמין הקרוב ביותר.
- SERVER_ID: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. הוא יכול להכיל אותיות קטנות, מספרים ומקפים.
לא יכול להתחיל בתחילית
googאו להכיל את המחרוזתgoogle, כולל שגיאות איות דומות כמוg00gle. האורך המקסימלי הוא 30 תווים. -
PROJECT_TO_ALLOW: מזהה הפרויקט או מספר הפרויקט של הצרכן שמורשה להתחבר לשרת באמצעות Private Service Connect. לדוגמה,
example-allowed-project. צריך לציין לפחות פרויקט אחד.אפשר לאשר עד 500 פרויקטים.
- CONNECTION_LIMIT: המספר המקסימלי של נקודות קצה מסוג Private Service Connect שאפשר ליצור בפרויקט הצרכן. הערך צריך להיות בין נקודת קצה אחת ל-250 נקודות קצה.
-
(אופציונלי) PROJECT_TO_REJECT: מזהה הפרויקט או מספר הפרויקט של הצרכן שאסור לו להתחבר לשרת. לדוגמה,
example-rejected-project. פרויקטים ברשימה הזו לא יכולים לגשת לשרת, גם אם הם כלולים ברשימת הפרויקטים המורשים.אפשר לדחות עד 64 פרויקטים.
אם אתם לא רוצים לדחות פרויקטים באופן מפורש, אל תכללו את האובייקט
consumerRejectList.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers?serverId=SERVER_ID
תוכן בקשת JSON:
{
"accessType": "INTERNAL",
"internalConfig": {
"consumerAcceptList": [
{
"project": "projects/PROJECT_TO_ALLOW",
"connectionLimit": CONNECTION_LIMIT
}
],
"consumerRejectList": [
{
"project": "projects/PROJECT_TO_REJECT"
}
]
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
התגובה מזהה פעולה ממושכת.יצירת השרת נמשכת כ-10 דקות.
ספריות לקוח
כדי ליצור שרת פנימי, מגדירים את סוג הגישה כפנימי ומספקים הגדרת גישה פנימית.
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. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.