אתם יכולים לאבטח את הנתונים במצב מנוחה ולהגן על מידע רגיש על ידי הפעלת הצפנת נתונים שקופה (TDE) ב-AlloyDB Omni. במסמך הזה מוסבר איך ליצור אשכול עם הצפנת TDE על ידי ציון משתני הסביבה הנדרשים של Key Management Service (KMS) (בשביל HashiCorp Vault או Thales CipherTrust Manager) והדגל --tde-kek-url במשתנה הסביבה POSTGRES_INITDB_ARGS במהלך אתחול מסד הנתונים.
לפני שמתחילים
HashiCorp Vault KMS
- מגדירים את מנוע הסודות KV-V2 של HashiCorp Vault כדי לוודא שהנתיב של מפתח הצפנת המפתחות (KEK) ואסימון האינטרנט מסוג JSON (JWT) זמינים.
- מוודאים של-AlloyDB Omni יש הרשאה לקרוא את קובץ ה-JSON Web Token (JWT), שהוא אסימון האימות.
Thales CipherTrust KMS
- מגדירים את Thales CipherTrust Manager כדי לוודא שהמפתח הסודי להצפנת מפתחות (KEK) נוצר וניתן לייצוא.
- מוודאים שיש לכם חשבון משתמש ב-CipherTrust Manager (
usernameו-password) עם הרשאה לאימות ולייצוא של הסוד של ה-KEK.
יצירת האשכול
כדי ליצור אשכול עם TDE, צריך להעביר את הגדרות Key Management Service (KMS) הנדרשות ואת פרטי הכניסה לאימות במהלך האיניציאליזציה של מסד הנתונים. פועלים לפי ההוראות בקטע HashiCorp Vault KMS (באמצעות אימות jwt) או בקטע Thales CipherTrust KMS (באמצעות אימות של שם משתמש וסיסמה).
HashiCorp Vault KMS
בוחרים את הכרטיסייה של זמן הריצה של מאגר התגים כדי לאתחל את AlloyDB Omni באמצעות HashiCorp Vault.
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
מחליפים את מה שכתוב בשדות הבאים:
-
CONTAINER_NAME: השם של מאגר התגים שרוצים ליצור. לדוגמה,alloydb-tde. -
DATA_DIR: הספרייה המקומית שרוצים לטעון כנפח הנתונים של AlloyDB Omni. לדוגמה,/local/data. -
JWT_AUTH_ENGINE_MOUNT: הנתיב שבו מותקן מנוע האימות של HashiCorp Vault. לדוגמה,/auth/jwt. -
JWT_FILE_PATH: הנתיב שבו מאוחסן ה-JWT של Vault בצמתים. לדוגמה,/tde-tls/jwt-token. - אופציונלי:
VAULT_ROLE: תפקיד הלקוח שמוגדר בהגדרות של Vault, שמאפשר ל-HashiCorp Vault לאמת את האותנטיות של אסימון ה-JWT. -
VAULT_CERT_PATH_ON_DISK: הנתיב לאישורי Vault במחשב המארח. לדוגמה,/local/vault/config. -
VAULT_CERT_PATH: הנתיב שבו נמצאים האישורים לחיבור ל-Vault בקונטיינר. לדוגמה,/tde-tls. אם לא מגדירים את המדיניות, המערכת תשתמש באישורים במאגר האישורים שמוגדר כברירת מחדל. -
KEK_URL: כתובת ה-URL המלאה של KEK ב-HashiCorp Vault. כדי לציין את HashiCorp Vault כספק ה-KMS, משתמשים ב-vaultכפרוטוקול, לדוגמהvault://127.0.0.1:8200/v1/secret/data/alloydb_kek. -
IMAGE_TAG: משתמשים ב-18.4.0בשביל קובץ האימג' העדכני של Debian או ב-18.4.0-ubiבשביל קובץ האימג' העדכני של UBI.
Thales CipherTrust KMS
כדי להפעיל את AlloyDB Omni עם Thales CipherTrust Manager, בוחרים את הכרטיסייה של סביבת זמן הריצה של הקונטיינר.
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v CIPHERTRUST_CERT_PATH_ON_DISK:CIPHERTRUST_CERT_PATH \ -e CIPHERTRUST_USER=CIPHERTRUST_USERNAME \ -e CIPHERTRUST_PASSWORD=CIPHERTRUST_PASSWORD \ -e CIPHERTRUST_CERT_PATH=CIPHERTRUST_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v CIPHERTRUST_CERT_PATH_ON_DISK:CIPHERTRUST_CERT_PATH \ -e CIPHERTRUST_USER=CIPHERTRUST_USERNAME \ -e CIPHERTRUST_PASSWORD=CIPHERTRUST_PASSWORD \ -e CIPHERTRUST_CERT_PATH=CIPHERTRUST_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v CIPHERTRUST_CERT_PATH_ON_DISK:CIPHERTRUST_CERT_PATH \ -e CIPHERTRUST_USER=CIPHERTRUST_USERNAME \ -e CIPHERTRUST_PASSWORD=CIPHERTRUST_PASSWORD \ -e CIPHERTRUST_CERT_PATH=CIPHERTRUST_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v CIPHERTRUST_CERT_PATH_ON_DISK:CIPHERTRUST_CERT_PATH \ -e CIPHERTRUST_USER=CIPHERTRUST_USERNAME \ -e CIPHERTRUST_PASSWORD=CIPHERTRUST_PASSWORD \ -e CIPHERTRUST_CERT_PATH=CIPHERTRUST_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
מחליפים את מה שכתוב בשדות הבאים:
-
CONTAINER_NAME: השם של מאגר התגים שרוצים ליצור. לדוגמה,alloydb-tde. -
DATA_DIR: הספרייה המקומית שרוצים לטעון כנפח הנתונים של AlloyDB Omni. לדוגמה,/local/data. -
CIPHERTRUST_USERNAME: שם המשתמש שמשמש לאימות באמצעות Thales CipherTrust Manager. -
CIPHERTRUST_PASSWORD: הסיסמה של המשתמש ב-Thales CipherTrust Manager. -
CIPHERTRUST_CERT_PATH_ON_DISK: הנתיב לאישורי ה-TLS של CipherTrust Manager במכונה המארחת. לדוגמה,/local/ciphertrust/certs. -
CIPHERTRUST_CERT_PATH: הנתיב שבו נמצאים האישורים לחיבור ל-CipherTrust Manager (ca.crt,tls.crtו-tls.key) בקונטיינר. לדוגמה,/tde-tls. אם המדיניות לא מוגדרת, המערכת תשתמש באישורים שבמאגר האישורים שמוגדר כברירת מחדל. -
KEK_URL: כתובת ה-URL המלאה של ה-KEK ב-Thales CipherTrust Manager. כדי לציין את Thales CipherTrust Manager כספק ה-KMS, משתמשים ב-ciphertrustכפרוטוקול, לדוגמה:ciphertrust://10.0.0.1:443/api/v1/vault/secrets/alloydb_kek. -
IMAGE_TAG: משתמשים ב-18.4.0בשביל קובץ האימג' העדכני של Debian או ב-18.4.0-ubiבשביל קובץ האימג' העדכני של UBI.
כדי להפעיל TDE לנתוני מטמון של מנוע מבוסס-עמודות שמועברים לאחסון SSD, מתחברים למכונה של מסד הנתונים ומריצים את השאילתה הבאה:
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';
מפעילים מחדש את שרת מסד הנתונים כדי שהשינויים ייכנסו לתוקף.
הפניה למדדי TDE
אפשר לראות את כל מדדי ה-TDE בסוכן המעקב של AlloyDB Omni. בטבלה הבאה מתואר כל מדד.
| שם | תיאור | תווית | יחידה | סוג |
|---|---|---|---|---|
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. |
|
מד | |
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. | לא רלוונטי | מיקרו-שניות | מונה |
tde_chill_cache_blocks_encrypted |
מספר הבלוקים במטמון המצב הקריר שמוצפנים. | לא רלוונטי | מונה | |
tde_chill_cache_blocks_decrypted |
מספר הבלוקים במטמון המקורר שפוענחו. | לא רלוונטי | מונה | |
tde_chill_cache_blocks_total_encryption_time_us |
הזמן הכולל שחלף בהצפנת בלוקים של מטמון במצב לא פעיל. | לא רלוונטי | מיקרו-שניות | דלפק |
tde_chill_cache_blocks_total_decryption_time_us |
הזמן הכולל שהושקע בפענוח של בלוק המטמון של Chill. | לא רלוונטי | מיקרו-שניות | מונה |
tde_ce_cache_ssd_blocks_encrypted |
מספר בלוקים של מטמון טורי שנשפכו לאחסון SSD שהוצפן. | לא רלוונטי | דלפק | |
tde_ce_cache_ssd_blocks_decrypted |
מספר בלוקים של מטמון טורי שנשפכו לאחסון SSD ופוענחו. | לא רלוונטי | מונה | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
משך הזמן הכולל שהוקדש להצפנת בלוקים של מטמון טורי שהועברו לאחסון SSD. | לא רלוונטי | מיקרו-שניות | דלפק |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
משך הזמן הכולל שנדרש לפענוח בלוקים של מטמון טורי שהועברו לאחסון SSD. | לא רלוונטי | מיקרו-שניות | דלפק |