כדי להגן על נתונים במנוחה באשכולות ובגיבויים של AlloyDB ל-PostgreSQL באמצעות מפתחות שבשליטתכם, אתם יכולים ליצור, לאשר, להחיל ולנהל מפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud Key Management Service (Cloud KMS).
יצירה ואישור של מפתח CMEK ל-AlloyDB
יוצרים מפתח ב-Cloud KMS. ב-AlloyDB אפשר להשתמש בסוגי המפתחות הבאים:
המפתח צריך להיות באותו מיקום שבו נמצא אשכול AlloyDB. לדוגמה, אשכול AlloyDB שנמצא ב-
us-west1יכול להשתמש רק במפתחות ב-us-west1.אם כבר יש לכם מפתח Cloud KMS במיקום הנכון, אתם יכולים לדלג על השלב הזה.
נותנים ל-AlloyDB גישה למפתח.
באמצעות ה-CLI של Google Cloud, יוצרים ומציגים את סוכן השירות, או מציגים אותו אם החשבון כבר קיים:
gcloud beta services identity create --service=alloydb.googleapis.com \ --project=PROJECTהפקודה
gcloud beta services identity createיוצרת או מקבלת את סוכן השירות שבו AlloyDB יכול להשתמש כדי לגשת למפתח Cloud KMS בשמכם.המזהה של סוכן השירות דומה לכתובת אימייל:
Service identity created: service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.comמקצים לסוכן השירות את התפקיד "הצפנה/פענוח של CryptoKey ב-Cloud KMS" (
roles/cloudkms.cryptoKeyEncrypterDecrypter):gcloud kms keys add-iam-policy-binding KEY \ --location=REGION \ --keyring=KEYRING \ --project=PROJECT \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-alloydb.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypterמחליפים את מה שכתוב בשדות הבאים:
KEY: מזהה המפתח ב-Cloud KMS.
REGION: האזור של המפתח, לדוגמהus-central1.
KEYRING: המזהה של אוסף המפתחות של המפתח ב-Cloud KMS.
PROJECT: מזהה הפרויקט של המפתח.
PROJECT_NUMBER: מספר הפרויקט של אשכול AlloyDB.
התפקיד הזה נותן לסוכן השירות הרשאה להצפין ולפענח באמצעות המפתח של Cloud KMS. מידע נוסף על התפקידים וההרשאות ב-Cloud KMS מופיע במאמר הרשאות ותפקידים ב-Cloud KMS.
יצירת אשכול מוצפן באמצעות CMEK
כשיוצרים אשכול חדש, אפשר לבחור אם להצפין את האשכול באמצעות הצפנה שמוגדרת כברירת מחדל ומנוהלת על ידי Google, או להשתמש במפתח CMEK במקום זאת. מידע נוסף זמין במאמר יצירת אשכול והמכונה הראשית שלו.
איך בודקים את שיטת ההצפנה ואת מפתח ה-CMEK של האשכול
המסוף
בעמודה Encryption בדף Clusters מוצג אם כל אשכול בפרויקט משתמש בהצפנה בניהול Google או ב-CMEK.
כדי לראות את הפרטים של מפתח באשכול שמשתמש ב-CMEK, לוחצים על השם שלו בעמודה Resource name. בשדה Encryption key בדף הפרטים שמוצג מופיע תיאור של המפתח, כולל קישור לדף הפרטים שלו ב-Cloud KMS.
gcloud
מפעילים את הפקודה gcloud alloydb clusters
describe:
gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGIONמחליפים את מה שכתוב בשדות הבאים:
CLUSTER: המזהה של האשכול שרוצים לתאר.
PROJECT: מזהה הפרויקט של האשכול.
REGION: האזור של האשכול, לדוגמהus-central1.
הפלט כולל שדה encryptionInfo עם סיכום של ההצפנה באשכול.
החלת CMEK על גיבויים
כשיוצרים גיבוי חדש, אפשר לבחור אם להצפין אותו באמצעות הצפנה שמוגדרת כברירת מחדל ומנוהלת על ידי Google, או באמצעות מפתח CMEK. למידע נוסף, קראו את המאמרים יצירת גיבוי על פי דרישה והגדרת תוכנית גיבוי.
אתם יכולים גם להחיל מפתח CMEK על האשכול שנוצר כשמשחזרים מגיבוי, בלי קשר לשיטת ההצפנה של הגיבוי. מידע נוסף מופיע במאמר שחזור אשכול.
רוטציה של מפתחות באמצעות הצפנת CMEK
חשוב להבין את ההשלכות של החלפת מפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS, כשמשתמשים בהם באשכולות של AlloyDB.
כשמבצעים רוטציה של מפתח CMEK, זה מה שקורה לנתונים הקיימים ב-AlloyDB:
הגישה המיידית נמשכת: הנתונים נשארים מוצפנים באמצעות הגרסה המקורית של מפתח הצפנת הנתונים (DEK), כל עוד הגרסה הקודמת של המפתח עדיין זמינה ב-Cloud KMS, ולא הושבתה או נמחקה.
ההצפנה מחדש של כל הנתונים מתבצעת באופן ידני: כדי שכל הנתונים ב-AlloyDB יהיו בגרסה האחרונה של המפתח הראשי, צריך להצפין אותם מחדש.
כדי להצפין מחדש את האשכול הקיים באמצעות גרסה חדשה של מפתח CMEK, צריך לבצע פעולת גיבוי ושחזור:
יוצרים גיבוי של האשכול הקיים.
משחזרים את הגיבוי לאשכול חדש, ומציינים את גרסת המפתח הראשי החדשה של CMEK במהלך תהליך השחזור.
מידע נוסף זמין במאמר שחזור אשכול.
רוטציית מפתחות CMEK תכופה ב-AlloyDB דורשת תקורה תפעולית משמעותית. מכיוון שהנתונים הקיימים לא מוצפנים מחדש באופן אוטומטי, ומכיוון שהצפנה מחדש באופן ידני כוללת גיבוי מלא ושחזור לאשכול חדש, רוטציות תכופות יכולות להיות מסורבלות ולהשפיע על הזמינות או על מורכבות הניהול.
אתם יכולים למחוק בבטחה גרסאות ישנות של מפתחות CMEK ב-Cloud KMS רק אחרי שאתם מוודאים שכל הנתונים הרלוונטיים ב-AlloyDB הוצפנו מחדש באופן ידני, ושהנתונים משתמשים בגרסת מפתח חדשה יותר.
איך בודקים את שיטת ההצפנה ואת מפתח ה-CMEK של הגיבוי
המסוף
בעמודה Encryption בדף Backups מוצג אם כל גיבוי בפרויקט משתמש בהצפנה בניהול Google או ב-Cloud KMS (CMEK).
כדי לראות את הפרטים העיקריים של גיבוי באמצעות CMEK, לוחצים על Restore. בשדה Encryption key בחלונית הפרטים שמופיעה בהמשך יש תיאור של המפתח, כולל קישור לדף הפרטים שלו ב-Cloud KMS.
gcloud
מפעילים את הפקודה gcloud alloydb backups describe:
gcloud alloydb backups describe BACKUP_ID \
--project=PROJECT \
--region=REGIONמחליפים את מה שכתוב בשדות הבאים:
BACKUP_ID: המזהה של הגיבוי שרוצים לתאר.
PROJECT: מזהה הפרויקט של הגיבוי.
REGION: האזור של הגיבוי, לדוגמהus-central1.
הפלט כולל שדה encryptionInfo עם סיכום של הצפנת הגיבוי.
השבתת מפתח
אם תשביתו את מפתח ה-CMEK של אשכול, לא תוכלו לגשת לנתונים של האשכול עד שתפעילו מחדש את המפתח.
עם זאת, יכול להיות שיעברו עד שלוש שעות עד שהשבתת המפתח תתעדכן באשכול AlloyDB. כדי להשבית מפתח ולמנוע גישה לנתונים בלי לחכות להפצת המפתח, מבצעים את הפעולות הבאות:
מוחקים את המכונה הראשית של האשכול. מחיקת המכונה הראשית לא משפיעה על הנתונים של האשכול. אחרי שתפעילו מחדש את המפתח, תוכלו ליצור מכונה ראשית חדשה, כמו שמתואר בקטע הבא.
הפעלת מפתח
כדי להפעיל מפתח:
אם מחקתם את המכונה הראשית של האשכול לפני שהשבתתם את המפתח, צרו מכונה ראשית חדשה.
הפצת המפתח לאשכול יכולה להימשך עד שלוש שעות. הנתונים של האשכול יהיו נגישים ברגע שההפצה תסתיים.
הצגת יומני ביקורת של מפתח Cloud KMS
כדי להציג את יומני הביקורת שמשויכים למפתח CMEK מסוים:
מוודאים שהרישום ביומן מופעל ל-Cloud KMS API בפרויקט.
נכנסים לדף Logs Explorer במסוף Google Cloud .
כדי להגביל את רשומות היומן למפתח Cloud KMS, מוסיפים את השורות הבאות לכלי ליצירת שאילתות:
resource.type="cloudkms_cryptokey" resource.labels.location="REGION" resource.labels.key_ring_id="KEYRING" resource.labels.crypto_key_id="KEY"מחליפים את מה שכתוב בשדות הבאים:
REGION: האזור של המפתח, לדוגמהus-central1.
KEYRING: המזהה של אוסף המפתחות של המפתח ב-Cloud KMS.
KEY: מזהה המפתח ב-Cloud KMS.
בפעולות רגילות, פעולות הצפנה ופענוח נרשמות ביומן ברמת החומרה
INFO. הרשומות האלה נרשמות ביומן כשהמכונות באשכול AlloyDB מאמתות את מפתח Cloud KMS, בערך כל חמש דקות.אם AlloyDB לא מצליח לגשת למפתח, הפעולות מתועדות ביומן בתור
ERROR.
הצגת הצדקות גישה למפתח Cloud EKM
אם אתם משתמשים במפתח Cloud EKM, אתם יכולים להשתמש ב"הצדקות לגישה למפתחות" כדי לראות את הסיבה לכל בקשה של Cloud EKM. בנוסף, אתם יכולים לאשר או לדחות בקשה באופן אוטומטי על סמך ההצדקה שסופקה. איך רואים את ההצדקות ופועלים לפיהן