לפני שמתחילים
- קוראים את המאמר תכנון ההתקנה של AlloyDB Omni.
מגדירים את מנוע הסודות KV-V2 של HashiCorp Vault כדי לוודא שנתיב מפתח ההצפנה (KEK) ואסימון האינטרנט מסוג JSON (JWT) זמינים.
מוודאים של-AlloyDB Omni יש הרשאה לקרוא את קובץ ה-JWT.
יצירת האשכול
כדי ליצור אשכול עם TDE, צריך להעביר את ההגדרות הנדרשות של שירות ניהול המפתחות (KMS) ואת פרטי האימות במהלך האתחול של מסד הנתונים. סוג האימות הנתמך היחיד הוא jwt.
התקנת AlloyDB Omni באמצעות RPM כדי להכין את הסביבה ולהתקין את חבילת ה-RPM של AlloyDB Omni.
מפעילים את מסד הנתונים.
HashiCorp Vault KMS
מומלץ להשתמש בגישה הזו לעומסי עבודה בסביבת ייצור.
מריצים את הפקודה הבאה כדי לאתחל את מסד הנתונים עם TDE מופעל:
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ VAULT_AUTH_TYPE=jwt \ VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ VAULT_JWT_PATH=JWT_FILE_PATH \ VAULT_ROLE=VAULT_ROLE \ VAULT_CERT_PATH=VAULT_CERT_PATH \ POSTGRES_INITDB_ARGS="--tde-kek-url=KEK_URL" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
מחליפים את מה שכתוב בשדות הבאים:
-
POSTGRES_PASSWORD: הסיסמה של משתמש מסד הנתונים. -
DATA_DIR: ספרייה מקומית להרכבה כנפח נתונים עבור AlloyDB Omni – לדוגמה,/local/data. -
VAULT_AUTH_TYPE: סוג האימות שבו יש להשתמש לחיבור למאגר. יש תמיכה רק ב-jwt. -
JWT_AUTH_ENGINE_MOUNT: הנתיב שבו מותקן מנוע האימות של HashiCorp Vault, לדוגמה/auth/jwt. -
JWT_FILE_PATH: הנתיב שבו אסימון ה-JWT של Vault מאוחסן בצמתים. לדוגמה:tde-tls/jwt-token. - (אופציונלי)
VAULT_ROLE: תפקיד הלקוח שמוגדר בהגדרת הכספת ומאפשר ל-HashiCorp Vault לאמת את האותנטיות של אסימון ה-JWT. -
VAULT_CERT_PATH: הנתיב שבו נמצאים האישורים לחיבור לכספת במאגר שלכם. לדוגמה:/tde-tls. אם לא מוגדר נתיב, נעשה שימוש באישורים בחנות ברירת המחדל של אישורים מהימנים. -
KEK_URL: כתובת ה-URL המלאה של KEK ב-HashiCorp Vault. משתמשים ב-vaultכפרוטוקול כדי לציין את HashiCorp Vault כספק KMS – לדוגמה,vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.
-
כדי ליצור קובץ החלפה בשביל
alloydbomni.service in /etc/systemd/system/alloydbomni18.service.d/override.conf, מוסיפים את הטקסט הבא לקובץoverride.conf:[Service] Environment="VAULT_AUTH_TYPE" Environment="VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT" Environment="VAULT_JWT_PATH=JWT_FILE_PATH" Environment="VAULT_ROLE=VAULT_ROLE" Environment="VAULT_CERT_PATH=VAULT_CERT_PATH"
כדי להחיל את השינויים, טוענים מחדש את ה-daemon של systemd.
sudo systemctl daemon-reload
מערכת KMS מבוססת קובץ
השתמשו בגישה הזו למטרות בדיקה בלבד.
כדי לבדוק את TDE באופן מקומי באמצעות מפתח מבוסס-קובץ, קודם צריך ליצור KEK של 32 בייט במחשב.
יוצרים את הספרייה, יוצרים את המפתח ומגדירים את ההרשאות המתאימות.
KEK_DIR=KEK_DIR mkdir -p $KEK_DIR sudo chown 999:999 $KEK_DIR openssl rand -base64 32 | sudo tee $KEK_DIR/key sudo chmod 0755 $KEK_DIR/key
מאתחלים את מסד הנתונים על ידי העברת ה-URI של הקובץ המקומי ככתובת ה-URL של מפתח ה-KEK.
sudo PGPASSWORD=POSTGRES_PASSWORD \ PGDATA=DATA_DIR \ POSTGRES_INITDB_ARGS="--tde-kek-url=file:///$KEK_DIR/key" \ /usr/lib/postgresql/18/bin/alloydbomni18-setup initdb
מחליפים את מה שכתוב בשדות הבאים:
-
POSTGRES_PASSWORD: הסיסמה של משתמש מסד הנתונים. -
DATA_DIR: ספרייה מקומית להרכבה כנפח נתונים עבור AlloyDB Omni – לדוגמה,/local/data. -
KEK_DIR: הספרייה שבה מאוחסן מפתח KEK מקומי מבוסס-קובץ, לדוגמה/tmp/alloydb/kms.
-
אחרי שמסד הנתונים מאותחל, פועלים לפי ההוראות במאמר התקנה של AlloyDB Omni באמצעות RPM כדי להכין את מסד הנתונים, להגדיר את המארח ולהפעיל את שירות
systemd.
הצגת מדדי TDE
אחרי שהאשכול מאותחל, מבצעים את השלבים הבאים כדי לוודא ש-TDE מופעל ולצפות במדדים שקשורים ל-TDE.
- מתחברים למסד הנתונים באמצעות
psqlאו לקוח מועדף. הוראות מפורטות לחיבור למופעים זמינות במאמר הפעלה וחיבור ל-AlloyDB Omni. מריצים את הפקודה הבאה:
select * FROM pgsnap.g$tde_stats;בפלט מוצגים מדדים של TDE, כמו האם TDE מופעל, כתובת ה-URL של KEK, גרסת KEK וחותמת הזמן של יצירת KEK.
בטבלה הבאה מוסבר מה המשמעות של כל מדד.
שם תיאור תווית יחידה סוג alloydb_omni_database_tde_data_blocks_decrypted_count_totalמספר בלוקי הנתונים שפוענחו. לא רלוונטי מונה alloydb_omni_database_tde_data_blocks_encrypted_count_totalמספר בלוקי הנתונים שהוצפנו. לא רלוונטי מונה alloydb_omni_database_tde_data_decryption_time_us_totalהזמן הכולל שנדרש לפענוח בלוק הנתונים. לא רלוונטי מיקרו-שניות מונה alloydb_omni_database_tde_data_encryption_time_us_totalהזמן הכולל שהוקדש להצפנת בלוק נתונים. לא רלוונטי מיקרו-שניות מונה alloydb_omni_database_tde_enabledסטטוס ההפעלה של TDE. לא רלוונטי מד alloydb_omni_database_tde_kek_infoמידע על KEK של TDE. -
kek_version: הגרסה של מפתח ה-KEK
שנמצאת בשימוש לאריזת המפתח. -
kek_url: נתיב מוגדר במלואו
ל-KEK ב-KMS -
kek_creation_timestamp:
זמן היצירה של גרסת ה-KEK שבשימוש.
מד alloydb_omni_database_tde_temp_blocks_decrypted_count_totalמספר החסימות הזמניות שפוענחו. לא רלוונטי מונה alloydb_omni_database_tde_temp_blocks_encrypted_count_totalמספר החסימות הזמניות שהוצפנו. לא רלוונטי מונה alloydb_omni_database_tde_temp_decryption_time_us_totalהזמן הכולל שהוקדש לפענוח של חסימה זמנית. לא רלוונטי מיקרו-שניות מונה alloydb_omni_database_tde_temp_encryption_time_us_totalהזמן הכולל שהוקדש להצפנה של בלוקים זמניים. לא רלוונטי מיקרו-שניות מונה alloydb_omni_database_tde_wal_blocks_decrypted_count_totalמספר בלוקים של WAL שפוענחו. לא רלוונטי מונה alloydb_omni_database_tde_wal_blocks_encrypted_count_totalמספר בלוקים של WAL שהוצפנו. לא רלוונטי מונה alloydb_omni_database_tde_wal_decryption_time_us_totalהזמן הכולל שהוקדש לפענוח של בלוקים ב-WAL. לא רלוונטי מיקרו-שניות מונה alloydb_omni_database_tde_wal_encryption_time_us_totalהזמן הכולל שהוקדש להצפנת בלוקים ב-WAL. לא רלוונטי מיקרו-שניות מונה -