כדי ליצור חיבורים מוצפנים ומורשים למכונות AlloyDB, אתם יכולים להשתמש ב-AlloyDB Auth Proxy. מידע נוסף זמין במאמר מידע על שרת proxy לאימות של AlloyDB.
כדי להשתמש ב-AlloyDB Auth Proxy, צריך לבצע כמה שלבי הגדרה חד-פעמיים, ואז להפעיל את לקוח ה-Auth Proxy ולהשתמש בו כדי להתחבר למסד נתונים.
לפני שמתחילים
המארח של הלקוח צריך לעמוד בדרישות הבאות:
ללקוח צריכה להיות גישה לרשת הענן הווירטואלי הפרטי (VPC) שבה נמצאים המופעים שרוצים להתחבר אליהם. למארחי לקוחות (כמו מכונות וירטואליות של Compute Engine) ברשת הענן הווירטואלי הפרטי (VPC) הזו יש באופן מובנה את הנראות הזו של הרשת.
למארחי לקוחות ברשתות חיצוניות (רשתות מקומיות או רשתות VPC שונות) יש גישה לרשת הזו אם רשת ה-VPC של מופע AlloyDB מחוברת לרשת החיצונית באמצעות מנהרת Cloud VPN או באמצעות קובץ מצורף של VLAN ל-Dedicated Interconnect או ל-Partner Interconnect.
אם למארח הלקוח יש מדיניות חומת אש לחיבורים יוצאים, היא צריכה לאפשר חיבורים יוצאים ליציאה
5433בכתובות ה-IP של מופעי AlloyDB, ולאפשר חיבורים יוצאים ליציאה443(יציאת HTTPS הרגילה) לכל כתובות ה-IP.אם אתם משתמשים במכונה של Compute Engine כמארח לקוח, צריך להגדיר לה את היקף הגישה
https://www.googleapis.com/auth/cloud-platformכדי שתוכל להשתמש ב-AlloyDB API. אם צריך, משנים את היקף הגישה כדי לכלול את היקף הגישה הזה.
הורדת לקוח של שרת proxy לאימות
המכונה שאליה מורידים את לקוח Auth Proxy תלויה בשאלה אם רוצים להתחבר למכונות AlloyDB מתוך רשת ה-VPC שלה או מחוצה לה.
אם רוצים להתחבר לאשכול באמצעות גישה לשירותים פרטיים, אפשר להוריד את לקוח ה-Auth Proxy למכונה וירטואלית (VM) של Compute Engine שפועלת ברשת ה-VPC שיש לה גישה לשירותים פרטיים באשכול.
אם אתם מתכוונים להתחבר לאשכול מחוץ ל-VPC, המכונה שבה תתקינו את התוסף תלויה באסטרטגיית החיבור החיצונית שבה אתם משתמשים. לדוגמה, אתם יכולים להתקין את לקוח ה-Auth Proxy במחשב macOS או Windows שנמצא באופן מקומי באפליקציה שלכם, ואז להשתמש בשרת SOCKS שפועל ברשת ה-VPC של AlloyDB בתור מתווך חיבור. מידע נוסף זמין במאמר התחברות לאשכול מחוץ ל-VPC שלו.
Linux
64 ביט (AMD)
מורידים את לקוח Auth Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxyהופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
32 ביט (AMD)
מורידים את לקוח Auth Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.linux.386 -O alloydb-auth-proxyהופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
64 ביט (ARM)
מורידים את לקוח Auth Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.linux.arm64 -O alloydb-auth-proxyהופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
32 ביט (ARM)
מורידים את לקוח Auth Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.linux.arm -O alloydb-auth-proxyהופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
macOS
ARM64
מורידים את לקוח Auth Proxy:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.darwin.arm64הופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
AMD64
מורידים את לקוח Auth Proxy:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy.darwin.amd64הופכים את קובץ ההפעלה של לקוח Auth Proxy לניתן להרצה:
chmod +x alloydb-auth-proxy
Windows
64 ביט
לוחצים לחיצה ימנית על https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy-x64.exe
ובוחרים באפשרות שמירת הקישור בשם כדי להוריד את לקוח ה-Auth Proxy.
משנים את שם הקובץ ל-alloydb-auth-proxy.exe.
32 ביט
לוחצים לחיצה ימנית על https://storage.googleapis.com/alloydb-auth-proxy/v1.15.0/alloydb-auth-proxy-x86.exe
ובוחרים באפשרות שמירת קישור בשם כדי להוריד את לקוח ה-Auth Proxy.
משנים את שם הקובץ ל-alloydb-auth-proxy.exe.
קובץ אימג' של Docker
לנוחותכם, כמה תמונות של קונטיינרים שמכילות את לקוח Auth Proxy זמינות ב-Artifact Registry.
אפשר למשוך את התמונה העדכנית ביותר למחשב המקומי באמצעות Docker עם הפקודה הבאה:
docker pull gcr.io/alloydb-connectors/alloydb-auth-proxy:latestמערכת הפעלה אחרת
למערכות הפעלה אחרות שלא נכללות כאן, אפשר לקמפל את לקוח Auth Proxy ממקור.
בחירת החשבון הראשי ב-IAM והכנתו להרשאה
שרת ה-proxy לאימות ב-AlloyDB תומך בשימוש בסוגים הבאים של חשבונות משתמשים ב-IAM כדי לתת הרשאה לחיבורים בין הלקוח לבין מכונת AlloyDB:
חשבון שירות שמנוהל על ידי משתמש. אתם יכולים ליצור חשבון שירות ב-IAM עבור האפליקציה שלכם, ואז לאשר חיבורים באמצעות החשבון הזה.
מומלץ מאוד להשתמש בחשבון שירות לצורך הרשאה בסביבות ייצור.
חשבון המשתמש. אתם יכולים להשתמש בחשבון משתמש IAM משלכם כדי לאשר חיבורים.
השימוש בחשבון המשתמש שלכם נוח בסביבות פיתוח שבהן אתם מנהלים משאבי AlloyDB באמצעות ה-CLI של gcloud, מפתחים את מסד הנתונים באמצעות כלי כמו
psqlומפתחים קוד אפליקציה, והכול באותו מארח.חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. אם המארח של הלקוח הוא מכונה של Compute Engine, אפשר להשתמש בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי לאשר חיבורים.
אחרי שבוחרים את חשבון המשתמש ב-IAM שבו רוצים להשתמש, צריך לוודא שיש לו את הרשאות ה-IAM הנדרשות ולוודא שפרטי הכניסה שלו זמינים במארח הלקוח.
הרשאות IAM נדרשות
לישות המורשית ב-IAM שמשמשת לאישור חיבורים צריכות להיות ההרשאות שניתנות על ידי התפקידים המוגדרים מראש roles/alloydb.client (לקוח Cloud AlloyDB) ו-roles/serviceusage.serviceUsageConsumer (Service Usage Consumer).
כדי להקצות את התפקיד Cloud AlloyDB Client למשתמש ב-IAM:
צריך להפעיל את Cloud Resource Manager API בפרויקט ב- Google Cloud .
צריך להיות לכם תפקיד ה-IAM הבסיסי
roles/owner(בעלים) בGoogle Cloud פרויקט, או תפקיד שמעניק את ההרשאות הבאות:resourcemanager.projects.getresourcemanager.projects.getIamPolicyresourcemanager.projects.setIamPolicy
כדי לקבל את ההרשאות האלה תוך שמירה על עקרון ההרשאות המינימליות, צריך לבקש מהאדמין להקצות לכם את התפקיד
roles/resourcemanager.projectIamAdmin(אדמין IAM בפרויקט).
הפיכת פרטי כניסה של IAM לזמינים במארח הלקוח
הדרך שבה מעבירים את פרטי הכניסה של IAM למארח הלקוח תלויה בסוג חשבון המשתמש ב-IAM שבו אתם משתמשים כדי לאשר חיבורים:
חשבון שירות בניהול המשתמשים
כדי לספק פרטי כניסה ל-IAM עבור חשבון שירות בניהול המשתמש, יוצרים מפתח לחשבון שירות בפורמט JSON ומורידים אותו למארח הלקוח. כשמפעילים את לקוח Auth Proxy, מציינים את המיקום של קובץ המפתח באמצעות הדגל
--credentials-file.חשבון המשתמש
כדי לספק פרטי כניסה של IAM לחשבון המשתמש, מתקינים את Google Cloud CLI במארח הלקוח ואז מריצים את הפקודה
gcloud initכדי לאתחל אותו באמצעות חשבון המשתמש. כשמפעילים את לקוח Auth Proxy, הוא מזהה את פרטי הכניסה של חשבון המשתמש ומשתמש בהם באופן אוטומטי, אלא אם מספקים לו פרטי כניסה של חשבון שירות בניהול המשתמש.חשבון השירות של Compute Engine שמוגדר כברירת מחדל
אם אתם משתמשים במכונה ב-Compute Engine כמארח הלקוח, פרטי הכניסה של חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כבר נמצאים במארח. כשמפעילים את לקוח Auth Proxy, הוא מאתר את פרטי הכניסה האלה ומשתמש בהם באופן אוטומטי אם פרטי הכניסה של חשבון השירות שמנוהל על ידי המשתמש ושל חשבון המשתמש לא זמינים.
איסוף כתובות URI לחיבור למכונות AlloyDB
כשמפעילים את לקוח אימות ה-Proxy, מציינים את מופע או מופעי AlloyDB שאליהם רוצים להתחבר באמצעות הפורמט של מזהה ה-URI של החיבור:
projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID
כדי לראות רשימה של כל כתובות ה-URI של החיבור של המופעים, משתמשים בפקודה alloydb instances list של ה-CLI של gcloud.
אוספים את מזהי ה-URI של החיבור למופע של כל מופע שרוצים להתחבר אליו.
הפעלת לקוח של שרת proxy לאימות
כשמפעילים את לקוח שרת ה-proxy לאימות, מספקים לו מידע על מופעי AlloyDB שאליהם רוצים להתחבר, ובמקרה הצורך, פרטי כניסה לשימוש באימות החיבורים האלה.
כשהוא מתחיל, לקוח Auth Proxy:
- נותן הרשאה לחיבורים למופעי AlloyDB באמצעות האישורים וההרשאות של הישות המורשית ב-IAM שהגדרתם. הוא מחפש את פרטי הכניסה על ידי ביצוע רצף ספציפי של שלבים.
- מאשר באופן אוטומטי חיבורים של כתובות IP ציבוריות לרשת המקור, אם כתובת ה-IP הציבורית מופעלת במופע.
- הגדרת חיבור פרטי מסוג mTLS 1.3 לכל שרת proxy לאימות של מכונה.
- מתחיל להאזין לבקשות חיבור של לקוחות מקומיים.
כברירת מחדל, לקוח Auth Proxy מקשיב לחיבורי TCP בכתובת ה-IP 127.0.0.1, החל מיציאה 5432, ומגדיל את מספר היציאה באחד עבור כל מופע AlloyDB מעבר לראשון. אתם יכולים לציין כתובת מאזין אחרת ויציאות שונות כשאתם מפעילים את לקוח Auth Proxy.
שורת הפקודה
./alloydb-auth-proxy INSTANCE_URI... \
[ --credentials-file PATH_TO_KEY_FILE \ ]
[ --token OAUTH_ACCESS_TOKEN \ ]
[ --port INITIAL_PORT_NUMBER \ ]
[ --address LOCAL_LISTENER_ADDRESS \ ]
[ --auto-iam-authn \ ]
[ --psc \ ]
[ --public-ip \ ]
[ --disable-built-in-telemetry ]מחליפים את מה שכתוב בשדות הבאים:
INSTANCE_URI: ה-URI של חיבור המכונה של מכונת AlloyDB שאליה רוצים להתחבר, בפורמט הבא:projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_IDאפשר לשנות את יציאת ברירת המחדל של מאזין מקומי שבה לקוח Auth Proxy ישתמש עבור המופע, על ידי הוספת פרמטר השאילתה
portל-URI:"projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?port=PORT"אופציונלי:
PATH_TO_KEY_FILE: הנתיב לקובץ מפתח ה-JSON של חשבון השירות שמנוהל על ידי המשתמש, שבו יש להשתמש לאישור החיבור.אופציונלי:
OAUTH_ACCESS_TOKEN: ערך של טוקן OAuth2 לשימוש בהרשאת חיבור.אופציונלי:
INITIAL_PORT_NUMBER: מספר היציאה ההתחלתי לשימוש במקום יציאת ברירת המחדל5432כשמאזינים לחיבורי TCP מקומיים.אופציונלי:
LOCAL_LISTENER_ADDRESS: כתובת המאזין לשימוש במקום ברירת המחדל127.0.0.1כשמאזינים לחיבורי TCP מקומיים.
הדגל האופציונלי --auto-iam-authn מאפשר אימות אוטומטי למופע. האפשרות הזו פועלת רק עבור משתמש מסד הנתונים שמשויך לחשבון IAM שמריץ את לקוח Auth Proxy. מידע נוסף זמין במאמר אימות אוטומטי באמצעות שרת proxy לאימות.
הדגל האופציונלי --psc מאפשר לשרת ה-proxy של האימות להתחבר למופע שמופעל בו Private Service Connect. מידע נוסף על הגדרת DNS עם Private Service Connect זמין במאמר הגדרת אזור מנוהל של DNS ורשומת DNS.
הסימון האופציונלי --public-ip מאפשר לשרת ה-proxy ל-Auth להתחבר למכונה עם כתובת IP ציבורית מופעלת באמצעות כתובת ה-IP הציבורית של המכונה. מידע נוסף על כתובת IP ציבורית זמין במאמר התחברות באמצעות כתובת IP ציבורית.
הדגל האופציונלי --disable-built-in-telemetry משבית את הכלי הפנימי לדיווח על מדדים, שמשמש את שרת ה-Auth Proxy לדיווח על החיבור ועל תקינות הרשת. כברירת מחדל, שרת ה-Auth Proxy ידווח על הפעולות הפנימיות שלו באמצעות הקידומת alloydb.googleapis.com של מדדי המערכת. המדדים האלה עוזרים ל-AlloyDB לשפר את הביצועים ולזהות בעיות בקישוריות של הלקוח. האפשרות הזו שימושית לאפליקציות שפועלות בסביבות שבהן ייצוא מדדים יוצאים מוגבל. אם אתם מעדיפים לבטל את ההסכמה לשליחת הטלמטריה הזו, אתם יכולים להשתמש בדגל הזה.
מאגר Docker
מריצים את לקוח Auth Proxy באמצעות הפקודה docker run.
אם אתם משתמשים בפרטי הכניסה שסופקו על ידי מכונת Compute Engine, אתם יכולים להשתמש בפקודה שדומה לפקודה הבאה:
docker run \
--publish 127.0.0.1:PORT:PORT \
gcr.io/alloydb-connectors/alloydb-auth-proxy:latest \
--address 0.0.0.0 \
--port PORT \
INSTANCE_URIמחליפים את מה שכתוב בשדות הבאים:
PORT: היציאה לשימוש בחיבורים מקומיים ללקוח של שרת ה-Proxy לאימות. ערך ברירת המחדל הוא5432.
INSTANCE_URI: ה-URI של חיבור המכונה למכונת AlloyDB שאליה רוצים להתחבר, בפורמט הבא:projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_IDאפשר לשנות את יציאת ברירת המחדל של מאזין מקומי שמשמש את לקוח Auth Proxy עבור המופע, על ידי הוספת פרמטר השאילתה
portל-URI:"projects/PROJECT_ID/locations/REGION_ID/clusters/CLUSTER_ID/instances/INSTANCE_ID?port=PORT"
תמיד מציינים את הקידומת 127.0.0.1 בדגל --publish כדי שלקוח ה-Auth Proxy לא ייחשף מחוץ למארח המקומי.
הערך 0.0.0.0 בדגל --address נדרש כדי שהמאזין יהיה נגיש מחוץ למאגר Docker.
כדי לספק פרטי כניסה ששמרתם בקובץ JSON מקומי, צריך לכלול את הדגלים --volume ו---credentials-file כשמריצים את הפקודה docker run:
docker run \
--volume PATH_TO_KEY_FILE:/key.json \
--publish 127.0.0.1:PORT:PORT \
gcr.io/alloydb-connectors/alloydb-auth-proxy:latest \
--address 0.0.0.0 \
--port PORT \
--credentials-file=/key.json \
INSTANCE_URIמחליפים את PATH_TO_KEY_FILE בנתיב לקובץ מפתח ה-JSON של חשבון השירות שמנוהל על ידי המשתמש, שבו רוצים להשתמש לאישור הגישה.
דוגמאות לסטארט-אפים
בדוגמאות הבאות מוצגות דרכים שונות להפעלת לקוח שרת ה-proxy לאימות. בדוגמאות האלה נעשה שימוש בכתובות ה-URI הבאות לחיבור למופע:
projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary
projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool
הפעלה בסיסית
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary"בדוגמה הזו, לקוח שרת ה-Proxy לאימות מאשר את החיבור על ידי ביצוע רצף שלבי האימות הרגיל שלו, ואז מתחיל להאזין לחיבורים מקומיים למופע myprimary ב-127.0.0.1:5432.
הפעלה באמצעות חשבון שירות שמנוהל על ידי משתמש
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \\
--credentials-file "myappaccount/key.json"בדוגמה הזו, לקוח שרת ה-proxy ל-Auth מאשר את החיבור באמצעות מפתח ה-JSON של חשבון השירות שמנוהל על ידי המשתמש, שמאוחסן ב-myappaccount/key.json, ואז מתחיל להאזין לחיבורים מקומיים למופע myprimary ב-127.0.0.1:5432.
הפעלה של חיבור לכמה מופעים
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool"בדוגמה הזו, לקוח שרת ה-Proxy ל-Auth מאשר את החיבור על ידי ביצוע רצף שלבים רגיל לאישור, ואז מתחיל להאזין לחיבורים מקומיים למופע myprimary בכתובת 127.0.0.1:5432 ולמופע myreadpool בכתובת 127.0.0.1:5433.
הפעלה של האזנה ביציאות בהתאמה אישית
שימוש ביציאות מותאמות אישית עבור לקוח Auth Proxy יכול להיות שימושי כשצריך לשריין את יציאה 5432 לחיבורים אחרים של PostgreSQL.
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary?port=5000" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool?port=5001"בדוגמה הזו, לקוח שרת ה-Proxy ל-Auth מאשר את החיבור על ידי ביצוע רצף שלבים רגיל לאישור, ואז מתחיל להאזין לחיבורים מקומיים למופע myprimary בכתובת 127.0.0.1:5000 ולמופע myreadpool בכתובת 127.0.0.1:5001.
מכיוון שהיציאות המותאמות אישית האלה הן עוקבות, אפשר להשיג את אותה ההשפעה באמצעות פקודת ההפעלה הזו:
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myreadpool" \
--port 5000הפעלת האזנה בכתובת IP מותאמת אישית
./alloydb-auth-proxy \
"projects/myproject/locations/us-central1/clusters/mycluster/instances/myprimary" \
--address "0.0.0.0"בדוגמה הזו, לקוח שרת ה-Proxy לאימות מאשר את החיבור על ידי ביצוע רצף שלבי האימות הרגיל שלו, ואז מתחיל להאזין לחיבורים מקומיים למופע myprimary בכתובת 0.0.0.0:5432.
חיבור אפליקציה למסד נתונים באמצעות שרת ה-proxy לאימות של AlloyDB
בדוגמאות הבאות אפשר לראות איך מחברים אפליקציה למסד נתונים באמצעות שרת proxy לאימות של AlloyDB.
בדוגמה psql מוסבר איך לחבר כלי שורת פקודה.
החיבור למכונת AlloyDB באמצעות שרת proxy ל-AlloyDB Auth זהה בכמה שפות תכנות לחיבור ל-Cloud SQL ל-PostgreSQL באמצעות שרת proxy ל-Cloud SQL Auth, ולכן הדוגמאות לשפות שמופיעות כאן זהות לאלה של Cloud SQL ל-PostgreSQL.
הדוגמאות האלה מבוססות על הפעלה של לקוח Auth Proxy כברירת מחדל, כך שהוא מאזין לחיבורי TCP מקומיים בכתובת 127.0.0.1:5432.
psql
psql -h 127.0.0.1 -p 5432 -U DB_USERמחליפים את DB_USER במשתמש במסד הנתונים שאליו רוצים להתחבר – לדוגמה, postgres.
תוצג בקשה להזין את הסיסמה של המשתמש DB_USER.
Python
Java
Node.js
המשך
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
C#
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Ruby
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
PHP
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.