חיבור באמצעות חשבון IAM

בדף הזה מוסבר איך מתחברים למכונת AlloyDB ל-PostgreSQL באמצעות חשבון שהוכן עם ניהול זהויות והרשאות גישה (IAM). התהליך מוסבר באמצעות הדגמה של התחברות מבוססת-IAM באמצעות psqlלקוח שורת הפקודה.

סקירה כללית על חיבור למופעי AlloyDB זמינה במאמר סקירה כללית על חיבור.

לפני שמתחילים

צריך להכין את הפרויקט, האשכול, המופעים וחשבונות המשתמשים ב-IAM לפני שמתחברים למופע AlloyDB באמצעות פרטי כניסה של IAM.

מידע נוסף זמין במאמר ניהול אימות IAM.

אימות באמצעות טוקן OAuth 2.0

משתמש או אפליקציה יכולים לבצע אימות במסד נתונים של AlloyDB באופן הבא:

  1. אם עדיין לא עשיתם זאת, בצעו אימות ל-CLI של gcloud באמצעות אותו חשבון משתמש או חשבון שירות שבו אתם רוצים להיכנס למופע AlloyDB.

  2. שולחים בקשה לאסימון OAuth 2.0 מ- Google Cloud באמצעות הפקודה gcloud auth print-access-token:

    gcloud auth print-access-token

    הפקודה Google Cloud מדפיסה אסימון OAuth 2.0 כפלט.

    כדי להגביר את האבטחה, אפשר להגביל את השימוש באסימון לאימות ב-AlloyDB בלבד. לשם כך, פועלים לפי השלבים האלה:

    1. אם עדיין לא עשיתם את זה, מוסיפים את היקף ההרשאות alloydb.login לפרטי הגישה של הסביבה הנוכחית באמצעות הפקודה gcloud auth application-default login:

      gcloud auth application-default login --scopes=https://www.googleapis.com/auth/alloydb.login,https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email,openid
    2. הדפסת טוקן מוגבל של OAuth 2.0 באמצעות הפקודה gcloud auth application-default print-access-token, והגבלת הטוקן לאימות ב-AlloyDB:

      gcloud auth application-default print-access-token --scopes=https://www.googleapis.com/auth/alloydb.login
      

    אסימון OAuth 2.0 מאפשר לכם – או לכל אחד אחר – לשלוח בקשות מאומתות אל Google Cloud בשמכם. מתייחסים לטוקן באותה רמת אבטחה כמו לסיסמה. אפשר לאחסן את האסימון באופן מאובטח, או להימנע מאחסון שלו בכלל. בדוגמה לשימוש ב-psql שמופיעה בהמשך הדף הזה, אפשר לראות דרך לבקש אסימון OAuth 2.0, להשתמש בו ולבטל אותו בפעולה אחת.

  3. נכנסים למכונת AlloyDB באמצעות טכניקות רגילות של PostgreSQL, עם פרטי הכניסה הבאים:

    • מציגים את אסימון הגישה שקיבלתם בשלב הקודם כסיסמה.

    • בחשבון משתמש IAM, שם המשתמש במסד הנתונים הוא כתובת האימייל המלאה של החשבון.

    • בחשבון שירות של IAM, שם המשתמש במסד הנתונים הוא כתובת האימייל של החשבון ללא הסיומת .gserviceaccount.com.

הפקודה הבאה psql מדגימה דרך אחת להתחבר למשתמש IAM בשורת הפקודה. הפקודה מקצה את הפלט של gcloud auth print-access-token למשתנה הסביבה PGPASSWORD, שמשמש את psql בהמשך כסיסמת כניסה למסד הנתונים.

PGPASSWORD=$(gcloud auth print-access-token) psql \
  -h INSTANCE_ADDRESS \
  -U USERNAME \
  -d DATABASE

מחליפים את מה שכתוב בשדות הבאים:

  • ‫INSTANCE_ADDRESS: כתובת ה-IP של מופע AlloyDB שאליו רוצים להתחבר.

  • ‫USERNAME: מזהה של משתמש IAM לאימות במכונה.

    אם מדובר בחשבון משתמש IAM, צריך לספק את כתובת האימייל המלאה של חשבון המשתמש. לדוגמה, kai@altostrat.com.

    אם מדובר בחשבון שירות של IAM, צריך לספק את כתובת חשבון השירות בלי הסיומת .gserviceaccount.com. לדוגמה, כדי לציין את חשבון השירות my-service@my-project.iam.gserviceaccount.com, צריך להשתמש בערך my-service@my-project.iam.

  • ‫DATABASE: השם של מסד הנתונים שאליו רוצים להתחבר.

שימו לב: psql מקצר סיסמאות שמוזנות בשורת הפקודה שאורכן עולה על 100 תווים. כדי להשתמש ב-psql עם טוקן OAuth 2.0 כסיסמה לכניסה, צריך להגדיר את משתנה הסביבה PGPASSWORD כמו בדוגמה הזו, ולא להדביק אותו ידנית כשמוצגת בקשה.

אימות אוטומטי

כדי לאמת באופן אוטומטי משתמש AlloyDB שמבוסס על IAM בלי להשתמש בטוקן OAuth 2.0, יש שתי אפשרויות: AlloyDB Auth Proxy ו-AlloyDB Language Connectors.

חשבון ה-IAM שבו אתם משתמשים כדי להריץ את לקוח ה-proxy או את Language Connectors צריך להיות אותו חשבון שהוספתם כמשתמש במסד הנתונים. לדוגמה, אם אתם מריצים את עומס העבודה באמצעות חשבון המשתמש kai@altostrat.com ב-IAM, אתם יכולים להשתמש בלקוח הפרוקסי או ב-Language Connectors כדי לבצע אימות אוטומטי של משתמש מסד הנתונים kai@altostrat.com בלי לציין אסימון OAuth 2.0. בדוגמה הזו, האימות האוטומטי לא פועל עם אף משתמש אחר במסד הנתונים, חוץ מkai@altostrat.com.

שרת proxy לאימות

כדי להשתמש ב-Auth Proxy, צריך להפעיל את לקוח AlloyDB Auth Proxy עם הדגל --auto-iam-authn.

מידע נוסף על הפעלת שרת ה-proxy לאימות זמין במאמר בנושא התחברות באמצעות שרת ה-proxy לאימות של AlloyDB.

מחברים לשפות

כדי להשתמש במחברי שפה, צריך להפעיל אימות IAM באופן פרוגרמטי. יש אפשרות מקבילה לכל שפה בקטע הגדרת מחברי השפה של AlloyDB.

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