כדי ליצור חיבורים מוצפנים ומורשים למופעי 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)
מורידים את לקוח אימות ה-Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxyהופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
32 ביט (AMD)
מורידים את לקוח אימות ה-Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.linux.386 -O alloydb-auth-proxyהופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
64 ביט (ARM)
מורידים את לקוח אימות ה-Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.linux.arm64 -O alloydb-auth-proxyהופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
32 ביט (ARM)
מורידים את לקוח אימות ה-Proxy:
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.linux.arm -O alloydb-auth-proxyהופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
macOS
ARM64
מורידים את לקוח אימות ה-Proxy:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.darwin.arm64הופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
AMD64
מורידים את לקוח אימות ה-Proxy:
curl -o alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy.darwin.amd64הופכים את קובץ הלקוח של שרת ה-Auth Proxy לקובץ הפעלה:
chmod +x alloydb-auth-proxy
Windows
64 ביט
לוחצים לחיצה ימנית על https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/alloydb-auth-proxy-x64.exe
ובוחרים באפשרות שמירת הקישור בשם כדי להוריד את לקוח ה-Auth Proxy.
משנים את שם הקובץ ל-alloydb-auth-proxy.exe.
32 ביט
לוחצים לחיצה ימנית על https://storage.googleapis.com/alloydb-auth-proxy/v1.13.11/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 (צרכן שימוש בשירות).
כדי להקצות את התפקיד 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 של הישות המורשית ב-IAM שהגדרתם. הוא מחפש את פרטי הכניסה לפי רצף ספציפי של שלבים.
- מאשר באופן אוטומטי חיבורים של כתובות IP ציבוריות לרשת המקור, אם כתובת ה-IP הציבורית מופעלת במופע.
- הגדרת חיבור פרטי מסוג mTLS 1.3 לכל שרת proxy לאימות של מופע.
- מתחיל להאזין לבקשות חיבור של לקוחות מקומיים.
כברירת מחדל, לקוח ה-Auth Proxy מאזין לחיבורי TCP בכתובת ה-IP 127.0.0.1, החל מיציאה 5432, ומגדיל את מספר היציאה ב-1 לכל מופע של 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 לדיווח על החיבור ועל תקינות הרשת. כברירת מחדל, שרת ה-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 של חשבון השירות שמנוהל על ידי המשתמש, שבו רוצים להשתמש לאישור הקישור.
דוגמאות להפעלה
בדוגמאות הבאות מוצגות דרכים שונות להפעלת לקוח Auth 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.
הדוגמאות האלה מבוססות על הפעלה של לקוח שרת ה-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
Go
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
C#
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
Ruby
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.
PHP
כדי לראות את קטע הקוד הזה בהקשר של אפליקציית אינטרנט, אפשר לעיין בקובץ ה-README ב-GitHub.