יצירת שרת SFTP פנימי

במסמך הזה מוסבר איך ליצור שרת SFTP פנימי באמצעות Cloud FTP. אפשר לגשת לשרת SFTP פנימי רק בתוך רשת הענן הווירטואלי הפרטי (VPC) באמצעות Private Service Connect. עובדים ובעלי עניין פנימיים שנמצאים ברשת שלכם יכולים להשתמש בשרת כדי להעביר קבצים אל Cloud Storage וממנו בצורה מאובטחת.

מציינים את הפרויקטים שמותר להם להתחבר לשרת. אפשר גם לציין פרויקטים שנדחים מקישור.

מידע נוסף על VPC זמין בסקירה הכללית על VPC.

הוראות ליצירת שרת חיצוני שאפשר לגשת אליו דרך האינטרנט מופיעות במאמר יצירת שרת SFTP חיצוני. אחרי שיוצרים שרת, אי אפשר לשנות את ההגדרה שלו משרת חיצוני לשרת פנימי או להפך.

לפני שמתחילים

המסוף

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. 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.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  6. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. 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.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Cloud FTP API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  10. צריך לאסוף את המידע הבא על המשתמשים בשרת:

    • רשימה של מזהי פרויקטים או מספרי פרויקטים שמורשים לגשת לשרת.
    • (אופציונלי) רשימה של מזהי פרויקטים או מספרי פרויקטים שנדחתה להם הגישה לשרת.

gcloud

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים 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 .

  6. אם משתמשים בפרויקט קיים, מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה. אם משתמשים בפרויקט חדש, לא צריך לוודא כי כבר יש את ההרשאות הנדרשות.

  7. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  8. מפעילים את Cloud FTP API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable ftp.googleapis.com
  9. התקינו את ה-CLI של Google Cloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. יוצרים או בוחרים 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 .

  13. אם משתמשים בפרויקט קיים, מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה. אם משתמשים בפרויקט חדש, לא צריך לוודא כי כבר יש את ההרשאות הנדרשות.

  14. מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  15. מפעילים את Cloud FTP API:

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable ftp.googleapis.com
  16. צריך לאסוף את המידע הבא על המשתמשים בשרת:

    • רשימה של מזהי פרויקטים או מספרי פרויקטים שמורשים לגשת לשרת.
    • (אופציונלי) רשימה של מזהי פרויקטים או מספרי פרויקטים שנדחתה להם הגישה לשרת.

התפקידים הנדרשים

כדי לקבל את ההרשאה שנדרשת ליצירת שרת SFTP, צריך לבקש מהאדמין להקצות לכם את התפקיד אדמין של Cloud FTP (roles/ftp.admin) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

התפקיד המוגדר מראש הזה כולל את ההרשאה ftp.servers.create, שנדרשת כדי ליצור שרת SFTP.

יכול להיות שתוכלו לקבל את ההרשאה הזו גם בתפקידים בהתאמה אישית או בתפקידים אחרים שמוגדרים מראש.

יצירת שרת פנימי

המסוף

  1. נכנסים לדף Cloud FTP במסוף Google Cloud .

    מעבר אל Cloud FTP

  2. לוחצים על Create server.

  3. בכרטיסייה Server configuration (הגדרת השרת), מזינים פרטים בסיסיים של השרת:

    1. בשדה מזהה השרת, מזינים מזהה ייחודי לשרת.

    2. ברשימה Region, בוחרים את Google Cloud המיקום של השרת.

      כדי להשיג את מהירויות העברת הנתונים הגבוהות ביותר, צריך ליצור את השרת באותו מיקום שבו נמצאת קטגוריה של Cloud Storage שבה הנתונים מאוחסנים. אם המיקום של הקטגוריה לא נתמך על ידי Cloud FTP, בוחרים את המיקום הזמין הקרוב ביותר.

    3. (אופציונלי) מזינים שם לתצוגה של השרת.

    4. לוחצים על Continue.

  4. בכרטיסייה Networking and security (רשת ואבטחה), מגדירים את הקישוריות של השרת:

    1. בוחרים באפשרות פנימי (VPC בלבד).

    2. בקטע Accepted projects, מציינים את פרויקטים של הצרכנים שמורשים להתחבר לשרת באמצעות Private Service Connect. מבצעים את הפעולות הבאות:

      1. בשדה פרויקט, מזינים את מזהה הפרויקט או את מספר הפרויקט שמותר להתחבר אליו. לדוגמה, example-allowed-project.

      2. בשדה מגבלת חיבורים, מזינים את המספר המקסימלי של נקודות קצה של Private Service Connect שאפשר ליצור בפרויקט של הצרכן. הערך צריך להיות בין 1 ל-250 נקודות קצה.

      3. כדי להוסיף עוד פרויקטים, לוחצים על הוספת פרויקט שאושר וחוזרים על השלבים הקודמים.

    3. (אופציונלי) כדי למנוע מפרויקטים להתחבר לשרת, בקטע פרויקטים שנדחו לוחצים על הוספת פרויקט שנדחה. מזינים את מזהה הפרויקט או את המספר של פרויקט צרכן שאסור לו להתחבר לשרת.

      הפרויקטים ברשימה הזו לא יוכלו לגשת לשרת, גם אם הם כלולים ברשימת הפרויקטים המורשים.

  5. לוחצים על יצירה.

    יצירת השרת נמשכת כ-10 דקות.

gcloud

כדי ליצור שרת פנימי, מריצים את הפקודה gcloud alpha storage ftp servers create ומספקים את הדגל --access-type=INTERNAL.

לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:

  • SERVER_ID: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. יכול להכיל אותיות קטנות, מספרים ומקפים. האורך המרבי הוא 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 שאפשר ליצור בפרויקט הצרכן. הערך צריך להיות בין 1 ל-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: מזהה ייחודי של השרת. השם חייב להתחיל באות קטנה ולהסתיים באות קטנה או במספר. יכול להכיל אותיות קטנות, מספרים ומקפים. האורך המרבי הוא 30 תווים.
  • PROJECT_TO_ALLOW: מזהה הפרויקט או מספר הפרויקט של פרויקט צרכן שמורשה להתחבר לשרת באמצעות Private Service Connect. לדוגמה, example-allowed-project. צריך לציין לפחות פרויקט אחד.

    אפשר לאפשר גישה לעד 500 פרויקטים.

  • CONNECTION_LIMIT: מספר נקודות הקצה המקסימלי של Private Service Connect שאפשר ליצור בפרויקט הצרכן. הערך צריך להיות בין 1 ל-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 דקות.

המאמרים הבאים