בדף הזה מוסבר איך להשתמש ב-AlloyDB ל-PostgreSQL עם Secret Manager כדי לאחסן מידע רגיש על גישה.
טיפול במידע רגיש בצורה מאובטחת הוא חלק חיוני בתהליך פיתוח מאובטח. ב-AlloyDB, מומלץ לאחסן את המידע הרגיש כסודות שיוצרים ב-Secret Manager. סודות כוללים מפתחות API, סיסמאות, מידע רגיש ופרטי כניסה שאולי תשתמשו בהם כדי לגשת למערכת סודית.
סקירה כללית
Secret Manager מספק נוחות ומשפר את האבטחה. אפשר גם להחיל ניהול גרסאות על הסודות ולשתף אותם עם חברי הצוות. מידע נוסף על שיתוף סודות עם הצוות זמין במאמר בקרת גישה באמצעות IAM.
שמות משתמש וסיסמאות
שימוש ב-Secret Manager לאחסון שמות המשתמשים והסיסמאות של חשבונות המשתמשים ב-AlloyDB כסודות הוא דרך בטוחה ומהימנה לניהול המידע הרגיש.
קודם יוצרים משתמש ב-AlloyDB. לשם כך צריך לספק שם משתמש וסיסמה. מידע נוסף על יצירת משתמש ב-AlloyDB זמין במאמר ניהול משתמשי PostgreSQL באמצעות אימות מובנה.
אחרי שיוצרים את המשתמש, יוצרים סוד ב-Secret Manager כדי לאחסן את שם המשתמש והסיסמה, וכך למנוע אובדן של המידע הרגיש. מידע נוסף על יצירה של סודות וגישה אליהם ב-Secret Manager זמין במאמר בנושא יצירת סוד.
תרחישים של רפליקה בין אזורים
אם אשכול AlloyDB ראשי נכשל, יכול להיות שתקדמו אשכול משני. אחרי שהאשכול המשני הופך לאשכול הראשי, צריך לעדכן את שם החיבור של המופע כדי לשקף את הקידום הזה. אם שם המופע מאוחסן בסוד, צריך לעדכן את הסוד בשם של האשכול הראשי החדש. מידע נוסף זמין במאמר בנושא עריכת סוד.
אחת הדרכים להשתמש ב-Secret Manager ליתירות כשל היא לשמור את השם של האשכול הראשי בסוד, ואז לעטוף את הפעלת AlloyDB Auth Proxy בסקריפט שדוגם את Secret Manager.
כדי לזהות מתי הערך של שם החיבור של המכונה מתעדכן, משתמשים בשרת proxy ל-AlloyDB Auth ואז מפעילים אותו מחדש עם הערך החדש, באופן הבא:
#!/bin/bash
SECRET_ID="my-secret-id" # TODO(developer): replace this value
REFRESH_INTERVAL=5
PORT=5432 # TODO(developer): change this port as needed
# Get the latest version of the secret and start the proxy
INSTANCE=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
alloydb-auth-proxy $INSTANCE --port=$PORT &
PID=$!
# Every 5s, get the latest version of the secret. If it's changed, restart the
# proxy with the new value.
while true; do
sleep $REFRESH_INTERVAL
NEW=$(gcloud secrets versions access "latest" --secret="$SECRET_ID")
if [ "$INSTANCE" != "$NEW" ]; then
INSTANCE=$NEW
kill $PID
wait $PID
alloydb-auth-proxy $INSTANCE --port=$PORT &
PID=$!
fi
done
למידע נוסף על יצירה וגישה לסוד שמכיל את שם החיבור של מופע הרפליקה הראשי, ראו יצירה וגישה לסוד באמצעות Secret Manager. מידע נוסף על השימוש ב-AlloyDB Auth proxy זמין במאמר בנושא חיבור באמצעות AlloyDB Auth Proxy.
המאמרים הבאים
- כדי ללמוד איך לשלב את Secret Manager עם סביבת הפיתוח, אפשר לעיין בדוגמאות השונות שזמינות בדף כל דוגמאות הקוד של Secret Manager.