לפני שמתחילים
- מומלץ לקרוא את המאמר תכנון ההתקנה של AlloyDB Omni.
מגדירים את מנוע הסודות KV-V2 של HashiCorp Vault כדי לוודא שהנתיב של מפתח הצפנת המפתחות (KEK) ואסימון האינטרנט מסוג JSON (JWT) זמינים.
מוודאים של-AlloyDB Omni יש הרשאה לקרוא את קובץ ה-JWT.
יצירת האשכול
כדי ליצור אשכול עם TDE, צריך להעביר את הגדרות Key Management Service (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: סוג האימות שבו משתמשים לחיבור ל-Vault. יש תמיכה רק ב-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. כדי לציין את HashiCorp Vault כספק ה-KMS, משתמשים ב-vaultכפרוטוקול, לדוגמה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
File Based 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;אם ההצפנה השקופה של הנתונים מופעלת בהצלחה, בפלט מוצגים מדדים של ההצפנה השקופה של הנתונים, כמו האם ההצפנה השקופה של הנתונים מופעלת, כתובת ה-URL של מפתח הצפנת המפתח, הגרסה של מפתח הצפנת המפתח וחותמת הזמן של יצירת מפתח הצפנת המפתח.
בטבלה הבאה מוסבר מה המשמעות של כל מדד.
שם תיאור תווית יחידה סוג 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מידע על TDE KEK. -
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. לא רלוונטי מיקרו-שניות מונה -