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

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

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

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

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

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

gcloud

  1. התקינו את ה-CLI של Google Cloud.

  2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

    איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 דקות.

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