בדף הזה מוסבר על שרת proxy ל-Cloud SQL Auth ואיך להשתמש בו כדי ליצור חיבורים מאובטחים, מוצפנים ומורשים למכונות שלכם.
הוראות מפורטות לשימוש בשרת proxy ל-Cloud SQL Auth זמינות בקישור שמתאים לסביבה שלכם:
- מדריך למתחילים לשימוש בשרת proxy ל-Cloud SQL Auth
- איך מתחברים באמצעות שרת proxy ל-Cloud SQL Auth
- איך מתחברים באמצעות שרת proxy ל-Cloud SQL Auth מ-GKE
אין צורך להשתמש בשרת 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 סטטיות.
שרת ה-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 לא מספק איגום חיבורים, אבל אפשר לשלב אותו עם איגום חיבורים אחר כדי לשפר את היעילות.
בתרשים הבא מוצג אופן החיבור של שרת ה-proxy ל-Cloud SQL Auth אל Cloud SQL:
דרישות לשימוש בשרת proxy ל-Cloud SQL Auth
כדי להשתמש בשרת proxy ל-Cloud SQL Auth, אתם צריכים לעמוד בדרישות הבאות:
- צריך להפעיל את Cloud SQL Admin API.
- צריך לספק לשרת ה-proxy ל-Cloud SQL Auth Google Cloud פרטי כניסה לאימות.
- אתם צריכים לספק לשרת ה-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 המותאם אישית בשדה של שם חלופי של בעלים (SAN) המותאם אישית באישור השרת.
אחרי שמגדירים שם DNS בהתאמה אישית למופע, אפשר להתחבר למופע מ-Cloud SQL Language Connectors באמצעות שם ה-DNS.
הורדה והתקנה של שרת proxy ל-Cloud SQL Auth
לפני שמתחילים, צריך לקבוע את הארכיטקטורה של המכונה.
אם מריצים את הפקודה ב-Linux או ב-Mac, אפשר למצוא את המידע הזה באמצעות הפקודה הבאה:
uname -a
Linux 64 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.amd64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Linux 32 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.linux.386
- אם הפקודה
curlלא נמצאה, מריצים את הפקודהsudo apt install curlוחוזרים על פקודת ההורדה. - הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
macOS 64 סיביות
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.darwin.amd64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Mac M1
- מורידים את שרת ה-proxy ל-Cloud SQL Auth:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.1/cloud-sql-proxy.darwin.arm64
- הופכים את שרת ה-proxy ל-Cloud SQL Auth לקובץ הפעלה:
chmod +x cloud-sql-proxy
Windows 64 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.22.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.22.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.22.1
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את Cloud SQL Auth Proxy מהמקור.אפשרויות הפעלה של שרת 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 בכל מקום בסביבה המקומית. המיקום של קובצי ההפעלה של 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 (כמו בעלי פרויקטים) יכולים ליצור את חשבון השירות. אם למשתמשGoogle Cloud אין את ההרשאה הזו, תצטרכו לבקש ממישהו אחר ליצור בשבילכם את חשבון השירות, או להשתמש בשיטה אחרת לאימות שרת ה-proxy ל-Cloud SQL Auth.
הרשאות נדרשות לחשבונות שירות
כשמשתמשים בחשבון שירות כדי לספק את פרטי הכניסה ל-Cloud SQL Auth Proxy, צריך ליצור אותו עם הרשאות מספיקות. אם אתם משתמשים בתפקידים מפורטים יותר של ניהול זהויות והרשאות גישה (IAM) כדי לנהל את ההרשאות שלכם ב-Cloud SQL, אתם צריכים להקצות לחשבון השירות תפקיד שכולל את ההרשאה cloudsql.instances.connect. תפקידי Cloud SQL המוגדרים מראש שכוללים את ההרשאה הזו הם:
- לקוח Cloud SQL
- עורך Cloud SQL
- 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
- דף GitHub של שרת proxy ל-Cloud SQL Auth
- העזרה של Cloud SQL Auth Proxy, שמוצגת עם
./cloud-sql-proxy --help
שימוש בשרת 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 באבחון בעיות בחיבור.
איך מעבר לגיבוי (failover) משפיע על שרת proxy ל-Cloud SQL Auth
אם אתם מריצים את שרת ה-proxy ל-Cloud SQL Auth במכונה שהוגדרה לזמינות גבוהה, ומתרחש מעבר לגיבוי (failover), החיבורים דרך שרת ה-proxy ל-Cloud SQL Auth מושפעים באותו אופן כמו החיבורים דרך כתובת IP: כל החיבורים הקיימים אובדים, והאפליקציה צריכה ליצור חיבורים חדשים. עם זאת, לא נדרשת התערבות ידנית. האפליקציה יכולה להמשיך להשתמש באותם מחרוזות חיבור שהיו לה קודם.
אם אתם מתחברים למופע שיש לו נקודת קצה לכתיבה, אתם יכולים להתחבר למופע באמצעות שם ה-DNS של נקודת הקצה לכתיבה במקום כתובת ה-IP. השימוש בשם נקודת הקצה של הכתיבה מאפשר ל-Cloud SQL Auth Proxy להתחבר למכונה הראשית החדשה במקרה של מעבר אוטומטי או פעולת יתירות כשל של רפליקה. מידע נוסף זמין במאמר חיבור לקוחות של מסד נתונים למופעים באמצעות שרת 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.