בדף הזה מוסבר איך מפתחות הצפנה בניהול הלקוח (CMEK) פועלים עם משימות העברה ב-Database Migration Service.
כברירת מחדל, Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL) מצפין את תוכן הלקוחות במצב מנוחה. Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL) מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנה כברירת מחדל של Google.
אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים ב-CMEK, כולל Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL). כשמשתמשים במפתחות של Cloud KMS, אפשר לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בהרשאות השימוש והגישה ובגבולות הקריפטוגרפיים שלהם. באמצעות Cloud KMS אתם יכולים גם לעקוב אחרי השימוש במפתחות, לצפות ביומני הביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה (KEK) הסימטריים שמגינים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שתגדירו את המשאבים באמצעות מפתחות CMEK, הגישה למשאבים של Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL) תהיה דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה מופיע במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
אזורים שבהם Database Migration Service תומך ב-CMEK
אפשר להשתמש ב-CMEK בכל המיקומים של Database Migration Service.
CMEK עם Cloud KMS Autokey
כדי להגן על המשאבים של Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL), אתם יכולים ליצור מפתחות CMEK באופן ידני או להשתמש ב-Cloud KMS Autokey. כשמשתמשים ב-Autokey, אוספי המפתחות והמפתחות נוצרים לפי דרישה כדי לתמוך ביצירת משאבים או בעדכון שלהם ב-Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL). אם עדיין לא קיימים סוכני שירות שמשתמשים במפתחות לפעולות הצפנה ופענוח, הם נוצרים ומוקצים להם התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף זמין במאמר סקירה כללית על Autokey.
הסבר על חשבונות שירות
כשמפעילים את CMEK במשימות ההעברה של Database Migration Service, צריך להשתמש בחשבון שירות כדי לבקש גישה למפתחות מ-Cloud Key Management Service.
כדי להשתמש ב-CMEK בפרויקט, צריך להיות לכם חשבון שירות ולתת למפתח גישה לחשבון השירות. חשבון השירות חייב להיות בפרויקט. חשבון השירות גלוי בכל האזורים.
הסבר על מפתחות
ב- Cloud Key Management Service, צריך ליצור אוסף מפתחות עם מפתח קריפטוגרפי, ולהגדיר לו מיקום. כשיוצרים משימת העברה חדשה ב-Database Migration Service, בוחרים את המפתח הזה כדי להצפין את משימת ההעברה.
כשיוצרים משימות העברה חדשות שמשתמשות ב-CMEK, צריך לדעת את מזהה המפתח ואת אזור המפתח. מסדי הנתונים של היעד צריכים להיות באותו אזור שבו נמצא ה-CMEK שמשויך למשימת ההעברה. אפשר ליצור פרויקט אחד גם למפתחות וגם למסדי הנתונים של היעד, או פרויקטים שונים לכל אחד מהם.
הפורמט של CMEK הוא:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
איך הופכים נתונים שמוצפנים באמצעות CMEK ללא נגישים באופן סופי?
יכול להיות שתרצו להשמיד באופן סופי נתונים שהוצפנו באמצעות CMEK. כדי לעשות את זה, צריך להשמיד את גרסת ה-CMEK. אי אפשר להשמיד את אוסף המפתחות או את המפתח, אבל אפשר להשמיד גרסאות של המפתח.
הגבלות
כשמשתמשים ב-CMEK, חלות ההגבלות הבאות:
אי אפשר לעדכן את ה-CMEK במשימת העברה שפועלת.
אפשר להשתמש ב-CMEK כדי להצפין נתונים ממסד הנתונים של המקור, אבל אי אפשר להשתמש במפתחות האלה כדי להצפין מטא-נתונים של משימת ההעברה, כמו מזהה משימת ההעברה, כתובת ה-IP של מסד הנתונים של המקור וכו'.
שימוש ב-CMEK
עכשיו, אחרי שהבנתם מה זה CMEK, אתם יכולים להגדיר חשבון שירות ומפתחות ל-CMEK. בנוסף, נסביר איך להגדיר משימת העברה לשימוש ב-CMEK.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloud ליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- מתקינים ומפעילים את Cloud SDK.
- מוודאים שלחשבון המשתמש שלכם הוקצה התפקיד "אדמין של Database Migration".
מפעילים את Cloud Key Management Service API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים- מפעילים את Database Migration Service API.
תהליך העבודה ליצירת משימות העברה ב-Database Migration Service עם CMEK
למשתמשי gcloud ו-API בלבד: ודאו שיש לכם חשבון שירות לכל פרויקט שדורש CMEK. מידע נוסף מופיע במאמר יצירת חשבון שירות.
יוצרים אוסף מפתחות ומפתח ומגדירים את המיקום של כל מפתח. המיקום הוא האזור Google Cloud .
מעתיקים או רושמים את מזהה המפתח (
KMS_KEY_ID) ואת המיקום של המפתח, ואת המזהה (KMS_KEYRING_ID) של אוסף המפתחות. המידע הזה נדרש כשנותנים למפתח גישה לחשבון השירות.נכנסים לפרויקט, יוצרים משימת העברה ב-Database Migration Service ומשתמשים ב-CMEK בקטע Advanced encryption options.
משימת ההעברה ב-Database Migration Service מופעלת עכשיו עם CMEK.
יצירה של חשבון שירות
צריך ליצור חשבון שירות לכל פרויקט שנדרש בו CMEK.
כדי לאפשר למשתמש לנהל חשבונות שירות, צריך להקצות לו את אחד מהתפקידים הבאים:
- משתמש בחשבון שירות (
roles/iam.serviceAccountUser): כולל הרשאות להצגת רשימה של חשבונות שירות, לקבלת פרטים על חשבון שירות ולהתחזות לחשבון שירות. - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin): כולל הרשאות להצגת רשימה של חשבונות שירות ולקבלת פרטים על חשבון שירות. כולל גם הרשאות ליצור, לעדכן ולמחוק חשבונות שירות, ולהציג או לשנות את המדיניות של Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL) בחשבון שירות.
נכון לעכשיו, אפשר להשתמש רק בפקודות gcloud כדי ליצור את סוג חשבון השירות שנדרש ל-CMEK.
כדי ליצור חשבון שירות באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud beta services identity create \ --service=datamigration.googleapis.com\ --project=PROJECT_ID
הפקודה הקודמת מחזירה שם של חשבון שירות. אתם משתמשים בשם של חשבון השירות הזה במהלך התהליך שמפורט בקטע מתן גישה למפתח של חשבון השירות.
יצירת מפתח
אתם יכולים ליצור את המפתח באותו פרויקט ב- Google Cloud שבו נמצאת משימת ההעברה ב-Database Migration Service, או בפרויקט נפרד של משתמש. המיקום של אוסף המפתחות ב-Cloud KMS צריך להיות זהה לאזור של מסד הנתונים של היעד שמשויך למשימת ההעברה. אין תמיכה במפתח שכולל מספר אזורים או אזור גלובלי. אם האזורים לא תואמים, אי אפשר ליצור את משימת ההעברה.
כדי ליצור מפתח Cloud KMS:
המסוף
- נכנסים לדף Migration jobs במסוף Google Cloud .
- לוחצים על Create key ring.
- מוסיפים Key ring name. חשוב לזכור את השם הזה, כי תצטרכו אותו כשתתנו למפתח גישה לחשבון השירות.
- מוסיפים מיקום של אוסף מפתחות.
- לוחצים על יצירה. נפתח הדף Create key.
- מוסיפים שם מפתח.
- בוחרים מטרה (סימטרית או אסימטרית).
- בוחרים תקופת רוטציה ותאריך התחלה.
- לוחצים על יצירה.
- בטבלה Keys, לוחצים על סמל האפשרויות הנוספות (3 נקודות) בעמודה האחרונה ובוחרים באפשרות Copy Resource ID או רושמים את המזהה. זהו
KMS_KEY_ID. צריך אתKMS_KEY_IDכשנותנים למפתח גישה לחשבון השירות.
gcloud
- יוצרים אוסף מפתחות חדש.
רשמו את השם הזה כי תצטרכו אותו כשתתנו למפתח גישה לחשבון השירות.gcloud kms keyrings create KMS_KEYRING_ID \ --location=REGION
- יוצרים מפתח באוסף המפתחות.
רשמו את השם הזה כי תצטרכו אותו כשתתנו למפתח גישה לחשבון השירות.gcloud kms keys create KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
מתן גישה למפתח לחשבון השירות
צריך לבצע את התהליך הזה רק אם משתמשים ב-gcloud או ב-API.
כדי לתת גישה לחשבון השירות, משתמשים בקוד הבא:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@datamigrationiam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
יצירת משימת העברה ב-Database Migration Service עם CMEK
כש יוצרים משימת העברה, אפשר להשתמש ב-CMEK כדי לנהל את הצפנת הנתונים.
השבתה והפעלה מחדש של גרסאות מפתחות
מומלץ לקרוא את הנושאים הבאים: