בדף הזה מוסבר בקצרה על Cloud SQL Auth Proxy ואיך משתמשים בו כדי ליצור חיבורים מאושרים, מוצפנים ומאובטחים למכונות שלכם.
להוראות מפורטות לשימוש ב-Cloud SQL Auth Proxy,לחצו על הקישור לסביבה שלכם:
- מדריך למתחילים לשימוש ב-Cloud SQL Auth Proxy
- איך מתחברים באמצעות Cloud SQL Auth Proxy
- איך מתחברים באמצעות Cloud SQL Auth Proxy מ-GKE
לא צריך להשתמש ב-Cloud SQL Auth Proxy או להגדיר SSL כדי להתחבר ל-Cloud SQL מסביבת ברירת המחדל ב-App Engine או מהסביבה הגמישה ב-App Engine.
היתרונות של Cloud SQL Auth Proxy
Cloud SQL Auth Proxy הוא מחבר של Cloud SQL שמאפשר גישה מאובטחת למכונות בלי צורך ברשתות מורשות או בהגדרת SSL.
ל-Cloud SQL Auth Proxy ולמחברים אחרים של Cloud SQL יש את היתרונות הבאים:
- חיבורים מאובטחים: שרת ה-Cloud SQL Auth Proxy מצפין באופן אוטומטי את תעבורת הנתונים אל מסד הנתונים וממנו באמצעות TLS 1.3, עם בחירת הצפנה שנקבעת לפי הכללים של Go. אישורי SSL משמשים לאימות זהויות של לקוחות ושרתים, והם לא תלויים בפרוטוקולים של מסדי נתונים. לא תצטרכו לנהל אישורי SSL.
- הרשאת חיבור קלה יותר: ה-Cloud SQL Auth Proxy משתמש בהרשאות IAM כדי לקבוע מי ומה יכולים להתחבר למכונות של Cloud SQL. לכן, Cloud SQL Auth Proxy מטפל באימות מול Cloud SQL, ואין צורך לספק כתובות IP סטטיות.
Cloud SQL Auth Proxy לא מספק נתיב קישוריות חדש, אלא מסתמך על קישוריות IP קיימת. כדי להתחבר למכונה של Cloud SQL באמצעות כתובת IP פרטית, ה-Cloud SQL Auth Proxy צריך להיות במשאב עם גישה לאותה רשת VPC כמו המכונה.
מגבלות
אי אפשר להשתמש ב-Cloud SQL Auth Proxy אם משתמשים בבקרת גישה מבוססת-הקשר ובאימות של מסד נתונים ב-IAM. כשמנסים להתחבר למכונה, האימות של IAM נכשל.
איך Cloud SQL Auth Proxy פועל
כדי להשתמש ב-Cloud SQL Auth Proxy, צריך להריץ לקוח מקומי בסביבה המקומית. האפליקציה מתקשרת עם Cloud SQL Auth Proxy באמצעות פרוטוקול מסד הנתונים הרגיל שבו משתמש מסד הנתונים.
Cloud SQL Auth Proxy משתמש במנהרה מאובטחת כדי לתקשר עם התהליך הנלווה שפועל בשרת. כל חיבור שנוצר באמצעות Cloud SQL Auth Proxy יוצר חיבור אחד למכונה של Cloud SQL.
כשאפליקציה מתחברת ל-Cloud SQL Auth Proxy, היא בודקת אם יש חיבור קיים בינה לבין מכונת היעד של Cloud SQL. אם אין חיבור, הוא קורא לממשקי Cloud SQL Admin API כדי לקבל אישור SSL זמני, ומשתמש בו כדי להתחבר ל-Cloud SQL. התוקף של אישורי SSL זמניים פג תוך כשעה. Cloud SQL Auth Proxy מרענן את האישורים האלה לפני שהתוקף שלהם פג.
אי אפשר להשתמש ב-Cloud SQL Auth Proxy כדי לאסוף חיבורים, אבל אפשר לשלב אותו עם כלים אחרים לאיסוף חיבורים כדי לשפר את היעילות.
הדיאגרמה הבאה מראה איך Cloud SQL Auth Proxy מתחבר ל-Cloud SQL:
כמו שמוצג בתרשים, החיבור משתמש ביציאות הבאות:
- מאפליקציית הלקוח ללקוח המקומי של Cloud SQL Auth Proxy: האפליקציה מתחברת ל-Cloud SQL Auth Proxy במכונת הלקוח באמצעות שקע דומיין של Unix או יציאת TCP מקומית. כברירת מחדל, יציאות ה-TCP הרגילות של מסדי הנתונים הן
3306ל-MySQL,5432ל-PostgreSQL ו-1433לשרת SQL. - מהלקוח של Cloud SQL Auth Proxy למכונה של Cloud SQL: Cloud SQL Auth Proxy יוצר מנהרה מאובטחת לתהליך של שרת ה-proxy במכונה של Cloud SQL, באמצעות יציאת היעד
3307ב-TCP.
הדרישות לשימוש ב-Cloud SQL Auth Proxy
כדי להשתמש ב-Cloud SQL Auth Proxy, אתם צריכים לעמוד בדרישות הבאות:
- צריך להפעיל את Cloud SQL Admin API.
- צריך לספק ל-Cloud SQL Auth Proxy Google Cloud פרטי כניסה לאימות.
- אתם צריכים לספק ל-Cloud SQL Auth Proxy שם משתמש וסיסמה תקינים לחשבון במסד הנתונים.
למכונה צריכה להיות כתובת IPv4 ציבורית, או שהיא צריכה להיות מוגדרת לשימוש בכתובת IP פרטית.
כתובת ה-IP הציבורית לא צריכה להיות נגישה לכתובת חיצונית כלשהי (לא צריך להוסיף אותה ככתובת רשת מורשית).
אם במכונה של Cloud SQL שאליה אתם מתחברים נעשה שימוש ברשות אישורים (CA) משותפת בהגדרה serverCaMode, אתם צריכים להשתמש בצד הלקוח ב-Cloud SQL Auth Proxy בגרסה 2.13.0 ואילך.
אם במכונה של Cloud SQL שאליה אתם מתחברים משתמשים ברשות אישורים בניהול הלקוח להגדרה serverCaMode, אז בצד הלקוח צריך להשתמש בגרסה 2.14.3 או בגרסה חדשה יותר של Cloud SQL Auth Proxy.
כשמכונה משתמשת ב-CA בניהול הלקוח כמצב ה-CA של השרת, אפשר להגדיר את המכונה עם שם DNS בהתאמה אישית. אתם מספקים את שם ה-DNS בהתאמה אישית בשדה "שם חלופי של בעלים (SAN)" בהתאמה אישית של אישור השרת.
אחרי שמגדירים שם DNS בהתאמה אישית למכונה, אפשר להתחבר למכונה ממחברי השפה של Cloud SQL באמצעות שם ה-DNS.
הורדה והתקנה של Cloud SQL Auth Proxy
לפני שמתחילים, צריך לזהות את הארכיטקטורה של המכונה.
אם אתם משתמשים ב-Linux או ב-Mac, אתם יכולים להריץ את הפקודה הבאה כדי למצוא את הכתובת:
uname -a
Linux 64 סיביות
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.amd64
- הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
Linux 32 סיביות
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.linux.386
- אם הפקודה
curlלא נמצאה, מריצים אתsudo apt install curlוחוזרים על פקודת ההורדה. - הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
macOS 64 סיביות
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.darwin.amd64
- הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
Mac M1
- מורידים את Cloud SQL Auth Proxy:
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.darwin.arm64
- הופכים את Cloud SQL Auth Proxy לקובץ הפעלה:
chmod +x cloud-sql-proxy
Windows 64 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x64.exe ובוחרים באפשרות Save Link As כדי להוריד את Cloud SQL Auth Proxy. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
Windows 32 סיביות
לוחצים לחיצה ימנית על https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.26.2/cloud-sql-proxy.x86.exe ובוחרים באפשרות Save Link As כדי להוריד את Cloud SQL Auth Proxy. משנים את שם הקובץ ל-cloud-sql-proxy.exe.
קובץ אימג' של Docker ל-Cloud SQL Auth Proxy
ל-Cloud SQL Auth Proxy יש קובצי אימג' שונים של קונטיינרים, כמו distroless, alpine ו-buster. קובץ האימג' של הקונטיינר שמשמש כברירת מחדל ל-Cloud SQL Auth Proxy משתמש ב-distroless, שלא מכיל מעטפת. אם אתם צריכים מעטפת או כלים קשורים, הורידו קובץ אימג' שמבוסס על alpine או על buster.
מידע נוסף מופיע במאמר קובצי אימג' של קונטיינרים של Cloud SQL Auth Proxy.
כדי להוריד את קובץ האימג' העדכני למחשב המקומי באמצעות Docker, משתמשים בפקודה הבאה:
docker pull gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.26.2
מערכת הפעלה אחרת
במערכות הפעלה אחרות שלא מופיעות כאן, אפשר להדר את Cloud SQL Auth Proxy מהמקור.אפשרויות ההפעלה של Cloud SQL Auth Proxy
כשמפעילים את Cloud SQL Auth Proxy, צריך לספק לו את הפרטים הבאים:
- לאילו מכונות של 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 כדי לראות את הרשימה המלאה של אפשרויות ההפעלה.
אפשר להתקין את Cloud SQL Auth Proxy בכל מקום בסביבה המקומית. המיקום של קובצי ה-binary של Cloud SQL Auth Proxy לא משפיע על המיקום שבו הוא מאזין לנתונים מהאפליקציה.
מידע נוסף על הפעלת Cloud SQL Auth Proxy זמין במאמר הפעלת Cloud SQL Auth Proxy.
שימוש בחשבון שירות לאימות
כדי לאשר את החיבורים למכונה של Cloud SQL, צריך לאמת את Cloud SQL Auth Proxy כזהות ב-Cloud SQL IAM.
היתרון בשימוש בחשבון שירות למטרה הזו הוא שאפשר ליצור קובץ פרטי כניסה ספציפי ל-Cloud SQL Auth Proxy, והוא מקושר באופן מפורש וקבוע ל-Cloud SQL Auth Proxy כל עוד הוא פועל. לכן, השימוש בחשבון שירות הוא השיטה המומלצת למכונות בסביבת ייצור שלא פועלות במכונה של Compute Engine.
אם אתם צריכים להפעיל את Cloud SQL Auth Proxy מכמה מכונות, אתם יכולים לשכפל את קובץ פרטי הכניסה בקובץ אימג' של המערכת.
כדי להשתמש בשיטה הזו, צריך ליצור ולנהל את קובץ פרטי הכניסה. רק משתמשים עם ההרשאה resourcemanager.projects.setIamPolicy (כמו בעלי פרויקטים) יכולים ליצור את חשבון השירות. אם למשתמש ב-Google Cloud אין את ההרשאה הזו, מישהו אחר צריך ליצור בשבילכם את חשבון השירות, או שאתם צריכים להשתמש בשיטה אחרת כדי לאמת את Cloud SQL Auth Proxy.
ההרשאות הנדרשות לחשבונות שירות
כשמשתמשים בחשבון שירות כדי לספק את פרטי הכניסה ל-Cloud SQL Auth Proxy, צריך ליצור אותו עם הרשאות מתאימות. אם אתם משתמשים בתפקידים של ניהול זהויות והרשאות גישה (IAM) ברמת פירוט גבוהה יותר כדי לנהל את ההרשאות של Cloud SQL, אתם צריכים לתת לחשבון השירות תפקיד שכולל את ההרשאה cloudsql.instances.connect. התפקידים המוגדרים מראש ב-Cloud SQL שכוללים את ההרשאה הזו הם:
- לקוח Cloud SQL
- עריכה ב-Cloud SQL
- אדמין ב-Cloud SQL
אם אתם משתמשים בתפקידים מדור קודם ברמת הפרויקט (צפייה, עריכה, בעלים), לחשבון השירות צריך להיות לפחות תפקיד עריכה.
עדכון של Cloud SQL Auth Proxy
Google משיקה מדי פעם גרסאות חדשות של Cloud SQL Auth Proxy. כדי לראות מהי הגרסה הנוכחית, אפשר לבדוק את דף הגרסאות של Cloud SQL Auth Proxy ב-GitHub.
שימוש ב-API
Cloud SQL Auth Proxy שולח בקשות ל-Cloud SQL Admin API. הבקשות האלה נספרות במכסת ה-API של הפרויקט.
השימוש הגבוה ביותר ב-API מתרחש כשמפעילים את Cloud SQL Auth Proxy. בזמן ש-Cloud SQL Auth Proxy פועל, הוא שולח 2 קריאות ל-API בשעה לכל מכונה מחוברת.
פרמטרים ודגלים של Cloud SQL Auth Proxy
כשמפעילים את Cloud SQL Auth Proxy, הוא מקבל כמה דגלים ופרמטרים. האפשרויות האלה קובעות איפה ואיך Cloud SQL Auth Proxy יוצר את השקעים שמשמשים לתקשורת עם Cloud SQL, ואיך הוא מבצע אימות.
כדי לקבל עזרה לגבי האפשרויות של Cloud SQL Auth Proxy, אפשר לעיין במידע הבא:
- אפשרויות לאימות של Cloud SQL Auth Proxy
- דוגמאות להפעלות של Cloud SQL Auth Proxy
- דף Cloud SQL Auth Proxy ב-GitHub
- העזרה של Cloud SQL Auth Proxy, שמוצגת באמצעות
./cloud-sql-proxy --help
שימוש ב-Cloud SQL Auth Proxy בסביבת ייצור
כשמשתמשים ב-Cloud SQL Auth Proxy בסביבת ייצור, יש כמה פעולות שאפשר לבצע כדי לוודא שה-Cloud SQL Auth Proxy מספק את הזמינות הנדרשת לאפליקציה.
מוודאים ש-Cloud SQL Auth Proxy פועל כשירות מתמיד
אם התהליך של Cloud SQL Auth Proxy נעצר, כל החיבורים הקיימים דרכו נסגרים, והאפליקציה לא יכולה ליצור חיבורים נוספים למכונה של Cloud SQL באמצעות Cloud SQL Auth Proxy. כדי למנוע את המצב הזה, חשוב להפעיל את Cloud SQL Auth Proxy כשירות מתמיד, כך שאם הוא ייסגר מסיבה כלשהי, הוא יופעל מחדש באופן אוטומטי. אפשר לעשות את זה באמצעות שירות כמו systemd, upstart או supervisor. במערכת ההפעלה Windows, מריצים את Cloud SQL Auth Proxy בתור Windows Service. באופן כללי, חשוב לוודא שדרישות זמן הפעולה התקינה של Cloud SQL Auth Proxy זהות לאלה של תהליך האפליקציה.
כמה עותקים של Cloud SQL Auth Proxy נדרשים לאפליקציה
אין צורך ליצור תהליך proxy לכל תהליך של אפליקציה. תהליכים רבים של אפליקציות יכולים לשתף תהליך אחד של Cloud SQL Auth Proxy. מריצים תהליך אחד של לקוח Cloud SQL Auth Proxy לכל תחנת עבודה או מכונה וירטואלית.
אם אתם משתמשים בהתאמה אוטומטית לעומס (automatic scaling) של מכונות וירטואליות, ודאו ש-Cloud SQL Auth Proxy נכלל בהגדרות של המכונה הווירטואלית, כדי שבכל פעם שמכונה וירטואלית חדשה מופעלת, יהיה לה תהליך Cloud SQL Auth Proxy משלה.
אתם צריכים לנהל את מספר החיבורים שהאפליקציה דורשת, על ידי הגבלת החיבורים או איחוד שלהם. Cloud SQL Auth Proxy לא מגביל את קצב החיבורים החדשים או את מספר החיבורים הקבועים.
צמצום הפלט של Cloud SQL Auth Proxy
אם אתם צריכים להקטין את הגודל של יומן הרישום של Cloud SQL Auth Proxy, אתם יכולים להגדיר את --quiet כשאתם מפעילים את Cloud SQL Auth Proxy. חשוב לזכור שהפעולה הזו מפחיתה את היעילות של הפלט של Cloud SQL Auth Proxy באבחון בעיות בחיבור.
איך מעבר לגיבוי בעת כשל משפיע על Cloud SQL Auth Proxy
אם אתם מריצים את Cloud SQL Auth Proxy במכונה שמוגדרת לזמינות גבוהה, ובמקרה של יתירות כשל, החיבורים דרך Cloud SQL Auth Proxy מושפעים באותו אופן כמו חיבורים דרך IP: כל החיבורים הקיימים אובדים, והאפליקציה צריכה ליצור חיבורים חדשים. עם זאת, לא נדרשת התערבות ידנית, והאפליקציה יכולה להמשיך להשתמש באותן מחרוזות חיבור שבהן השתמשה קודם.
אם אתם מתחברים למכונה שיש לה נקודת קצה לכתיבה, אתם יכולים להתחבר למכונה באמצעות שם ה-DNS של נקודת הקצה לכתיבה במקום כתובת ה-IP. השימוש בשם של נקודת הקצה לכתיבה מאפשר ל-Cloud SQL Auth Proxy להתחבר למכונה הראשית החדשה במקרה של פעולת מעבר או יתירות כשל של רפליקה. מידע נוסף זמין במאמר חיבור לקוחות של מסדי נתונים למכונות באמצעות Cloud SQL Auth Proxy או מחברי שפה של Cloud SQL.
עדכון קובץ האימג' של Cloud SQL Auth Proxy ב-Docker
קובץ האימג' של Cloud SQL Auth Proxy ב-Docker מבוסס על גרסה ספציפית של Cloud SQL Auth Proxy. כשגרסה חדשה של Cloud SQL Auth Proxy זמינה, צריך למשוך את הגרסה החדשה של קובץ האימג' של Cloud SQL Auth Proxy Docker כדי שהסביבה תהיה מעודכנת. כדי לראות את הגרסה הנוכחית של Cloud SQL Auth Proxy, אפשר להיכנס ל דף הגרסאות של Cloud SQL Auth Proxy ב-GitHub.
איך לאכוף את השימוש ב-Cloud SQL Auth Proxy או במחברי השפה של Cloud SQL
אתם יכולים לאכוף את השימוש ב-Cloud SQL Auth Proxy או במחברי השפה של Cloud SQL בחיבורים של מכונות Cloud SQL באמצעות ConnectorEnforcement. אם אוכפים שימוש במחברים, חיבורים ישירים למסד הנתונים נדחים.
כדי להשתמש באכיפת מחברים, משתמשים בשדה ConnectorEnforcement ב-API של instances.
אם אתם משתמשים במכונה שמופעל בה Private Service Connect, יש מגבלה. אם במכונה מופעלת אכיפת מחבר, אי אפשר ליצור רפליקות לקריאה בלבד של המכונה. באופן דומה, אם למכונה יש רפליקות לקריאה, אי אפשר להפעיל אכיפת מחברים במכונה.
במאמר אכיפת השימוש במחברים של Cloud SQL מוסבר איך לאכוף את השימוש ב-Cloud SQL Auth Proxy או במחברי השפה של Cloud SQL כדי להתחבר למכונה.
מידע על Cloud SQL Proxy Operator
Cloud SQL Proxy Operator הוא אופרטור של Kubernetes בקוד פתוח, שמאפשר לחבר באופן אוטומטי עומסי עבודה באשכול GKE למסדי נתונים של Cloud SQL. ה-Cloud SQL Auth Proxy Operator משתמש במשאב מותאם אישית AuthProxyWorkload שמציין את ההגדרות של Cloud SQL Auth Proxy לעומס עבודה ספציפי. ה-Cloud SQL Auth Proxy Operator קורא את המשאב הזה ומוסיף קונטיינר של Cloud SQL Auth Proxy עם ההגדרות הנדרשות לעומסי העבודה המתאימים.
כשמתקינים את האופרטור באשכול GKE ומגדירים את עומסי העבודה ואת המכונות של Cloud SQL, האופרטור של Cloud SQL Auth Proxy מגדיר באופן אוטומטי את Cloud SQL Auth Proxy ומחבר את עומסי העבודה של GKE למכונות של Cloud SQL.
Cloud SQL Auth Proxy Operator גם בודק את הסטטוס של Cloud SQL Auth Proxy. אם שרת ה-Proxy לא מצליח להתחבר, Cloud SQL Auth Proxy Operator מפיק מידע על תוצאות ניפוי הבאגים ומספק הנחיות לפתרון בעיות נפוצות בהגדרות.
מידע נוסף זמין במאמר התחברות באמצעות Cloud SQL Proxy Operator.