בדף הזה מוסבר איך מפתחות הצפנה בניהול הלקוח (CMEK) פועלים עם משימות העברה של Database Migration Service.
כברירת מחדל, Database Migration Service (מ-Oracle ל-Cloud SQL ל-PostgreSQL) מצפין תוכן של לקוחות במצב מנוחה. שירות העברת מסדי נתונים (מ-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
אתם יכולים ליצור מפתחות CMEK באופן ידני כדי להגן על המשאבים של Database Migration Service (למעבר מ-Oracle ל-Cloud SQL ל-PostgreSQL) או להשתמש ב-Cloud KMS Autokey. עם Autokey, אוספי מפתחות ומפתחות נוצרים על פי דרישה כדי לתמוך ביצירה או בעדכון של משאבים ב-Database Migration Service (ל-Oracle ל-Cloud SQL ל-PostgreSQL). אם סוכני השירות שמשתמשים במפתחות לפעולות הצפנה ופענוח לא קיימים, הם נוצרים ומקבלים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף מופיע במאמר סקירה כללית על Autokey.
הסבר על חשבונות שירות
כשעבודות ההעברה שלכם ב-Database Migration Service מופעלות באמצעות CMEK, אתם צריכים להשתמש בחשבון שירות כדי לבקש גישה למפתח מ-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.
- מוודאים שלחשבון המשתמש שלכם מוקצית הרשאת אדמין להעברת מסד נתונים.
מפעילים את Cloud Key Management Service API, אם הוא עדיין לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (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 (יצירת מחזיק מפתחות).
- מוסיפים שם לצרור המפתחות. חשוב לשים לב לשם הזה כי תצטרכו אותו כשתעניקו למפתח גישה לחשבון השירות.
- מוסיפים מיקום של אוסף מפתחות.
- לוחצים על יצירה. ייפתח הדף 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 כדי לנהל את ההצפנה של הנתונים.
השבתה והפעלה מחדש של גרסאות מפתח
מומלץ לעיין בנושאים הבאים: