הגדרת אימות לקוח

בוחרים גרסת תיעוד:

במאמר הזה מוסבר איך להגדיר אימות לקוח באשכול מסד הנתונים של AlloyDB Omni שמבוסס על Kubernetes, באמצעות המשאב המותאם אישית (alloydbomni.dbadmin.goog/v1) UserDefinedAuthentication. אתם יכולים להתאים אישית את התנהגות אימות הלקוח, למשל להגביל את רשתות המשנה של הלקוחות, לאכוף SSL/TLS, לציין שיטות אימות בהתאמה אישית או להגדיר מיפוי משתמשים, על ידי הגדרת רשומות pg_hba.conf ו-pg_ident.conf בהתאמה אישית, בלי קשר להגדרת Active Directory.

במאמר הזה אנחנו מניחים שאתם יודעים איך להחיל קובצי מניפסט של Kubernetes ואיך להשתמש בכלי שורת הפקודה kubectl. למידע נוסף, ראו כלי שורת הפקודה (kubectl).

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

כדי להגדיר אימות לקוח, צריך:

  • אשכול AlloyDB Omni שנפרס בסביבת Kubernetes.
  • משתמשים ותפקידים במסד הנתונים שהוגדרו באשכול.
  • ה-CLI של kubectl מותקן ומוגדר.

החלת המניפסט של המשאב בהתאמה אישית

מחילים את המניפסט הבא של משאב מותאם אישית לאימות שמוגדר על ידי המשתמש:

apiVersion: alloydbomni.dbadmin.goog/v1
kind: UserDefinedAuthentication
metadata:
  name: USER_DEFINED_AUTHENTICATION_NAME
  namespace: DB_CLUSTER_NAMESPACE
spec:
  dbclusterRef:
    name: DB_CLUSTER_NAME
  pgHbaEntries:
    PG_HBA_ENTRIES
  pgIdentEntries:
    PG_IDENT_ENTRIES

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

  • ‫USER_DEFINED_AUTHENTICATION_NAME: השם של המשאב בהתאמה אישית של UserDefinedAuthentication, לדוגמה DB_CLUSTER_NAME-client-auth.
  • ‫DB_CLUSTER_NAMESPACE: מרחב השמות של Kubernetes למשאב בהתאמה אישית. מרחב השמות חייב להיות זהה למרחב השמות של אשכול מסד הנתונים.
  • ‫DB_CLUSTER_NAME: השם של אשכול מסד הנתונים, שהוקצה לו כשיצרתם אותו.
  • PG_HBA_ENTRIES: רשומות pg_hba.conf כרשימת מחרוזות. הרשומות האלה מחליפות את רשומות ברירת המחדל ב-pg_hba.conf. לדוגמה, כדי להגביל את החיבורים לרשת משנה ספציפית, משתמשים ב-- "host all all 192.168.1.0/24 scram-sha-256". מידע נוסף זמין במאמר The pg_hba.conf File.
  • PG_IDENT_ENTRIES: (אופציונלי) רשומות של pg_ident.conf כרשימת מחרוזות. כדי להטמיע מיפוי של שמות משתמשים, מציינים את map= בשדה האפשרויות בקובץ pg_hba.conf. אם אתם לא צריכים מיפוי של שמות משתמשים, השמיטו את השדה pgIdentEntries מהמניפסט. מידע נוסף זמין במאמר מיפוי שמות משתמשים.

אימות כללי האימות של הלקוח

כדי לבדוק את הסטטוס של המשאב UserDefinedAuthentication, מריצים את הפקודה הבאה:

kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE

מוודאים שבעמודה STATE מוצג הערך Ready.

כדי לראות את פרטי המשאב והתנאים, מריצים את הפקודה הבאה:

kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

עדכון כללי האימות של הלקוח

כדי לעדכן את כללי האימות של הלקוח או את מיפויי המשתמשים, מעדכנים את spec.pgHbaEntries או את spec.pgIdentEntries בקובץ המניפסט ומחילים אותו מחדש:

kubectl apply -f CLIENT_AUTH_MANIFEST.yaml

אופרטור AlloyDB Omni טוען מחדש באופן דינמי את ההגדרות האישיות של PostgreSQL (pg_ctl reload) בלי להפעיל מחדש את ה-Pod של מסד הנתונים או לגרום לזמן השבתה.

מחיקת כללי אימות לקוח

כדי למחוק את כללי האימות בהתאמה אישית ולחזור לכללי האימות שמוגדרים כברירת מחדל, מריצים את הפקודה הבאה:

kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

כשמוחקים את המשאב UserDefinedAuthentication, אופרטור AlloyDB Omni טוען מחדש באופן דינמי את pg_hba.conf (pg_ctl reload) כדי לשחזר את כללי ברירת המחדל של האימות, בלי שצריך להפעיל מחדש את pod מסד הנתונים.

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