כברירת מחדל, Datastream מצפין את התוכן של הלקוחות במצב מנוחה. Datastream מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.
אם אתם רוצים לשלוט במפתחות ההצפנה שלכם, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים ב-CMEK, כולל Datastream. שימוש במפתחות Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. שימוש ב-Cloud KMS מאפשר גם לעקוב אחרי השימוש במפתחות, לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של המפתחות הסימטריים להצפנת מפתחות (KEK) שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שמגדירים את המשאבים עם CMEK, חוויית הגישה למשאבי Datastream דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
בדף הזה מוסבר איך מפתחות הצפנה בניהול הלקוח (CMEK) פועלים עם Datastream.
האם הצפנה באמצעות מפתחות שמוגדרים על ידי הלקוח מתאימה לכם?
הצפנה לפי מפתחות בניהול הלקוח (CMEK) מיועדת לארגונים שיש להם נתונים רגישים או נתונים בפיקוח, שדורשים ניהול של מפתחות ההצפנה.
הצפנה בניהול Google לעומת הצפנה בניהול הלקוח
התכונה CMEK מאפשרת לכם להשתמש במפתחות קריפטוגרפיים משלכם כדי להצפין נתונים במנוחה ב-Datastream. אחרי שמוסיפים CMEK, בכל פעם שמתבצעת קריאה ל-API, Datastream משתמש במפתח שלכם כדי לגשת לנתונים.
Datastream משתמש במפתחות להצפנת נתונים (DEK) ובמפתחות להצפנת מפתחות הצפנה (KEK) בניהול Google כדי להצפין את Datastream. יש שתי רמות של הצפנה:
- מפתח ה-DEK מצפין את הנתונים.
- מפתח ה-KEK מצפין את ה-DEK.
Datastream מאחסן את ה-DEK המוצפן לצד הנתונים המוצפנים, ו-Google מנהלת את ה-KEK של Google. עם CMEK, אתם יוצרים מפתח שעוטף את ה-KEK של Google. CMEK מאפשר לכם ליצור, לבטל ולמחוק את ה-KEK.
כל מפתחות ה-CMEK, כולל מפתחות תוכנה, מפתחות חומרה ומפתחות חיצוניים, מנוהלים באמצעות Cloud Key Management Service (KMS) API.
באילו מיקומים אפשר להשתמש בזרמי Datastream עם הפעלת CMEK?
CMEK זמין בכל המיקומים של Datastream.
הסבר על חשבונות שירות
כשמפעילים CMEK בזרמי Datastream, צריך להשתמש בחשבון שירות כדי לבקש גישה למפתח מ-Cloud Key Management Service.
כדי להשתמש ב-CMEK בפרויקט, צריך חשבון שירות, וצריך לתת לחשבון השירות גישה למפתח. חשבון השירות צריך להיות קיים בתוך הפרויקט. חשבון השירות גלוי בכל האזורים.
אם משתמשים במסוף כדי ליצור זרם, Datastream יוצר את חשבון השירות באופן אוטומטי כשבוחרים לראשונה באפשרות מפתח בניהול הלקוח (אם חשבון שירות עדיין לא קיים). אתם לא צריכים הרשאות מיוחדות בחשבון המשתמש שלכם כש-Datastream יוצר את חשבון השירות באופן אוטומטי.
הסבר על מפתחות
ב-Cloud Key Management Service, צריך ליצור אוסף מפתחות עם מפתח קריפטוגרפי, ולהגדיר מיקום. כשיוצרים מקור נתונים חדש ב-Datastream, בוחרים את המפתח הזה כדי להצפין את מקור הנתונים.
כשיוצרים סטרימינג חדש שמשתמש ב-CMEK, צריך לדעת את מזהה המפתח ואת אזור המפתח. צריך להוסיף את השידורים החדשים לאותו אזור שמשויך למפתח ה-CMEK של השידורים. אפשר ליצור פרויקט אחד לשני המפתחות ולזרמים, או פרויקטים שונים לכל אחד מהם.
הפורמט של CMEK הוא:
projects/[CMEK_ENABLED_PROJECT]/locations/[REGION]/keyRings/[RING_NAME]/cryptoKeys/[KEYNAME]
אם ל-Datastream אין גישה למפתח (לדוגמה, אם משביתים את גרסת המפתח), המערכת משנה את הסטטוס של מקור הנתונים ל-FAILED ומוצגת הודעת שגיאה רלוונטית. אחרי שפותרים את הבעיות שקשורות להודעת השגיאה כדי שהמפתח יהיה נגיש שוב, Datastream מפעיל מחדש את הזרם באופן אוטומטי.
מנהלי מפתחות חיצוניים
אתם יכולים להשתמש במפתחות שמאוחסנים במנהלי מפתחות חיצוניים, כמו Fortanix, Ionic או Thales, בתור CMEK. מידע על שימוש במפתחות חיצוניים עם Cloud Key Management Service זמין במאמר Cloud External Key Manager.
איך אפשר למנוע גישה לנתונים מוצפנים באמצעות CMEK באופן קבוע?
יכול להיות שיהיו מצבים שבהם תרצו להשמיד באופן סופי נתונים שהוצפנו באמצעות CMEK. כדי לעשות את זה, צריך להשמיד את הגרסה של CMEK. אי אפשר להשמיד את אוסף המפתחות או את המפתח, אבל אפשר להשמיד גרסאות של מפתחות.
הגבלות
ההגבלות הבאות חלות כשמשתמשים ב-CMEK:
אי אפשר לעדכן את CMEK בזרם פעיל.
אפשר להשתמש ב-CMEK כדי להצפין שורות ממסד הנתונים של המקור, אבל אי אפשר להשתמש במפתחות האלה כדי להצפין מטא-נתונים של הזרם, כמו מזהה הזרם, כתובת ה-IP של מסד הנתונים של המקור או השמות של הטבלאות במסד הנתונים של המקור.
שימוש ב-CMEK
עכשיו, אחרי שהבנתם מה זה CMEK, אתם יכולים להגדיר חשבון שירות ומפתחות ל-CMEK. בנוסף, נסביר איך להגדיר את Datastream לשימוש ב-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.
- מוודאים שחשבון המשתמש שלכם כולל את תפקיד האדמין של Datastream.
מפעילים את Cloud Key Management Service API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידים- מפעילים את Datastream API.
תהליך העבודה ליצירת סטרימינג ב-Datastream עם CMEK
- משתמשי gcloud ו-API בלבד: מוודאים שיש לכם חשבון שירות לכל פרויקט שנדרש בו CMEK. אם אין לכם חשבון שירות, כאן מוסבר איך ליצור חשבון שירות.
- יוצרים אוסף מפתחות ומפתח ומגדירים את המיקום של כל מפתח. המיקום הוא Google Cloud האזור.
- משתמשי gcloud ו-API בלבד: נותנים למפתח גישה לחשבון השירות.
- מעתיקים או רושמים את מזהה המפתח (
KMS_KEY_ID) ואת המיקום של המפתח, ואת המזהה (KMS_KEYRING_ID) של אוסף המפתחות. תצטרכו את המידע הזה כדי להעניק למפתח גישה לחשבון השירות. - עוברים לפרויקט ויוצרים מקור נתונים ב-Datastream עם האפשרויות הבאות:
- אותו מיקום כמו CMEK
- הגדרת CMEK
- מזהה ה-CMEK
ההצפנה באמצעות CMEK מופעלת עכשיו בזרם שלכם ב-Datastream.
יצירה של חשבון שירות
צריך ליצור חשבון שירות לכל פרויקט שנדרש בו CMEK.
כדי לאפשר למשתמש לנהל חשבונות שירות, צריך להקצות לו אחד מהתפקידים הבאים:
- משתמש בחשבון שירות (
roles/iam.serviceAccountUser): כולל הרשאות להצגת רשימה של חשבונות שירות, לקבלת פרטים על חשבון שירות ולחיקוי של חשבון שירות. - אדמין בחשבון שירות (
roles/iam.serviceAccountAdmin): כולל הרשאות להצגת רשימה של חשבונות שירות ולקבלת פרטים על חשבון שירות. התפקיד כולל גם הרשאות ליצור, לעדכן ולמחוק חשבונות שירות, ולצפות במדיניות של Datastream בחשבון שירות או לשנות אותה.
אפשר להשתמש רק בפקודות gcloud כדי ליצור את סוג חשבון השירות שנדרש ל-CMEK. אם אתם משתמשים במסוף, Datastream יוצר בשבילכם את חשבון השירות הזה באופן אוטומטי.
כדי ליצור חשבון שירות באמצעות gcloud, מריצים את הפקודה הבאה:
gcloud beta services identity create \ --service=datastream.googleapis.com \ --project=PROJECT_ID
הפקודה הקודמת מחזירה את השם של חשבון השירות. משתמשים בשם הזה של חשבון השירות במהלך התהליך שמתואר במאמר מתן גישה למפתח לחשבון השירות.
יצירת מפתח
אפשר ליצור את המפתח באותו Google Cloud פרויקט שבו נמצא הזרם ב-Datastream, או בפרויקט משתמש נפרד. המיקום של אוסף המפתחות ב-Cloud KMS צריך להיות זהה לאזור שבו רוצים ליצור את הזרם. מפתח של אזור גלובלי או של כמה אזורים לא יעבוד. אם האזורים לא תואמים, לא תוכלו ליצור את הסטרימינג.
כדי ליצור מפתח Cloud KMS:
המסוף
- נכנסים לדף Cryptographic keys במסוף 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=GCP_REGION
- יוצרים מפתח באוסף המפתחות.
חשוב לרשום את השם הזה כי תצטרכו אותו כשמעניקים למפתח גישה לחשבון השירות.gcloud kms keys create KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --purpose=encryption
מעניקים למפתח גישה לחשבון השירות
צריך לבצע את התהליך הזה רק אם משתמשים ב-gcloud או ב-API.
כדי להעניק גישה לחשבון השירות, משתמשים בקוד הבא:
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --location=GCP_REGION \ --keyring=KMS_KEYRING_ID \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-datastream.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
יצירת מקור נתונים ב-Datastream עם CMEK
במסגרת יצירת מקור נתונים ב-Datastream, אתם יכולים להשתמש ב-CMEK כדי לנהל את ההצפנה של הנתונים.
המאמרים הבאים
- איך משביתים גרסת מפתח פעילה
- במאמר הפעלה של גרסת מפתח שהושבתה מוסבר איך להפעיל מחדש גרסת מפתח.