שימוש במפתחות הצפנה בניהול הלקוח (CMEK) להעברות רציפות

בדף הזה מוסבר איך מפתחות הצפנה בניהול הלקוח (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.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. מתקינים ומפעילים את Cloud SDK.
  7. מוודאים שלחשבון המשתמש שלכם מוקצית הרשאת אדמין להעברת מסד נתונים.

    כניסה לדף IAM

  8. מפעילים את Cloud Key Management Service API, אם הוא עדיין לא מופעל.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  9. מפעילים את Database Migration Service API.

    להפעלת ה-API

תהליך העבודה ליצירת משימות העברה ב-Database Migration Service באמצעות CMEK

  1. משתמשי gcloud ו-API בלבד: מוודאים שיש לכם חשבון שירות לכל פרויקט שנדרש בו CMEK. מידע נוסף מופיע במאמר יצירת חשבון שירות.

  2. יצירת אוסף מפתחות ומפתח והגדרת המיקום של כל מפתח. המיקום הוא Google Cloud האזור.

  3. מעניקים למפתח גישה לחשבון השירות.

  4. מעתיקים או רושמים את מזהה המפתח (KMS_KEY_ID) ואת המיקום של המפתח, ואת המזהה (KMS_KEYRING_ID) של מחזיק המפתחות. תצטרכו את הפרטים האלה כדי להעניק למפתח גישה לחשבון השירות.

  5. עוברים לפרויקט, יוצרים משימת העברה ב-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:

המסוף

  1. נכנסים לדף Migration jobs במסוף Google Cloud .

    עוברים אל Cryptographic keys

  2. לוחצים על Create key ring (יצירת מחזיק מפתחות).
  3. מוסיפים שם לצרור המפתחות. חשוב לשים לב לשם הזה כי תצטרכו אותו כשתעניקו למפתח גישה לחשבון השירות.
  4. מוסיפים מיקום של אוסף מפתחות.
  5. לוחצים על יצירה. ייפתח הדף Create key.
  6. מוסיפים שם מפתח.
  7. בוחרים מטרה (סימטרית או אסימטרית).
  8. בוחרים תקופת רוטציה ותאריך התחלה.
  9. לוחצים על יצירה.
  10. בטבלה Keys, לוחצים על סמל האפשרויות הנוספות (3 נקודות) בעמודה האחרונה ובוחרים באפשרות Copy Resource ID או רושמים את המזהה. זהו KMS_KEY_ID. תצטרכו את KMS_KEY_ID כדי להעניק למפתח גישה לחשבון השירות.

gcloud

  1. יוצרים אוסף מפתחות חדש.
    gcloud kms keyrings create KMS_KEYRING_ID \
    --location=REGION
      
    חשוב לרשום את השם הזה כי תצטרכו אותו כשמעניקים למפתח גישה לחשבון השירות.
  2. יוצרים מפתח באוסף המפתחות.
    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 כדי לנהל את ההצפנה של הנתונים.

השבתה והפעלה מחדש של גרסאות מפתח

מומלץ לעיין בנושאים הבאים: