מידע על שרת proxy ל-Cloud SQL Auth

בדף הזה מוסבר על שרת proxy ל-Cloud SQL Auth ואיך להשתמש בו כדי ליצור חיבורים מאובטחים, מוצפנים ומורשים למכונות שלכם.

הוראות מפורטות לשימוש בשרת proxy ל-Cloud SQL Auth זמינות בקישור שמתאים לסביבה שלכם:

אין צורך להשתמש בשרת proxy ל-Cloud SQL Auth או להגדיר SSL כדי להתחבר ל-Cloud SQL מסביבת App Engine רגילה או מסביבת App Engine גמישה.

היתרונות של שרת proxy ל-Cloud SQL Auth

שרת ה-proxy ל-Cloud SQL Auth הוא מחבר ל-Cloud SQL שמספק גישה מאובטחת למכונות שלכם בלי שתצטרכו להשתמש ברשתות מורשות או להגדיר SSL.

לשרת proxy ל-Cloud SQL Auth ולמחברים אחרים של Cloud SQL יש את היתרונות הבאים:

  • חיבורים מאובטחים: שרת ה-proxy ל-Cloud SQL Auth מצפין באופן אוטומטי את התעבורה אל מסד הנתונים וממנו באמצעות TLS 1.3, והצפנה נבחרת לפי הכללים של Go. אישורי SSL משמשים לאימות הזהויות של הלקוח והשרת, והם לא תלויים בפרוטוקולים של מסד הנתונים. לכן לא צריך לנהל אישורי SSL.
  • הרשאת חיבור קלה יותר: שרת ה-proxy ל-Cloud SQL Auth משתמש בהרשאות IAM כדי לקבוע למי תהיה גישה למכונות Cloud SQL. לכן, שרת proxy ל-Cloud SQL Auth מטפל באימות עם Cloud SQL, וכך אין צורך לספק כתובות IP סטטיות.
  • אימות מסד נתונים של IAM. אופציונלית, שרת ה-proxy ל-Cloud SQL Auth תומך ברענון אוטומטי של אסימוני גישה מסוג OAuth 2.0. מידע על הפונקציונליות הזו זמין במאמר אימות מסד נתונים ב-IAM ב-Cloud SQL.

שרת ה-proxy ל-Cloud SQL Auth לא מספק נתיב קישוריות חדש, אלא מסתמך על קישוריות IP קיימת. כדי להתחבר למכונת Cloud SQL באמצעות כתובת IP פרטית, שרת ה-proxy ל-Cloud SQL Auth צריך להיות במשאב עם גישה לאותה רשת VPC כמו המכונה.

מגבלות

אי אפשר להשתמש בשרת proxy ל-Cloud SQL Auth אם משתמשים בבקרת גישה מבוססת-הקשר ובאימות מסד נתונים של IAM. כשמנסים להתחבר למופע, האימות של IAM נכשל.

איך שרת proxy ל-Cloud SQL Auth עובד

שרת ה-proxy ל-Cloud SQL Auth פועל באמצעות לקוח מקומי שפועל בסביבה המקומית. האפליקציה מתקשרת עם שרת ה-proxy ל-Cloud SQL Auth באמצעות פרוטוקול מסד הנתונים הרגיל שבו משתמש מסד הנתונים.

שרת ה-proxy ל-Cloud SQL Auth משתמש במנהרה מאובטחת כדי לתקשר עם התהליך הנלווה שלו שפועל בשרת. כל חיבור שנוצר דרך שרת ה-proxy ל-Cloud SQL Auth יוצר חיבור אחד למכונת Cloud SQL.

כשאפליקציה מתחברת לשרת proxy ל-Cloud SQL Auth, היא בודקת אם קיים חיבור בינה לבין מכונת Cloud SQL היעד. אם החיבור לא קיים, הוא קורא ל-Cloud SQL Admin APIs כדי לקבל אישור SSL זמני, ומשתמש בו כדי להתחבר ל-Cloud SQL. התוקף של אישורי SSL זמניים פג בערך אחרי שעה. שרת proxy ל-Cloud SQL Auth מרענן את האישורים האלה לפני שהתוקף שלהם פג.

שרת ה-proxy ל-Cloud SQL Auth לא מספק מאגר חיבורים, אבל אפשר לשלב אותו עם מאגרי חיבורים אחרים כדי לשפר את היעילות.

הדיאגרמה הבאה מציגה כיצד ה-Cloud SQL Auth Proxy מתחבר ל-Cloud SQL:

דיאגרמה של שרת proxy ל-Cloud SQL Auth שמתחבר מתוכנת לקוח למכונת SQL

דרישות לשימוש בשרת proxy ל-Cloud SQL Auth

כדי להשתמש בשרת proxy ל-Cloud SQL Auth, אתם צריכים לעמוד בדרישות הבאות:

  • צריך להפעיל את Cloud SQL Admin API.
  • צריך לספק לשרת ה-proxy ל-Cloud SQL Auth Cloud de Confiance פרטי אימות.
  • אתם צריכים לספק לשרת ה-proxy ל-Cloud SQL Auth שם משתמש וסיסמה תקפים של חשבון משתמש במסד הנתונים.
  • למופע צריכה להיות כתובת IPv4 ציבורית, או שהוא צריך להיות מוגדר לשימוש בכתובת IP פרטית.

    לא נדרשת גישה לכתובת ה-IP הציבורית מכתובת חיצונית כלשהי (אין צורך להוסיף אותה ככתובת רשת מורשית).

אם מכונת Cloud SQL שאליה אתם מתחברים משתמשת ברשות אישורים (CA) משותפת להגדרה serverCaMode, בצד הלקוח אתם צריכים להשתמש בשרת proxy ל-Cloud SQL Auth בגרסה 2.13.0 ואילך.

אם במכונת Cloud SQL שאליה אתם מתחברים מוגדר serverCaMode באמצעות CA בניהול הלקוח, אתם צריכים להשתמש בשרת proxy ל-Cloud SQL Auth מגרסה 2.14.3 ואילך בצד הלקוח.

כשמופע משתמש ב-CA בניהול הלקוח כמצב CA של השרת, אפשר להגדיר את המופע עם שם DNS מותאם אישית. אתם מציינים את שם ה-DNS המותאם אישית בשדה של שם חלופי של בעלים (subject) (SAN) המותאם אישית באישור השרת.

אחרי שמגדירים שם DNS בהתאמה אישית למופע, אפשר להתחבר למופע מ-Cloud SQL Language Connectors באמצעות שם ה-DNS.

הורדה והתקנה של שרת proxy ל-Cloud SQL Auth

‏Linux‏ 64 סיביות

  1. מורידים את שרת ה-proxy ל-Cloud SQL Auth:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.amd64
  2. הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
    chmod +x cloud-sql-proxy

‏Linux‏ 32 סיביות

  1. מורידים את שרת ה-proxy ל-Cloud SQL Auth:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.linux.386
  2. אם הפקודה curl לא נמצאה, מריצים את הפקודה sudo apt install curl וחוזרים על פקודת ההורדה.
  3. הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
    chmod +x cloud-sql-proxy

macOS‏ 64 סיביות

  1. מורידים את שרת ה-proxy ל-Cloud SQL Auth:
    curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.amd64
  2. הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
    chmod +x cloud-sql-proxy

Mac M1

  1. מורידים את שרת ה-proxy ל-Cloud SQL Auth:
      curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.darwin.arm64
      
  2. הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
      chmod +x cloud-sql-proxy
      

‏Windows‏ 64 סיביות

לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x64.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.

‏Windows‏ 32 סיביות

לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.21.1/cloud-sql-proxy.x86.exe ובוחרים באפשרות שמירת קישור בשם כדי להוריד את שרת ה-proxy ל-Cloud SQL Auth. משנים את שם הקובץ ל-cloud-sql-proxy.exe.

קובץ אימג' של Docker לשרת proxy ל-Cloud SQL Auth

לשרת ה-proxy ל-Cloud SQL Auth יש תמונות קונטיינר שונות, כמו distroless, alpine ו-buster. קובץ האימג' של קונטיינר ברירת המחדל של שרת proxy ל-Cloud SQL Auth משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, אתם יכולים להוריד תמונה שמבוססת על alpine או על buster. מידע נוסף זמין במאמר תמונות קונטיינר של Cloud SQL Auth Proxy.

אפשר לשלוף את התמונה העדכנית ביותר למחשב המקומי באמצעות Docker, באמצעות הפקודה הבאה:

docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.21.1

מערכת הפעלה אחרת

במערכות הפעלה אחרות שלא נכללות כאן, אפשר להדר את שרת ה-proxy ל-Cloud SQL Auth ממקור.

אפשרויות הפעלה של שרת proxy ל-Cloud SQL Auth

כשמפעילים את שרת ה-Proxy ל-Cloud SQL Auth, צריך לספק לו את הפרטים הבאים:

  • אילו מכונות של Cloud SQL צריך לחבר
  • המיקום שבו המערכת תקשיב לנתונים שמגיעים מהאפליקציה כדי לשלוח אותם ל-Cloud SQL
  • איפה המערכת תמצא את פרטי הכניסה שבהם היא תשתמש כדי לאמת את האפליקציה שלכם ב-Cloud SQL
  • אם נדרש, סוג כתובת ה-IP שבה צריך להשתמש.

אפשרויות ההפעלה של Cloud SQL Auth Proxy שאתם מספקים קובעות אם הוא יאזין ליציאת TCP או לשקע Unix. אם הוא מאזין לשקע Unix, הוא יוצר את השקע במיקום שתבחרו, בדרך כלל בספרייה ‎ /cloudsql/ ‎. ב-TCP, שרת ה-proxy ל-Cloud SQL Auth מאזין ל-localhost כברירת מחדל.

מריצים את קובץ ההפעלה cloud-sql-proxy עם הארגומנט --help כדי לראות את הרשימה המלאה של אפשרויות ההפעלה.

אפשר להתקין את שרת ה-proxy ל-Cloud SQL Auth בכל מקום בסביבה המקומית. המיקום של קובצי ה-binary של Cloud SQL Auth Proxy לא משפיע על המיקום שבו הוא מאזין לנתונים מהאפליקציה שלכם.

מידע נוסף על הפעלת שרת proxy ל-Cloud SQL Auth זמין במאמר הפעלת שרת proxy ל-Cloud SQL Auth.

שימוש בחשבון שירות לצורך אימות

כדי לתת הרשאה לחיבורים שלכם למכונת Cloud SQL, צריך לבצע אימות בשרת ה-proxy ל-Cloud SQL Auth בתור זהות IAM של Cloud SQL.

היתרון בשימוש בחשבון שירות למטרה הזו הוא שאפשר ליצור קובץ פרטי כניסה במיוחד בשביל שרת ה-proxy ל-Cloud SQL Auth, והוא מקושר אליו באופן מפורש וקבוע כל עוד הוא פועל. לכן, השימוש בחשבון שירות הוא השיטה המומלצת למכונות בייצור שלא פועלות במכונה של Compute Engine.

אפשר לשכפל את קובץ פרטי הכניסה בקובץ אימג' של המערכת אם צריך להפעיל את Cloud SQL Auth Proxy מכמה מכונות.

כדי להשתמש בשיטה הזו, צריך ליצור ולנהל את קובץ פרטי הכניסה. רק משתמשים עם ההרשאה resourcemanager.projects.setIamPolicy (כמו בעלי פרויקטים) יכולים ליצור את חשבון השירות. אם למשתמשCloud de Confiance אין את ההרשאה הזו, תצטרכו לבקש ממישהו אחר ליצור בשבילכם את חשבון השירות, או להשתמש בשיטה אחרת לאימות שרת ה-proxy ל-Cloud SQL Auth.

איך יוצרים חשבון שירות

הרשאות נדרשות לחשבונות שירות

כשמשתמשים בחשבון שירות כדי לספק את פרטי הכניסה ל-Cloud SQL Auth Proxy, צריך ליצור אותו עם הרשאות מספיקות. אם אתם משתמשים בתפקידים מפורטים יותר של ניהול זהויות והרשאות גישה (IAM) כדי לנהל את ההרשאות שלכם ב-Cloud SQL, אתם צריכים להקצות לחשבון השירות תפקיד שכולל את ההרשאה cloudsql.instances.connect. תפקידי Cloud SQL המוגדרים מראש שכוללים את ההרשאה הזו הם:

  • Cloud SQL Client
  • Cloud SQL Editor
  • Cloud SQL Admin

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

שמירה על עדכניות של שרת ה-Proxy ל-Cloud SQL Auth

מדי פעם Google משיקה גרסאות חדשות של שרת ה-proxy ל-Cloud SQL Auth. כדי לראות מה הגרסה הנוכחית, אפשר לעיין בדף הגרסאות של Cloud SQL Auth Proxy ב-GitHub.

שימוש ב-API

שרת proxy ל-Cloud SQL Auth שולח בקשות ל-Cloud SQL Admin API. הבקשות האלה נספרות במכסת ה-API של הפרויקט.

השימוש הכי גבוה ב-API מתרחש כשמפעילים את שרת ה-proxy ל-Cloud SQL Auth. בזמן ששרת ה-proxy ל-Cloud SQL Auth פועל, הוא שולח 2 קריאות ל-API בשעה לכל מכונה מחוברת.

פרמטרים ודגלים של שרת proxy ל-Cloud SQL Auth

כשמפעילים את Cloud SQL Auth Proxy, אפשר להשתמש בכמה דגלים ופרמטרים. האפשרויות האלה קובעות איפה ואיך שרת ה-Proxy ל-Cloud SQL Auth יוצר את השקעים שבהם הוא משתמש לתקשורת עם Cloud SQL, ואיך הוא מבצע אימות.

למידע נוסף על האפשרויות של שרת proxy ל-Cloud SQL Auth, אפשר לעיין במקורות המידע הבאים:

שימוש בשרת proxy ל-Cloud SQL Auth בסביבת ייצור

כשמשתמשים בשרת proxy ל-Cloud SQL Auth בסביבת ייצור, יש כמה פעולות שאפשר לבצע כדי לוודא שהשרת proxy ל-Cloud SQL Auth מספק את הזמינות הנדרשת לאפליקציה.

מוודאים ששרת ה-Proxy ל-Cloud SQL Auth פועל כשירות מתמשך

אם התהליך של שרת ה-proxy ל-Cloud SQL Auth נעצר, כל החיבורים הקיימים דרכו מנותקים, והאפליקציה לא יכולה ליצור יותר חיבורים למופע Cloud SQL באמצעות שרת ה-proxy ל-Cloud SQL Auth. כדי למנוע את התרחיש הזה, חשוב להריץ את שרת ה-proxy ל-Cloud SQL Auth כשירות מתמשך, כך שאם שרת ה-proxy ל-Cloud SQL Auth ייצא מכל סיבה שהיא, הוא יופעל מחדש באופן אוטומטי. אפשר לעשות את זה באמצעות שירות כמו systemd,‏ upstart או supervisor. במערכת ההפעלה Windows, מריצים את שרת ה-proxy ל-Cloud SQL Auth כשירות Windows. באופן כללי, חשוב לוודא ששרת ה-proxy ל-Cloud SQL Auth עומד בדרישות הזמינות של תהליך האפליקציה.

כמה עותקים של שרת proxy ל-Cloud SQL Auth האפליקציה שלכם צריכה

אין צורך ליצור תהליך proxy לכל תהליך אפליקציה. תהליכי אפליקציה רבים יכולים לשתף תהליך יחיד של Cloud SQL Auth Proxy. מריצים תהליך אחד של לקוח Cloud SQL Auth Proxy לכל תחנת עבודה או מכונה וירטואלית.

אם אתם משתמשים בהתאמת קנה מידה אוטומטית למכונות וירטואליות, ודאו ששרת ה-proxy ל-Cloud SQL Auth כלול בהגדרת המכונה הווירטואלית, כך שבכל פעם שמכונה וירטואלית חדשה מופעלת, יש לה תהליך משלה של שרת ה-proxy ל-Cloud SQL Auth.

אתם קובעים כמה חיבורים האפליקציה שלכם צריכה, למשל על ידי הגבלת החיבורים או איגום שלהם. שרת ה-proxy ל-Cloud SQL Auth לא מגביל את שיעורי החיבורים החדשים או את מספר החיבורים הקבועים.

צמצום הפלט של שרת proxy ל-Cloud SQL Auth

אם אתם צריכים להקטין את הגודל של יומן שרת ה-proxy ל-Cloud SQL Auth, אתם יכולים לעשות זאת על ידי הגדרת --quiet כשאתם מפעילים את שרת ה-proxy ל-Cloud SQL Auth. עם זאת, חשוב לזכור שפעולה כזו מפחיתה את היעילות של הפלט של שרת ה-Proxy ל-Cloud SQL Auth באבחון בעיות בחיבור.

איך יתירות כשל משפיעה על שרת proxy ל-Cloud SQL Auth

אם אתם מריצים את שרת ה-proxy ל-Cloud SQL Auth על מכונה שהוגדרה לזמינות גבוהה, ומתרחש יתירות כשל, החיבורים דרך שרת ה-proxy ל-Cloud SQL Auth מושפעים באותו אופן כמו החיבורים דרך כתובת IP: כל החיבורים הקיימים אובדים, והאפליקציה צריכה ליצור חיבורים חדשים. עם זאת, לא נדרשת התערבות ידנית. האפליקציה יכולה להמשיך להשתמש באותם מחרוזות חיבור שהיו לה קודם.

אם אתם מתחברים למופע שיש לו נקודת קצה לכתיבה, אתם יכולים להתחבר למופע באמצעות שם ה-DNS של נקודת הקצה לכתיבה במקום כתובת ה-IP. שימוש בשם נקודת הקצה של פעולת הכתיבה מאפשר לשרת ה-proxy ל-Cloud SQL Auth להתחבר למכונה הראשית החדשה במקרה של מעבר אוטומטי או פעולת מעבר לגיבוי בעקבות כשל. מידע נוסף זמין במאמר בנושא חיבור לקוחות של מסד נתונים למופעים באמצעות שרת proxy ל-Cloud SQL Auth או מחברי שפה של Cloud SQL

שמירה על עדכניות של קובץ אימג' של Docker של שרת proxy ל-Cloud SQL Auth

קובץ האימג' של Docker של שרת proxy ל-Cloud SQL Auth מבוסס על גרסה ספציפית של שרת proxy ל-Cloud SQL Auth. כשגרסה חדשה של שרת ה-proxy ל-Cloud SQL Auth זמינה, צריך למשוך את הגרסה החדשה של קובץ אימג' של Docker של שרת ה-proxy ל-Cloud SQL Auth כדי לשמור על הסביבה מעודכנת. כדי לראות את הגרסה הנוכחית של שרת ה-proxy ל-Cloud SQL Auth, אפשר לעיין ב דף הגרסאות של שרת ה-proxy ל-Cloud SQL Auth ב-GitHub.

איך אוכפים את השימוש בשרת proxy ל-Cloud SQL Auth

אפשר לאכוף את השימוש בשרת proxy ל-Cloud SQL Auth בחיבורים למכונות Cloud SQL באמצעות ConnectorEnforcement. עם אכיפת המחבר, חיבורים ישירים למסד נתונים נדחים.

כדי להשתמש באכיפת מחברים, משתמשים בשדה ConnectorEnforcement ב-API ‏instances.

אם אתם משתמשים במכונה עם Private Service Connect, יש מגבלה. אם האכיפה של המחבר מופעלת במופע, אי אפשר ליצור רפליקות לקריאה עבור המופע. באופן דומה, אם למופע יש עותקים לקריאה, אי אפשר להפעיל את האכיפה של המחבר במופע.

למידע נוסף על אכיפת שימוש רק בשרת proxy ל-Cloud SQL Auth או במחברי שפה של Cloud SQL כדי להתחבר למכונה, אפשר לעיין במאמר בנושא אכיפת השימוש בשרת proxy ל-Cloud SQL Auth.

מידע על Cloud SQL Proxy Operator

Cloud SQL Proxy Operator הוא אופרטור Kubernetes בקוד פתוח שמבצע אוטומציה של חיבור עומסי עבודה באשכול GKE למסדי נתונים של Cloud SQL. האופרטור של שרת ה-proxy ל-Cloud SQL Auth משתמש במשאב מותאם אישית AuthProxyWorkload שמציין את ההגדרה של שרת ה-proxy ל-Cloud SQL Auth עבור עומס עבודה ספציפי. האופרטור של שרת ה-proxy ל-Cloud SQL Auth קורא את המשאב הזה ומוסיף מאגר תגים של שרת proxy ל-Cloud SQL Auth עם ההגדרה הנדרשת לעומסי העבודה המתאימים.

כשמתקינים את האופרטור באשכול GKE ומגדירים את עומסי העבודה ואת המכונות של Cloud SQL, האופרטור של שרת ה-proxy ל-Cloud SQL Auth מגדיר אוטומטית את שרת ה-proxy ל-Cloud SQL Auth ומחבר את עומסי העבודה של GKE למכונות של Cloud SQL.

האופרטור של שרת ה-proxy ל-Cloud SQL Auth בודק גם את הסטטוס של שרת ה-proxy ל-Cloud SQL Auth. אם שרת ה-proxy ל-Cloud SQL Auth לא מצליח להתחבר, האופרטור של שרת ה-proxy ל-Cloud SQL Auth מציג מידע על תוצאות ניפוי הבאגים, ומספק הנחיות לפתרון בעיות נפוצות בהגדרות.

מידע נוסף זמין במאמר חיבור באמצעות Cloud SQL Proxy Operator.

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