הגדרת CMEK לקטגוריות של יומנים

במאמר הזה מוסבר איך להגדיר מפתחות הצפנה בניהול הלקוח (CMEK) ליומנים שמאוחסנים במאגרי יומנים. במסמך הזה מוסבר גם איך לנהל את המפתחות האלה, ומהן המגבלות שקשורות לשימוש ב-CMEK.

בארגונים ובתיקיות, אפשר להגדיר CMEK כהגדרת ברירת מחדל של משאבים ל-Cloud Logging. כשמגדירים את Cloud Logging, כל מאגרי היומנים החדשים בארגון או בתיקייה מוצפנים באמצעות מפתח בניהול הלקוח. אם לא מספקים מפתח כשיוצרים מאגר יומנים, המערכת משתמשת במפתח שצוין בהגדרות ברירת המחדל של המשאב ב-Cloud Logging. מידע נוסף זמין במאמר הגדרת CMEK ל-Cloud Logging.

המידע במסמך הזה לא רלוונטי למאגרי נתונים של יכולת תצפית. אם אתם רוצים להגדיר קטגוריות של נתונים שניתנים למעקב, תוכלו לקרוא את המאמר הגדרת ברירות מחדל לקטגוריות של נתונים שניתנים למעקב.

סקירה כללית

כברירת מחדל, Cloud Logging מצפין את התוכן של הלקוחות במצב מנוחה. הרישום ביומן מטפל בהצפנה בשבילכם, בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת Google default encryption.

אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Logging. שימוש במפתחות Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. בנוסף, באמצעות Cloud KMS תוכלו לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות ההצפנה (KEK) הסימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.

אחרי שמגדירים את המשאבים עם CMEK, חוויית הגישה למשאבי Logging דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).

דרישות מוקדמות

כך עושים את זה:

  1. יש כמה מגבלות כשמשתמשים ב-CMEK. לפני שיוצרים קטגוריית יומנים עם הפעלה של CMEK, כדאי לעיין במגבלות.

  2. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  3. מגדירים את ה Google Cloud פרויקט שבו מתכננים ליצור את המפתחות:

    1. כדי לקבל את ההרשאות שנדרשות ליצירת מפתחות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של Cloud KMS (roles/cloudkms.admin) בפרויקט או במשאב אב. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

      יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

    2. הפעלת Cloud KMS API.

    3. יצירה של אוסף מפתחות ומפתחות

      ב-Cloud Logging אפשר להשתמש במפתח מכל אזור. עם זאת, כשיוצרים קטגוריית יעד ליומן, המיקום של קטגוריית היעד ליומן חייב להיות זהה למיקום של המפתח. למידע על אזורים נתמכים:

      אי אפשר להפעיל CMEK לקטגוריות של יומנים שנוצרו באזור global.

  4. מוודאים שיש לכם את ההרשאות הבאות ב-Cloud Logging בGoogle Cloud פרויקט שבו אתם מתכננים ליצור מאגרי יומנים:

    • logging.settings.get
    • logging.buckets.get
    • logging.buckets.list
    • logging.buckets.create
    • logging.buckets.update

הפעלת CMEK

אחרי שמבצעים את השלבים הנדרשים, פועלים לפי ההוראות האלה כדי להפעיל CMEK עבור מאגר יומנים ספציפי.

איך קובעים את מזהה חשבון השירות

כדי לזהות את מזהה חשבון השירות שמשויך למשאב Google Cloudשעליו יחול CMEK:

  1. מריצים את הפקודה הבאה:gcloud logging settings describe

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

    לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

    • ‫BUCKET_PROJECT_ID: השם של Google Cloud הפרויקט שבו אתם מתכננים ליצור את מאגר היומנים.

    הפקודה הקודמת יוצרת חשבון שירות למשאב שצוין, אם הוא עדיין לא קיים, ומחזירה את המזהה של חשבון השירות הזה בשדה kmsServiceAccountId:

    kmsServiceAccountId: KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    loggingServiceAccountId: SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com
    name: projects/BUCKET_PROJECT_ID/settings
    

    בשדה kmsServiceAccountId מופיע חשבון השירות שמשמש את Cloud Logging כדי לקרוא ל-Cloud Key Management Service.

  2. אם השדה KMS_SERVICE_ACCT_NAME הוא בפורמט cmek-pPROJECT_NUMBER, ואם אתם משתמשים ב-VPC Service Controls או מפעילים שיתוף מוגבל לפי דומיין, צריך לקבוע אם אתם צריכים להעביר את חשבון השירות של CMEK. מידע על המקרים שבהם צריך לבצע העברה ועל השלבים לביצוע ההעברה זמין במאמר פתרון בעיות ב-VPC Service Controls ובשיתוף מוגבל לפי דומיינים.

הקצאת התפקיד 'הצפנה/פענוח'

כשמגדירים CMEK ברמת מאגר היומנים, צריך לתת לחשבון השירות הרשאה להשתמש ב-Cloud KMS על ידי הקצאת התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות שמזוהה בשדה kmsServiceAccountId:

gcloud kms keys add-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member=serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

לפני שמריצים את הפקודה הקודמת, מחליפים את המשתנים הבאים בערכים:

  • ‫KMS_PROJECT_ID: המזהה האלפאנומרי הייחודי, שמורכב מ Google Cloud שם הפרויקט וממספר שהוקצה באופן אקראי, של הפרויקט Google Cloud שמריץ את Cloud KMS. במאמר זיהוי פרויקטים מוסבר איך מקבלים את המזהה הזה.
  • ‫KMS_SERVICE_ACCT_NAME: השם של חשבון השירות שמוצג בשדה kmsServiceAccountId בתגובה של הפקודה gcloud logging settings describe.
  • ‫KMS_KEY_LOCATION: האזור של מפתח Cloud KMS.
  • ‫KMS_KEY_RING: השם של אוסף המפתחות ב-Cloud KMS.
  • ‫KMS_KEY_NAME: שם המפתח של Cloud KMS. הפורמט הוא כזה: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

יצירת קטגוריית יומנים וציון מפתח Cloud KMS

כדי ליצור קטגוריה של יומנים ולהפעיל CMEK עבור הקטגוריה, מריצים את הפקודה הבאה של gcloud logging buckets create:

gcloud logging buckets create BUCKET_ID \
--location=LOCATION \
--cmek-kms-key-name=KMS_KEY_NAME \
--project=BUCKET_PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את המשתנים הבאים בערכים:

  • ‫BUCKET_ID: השם או המזהה של קטגוריה ביומן.
  • ‫LOCATION: המיקום של מאגר היומנים.
  • ‫KMS_KEY_NAME: שם המפתח של Cloud KMS. הפורמט הוא כזה: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.
  • ‫BUCKET_PROJECT_ID: השם של Google Cloud הפרויקט שבו ייצור מאגר היומנים.

אימות ההפעלה של המפתח

כדי לוודא שיצרתם בהצלחה מאגר יומנים עם הפעלה של CMEK, מריצים את הפקודה הבאה של gcloud logging buckets list:

gcloud logging buckets list --project=BUCKET_PROJECT_ID

לפני שמריצים את הפקודה הקודמת, מחליפים את מה שכתוב בשדות הבאים:

  • ‫BUCKET_PROJECT_ID: השם של Google Cloud הפרויקט שבו מאוחסנת קטגוריית היומנים.

בפלט הטבלאי, מופיעה עמודה עם התווית CMEK. אם הערך בעמודה CMEK הוא TRUE, ‏ CMEK מופעל עבור קטגוריית היומנים.

כדי לראות את הפרטים של מאגר יומנים ספציפי, כולל פרטי המפתח, מריצים את הפקודה הבאה:

gcloud logging buckets describe BUCKET_ID --location=LOCATION --project=BUCKET_PROJECT_ID

ניהול מפתח Cloud KMS

בקטעים הבאים מוסבר איך לעדכן קטגוריית יומנים כדי להשתמש בגרסה העדכנית ביותר של מפתח ראשי של Cloud KMS. הם גם מתארים איך לשנות את מפתח Cloud KMS, לבטל את הגישה אליו ולהשבית אותו.

החלפת מפתח Cloud KMS

כשיוצרים מפתח Cloud KMS, אפשר להגדיר תקופת שימוש בסבב. אפשר גם להחליף מפתח של Cloud KMS באופן ידני. בכל פעם שמבצעים רוטציה למפתח, נוצרת גרסה חדשה של המפתח.

אם מבצעים רוטציה למפתח Cloud KMS, גרסת המפתח החדשה חלה רק על קטגוריות של יומנים שנוצרו אחרי הרוטציה של המפתח. אם המפתח נמצא בשימוש במאגר יומנים קיים, סיבוב המפתח לא משנה את האופן שבו מאגר היומנים מגן על הנתונים שלו.

לדוגמה, נניח שאתם יוצרים מאגר יומנים ומפעילים CMEK, ואז מבצעים רוטציה של מפתח Cloud KMS. קטגוריית היומנים שיצרתם לא משתמשת בגרסת המפתח החדשה, אלא ממשיכה להגן על הנתונים שלה באמצעות גרסת המפתח שסומנה כראשית כשקטגוריית היומנים נוצרה.

כדי לעדכן מאגר נתוני יומנים לשימוש בגרסה העדכנית ביותר של מפתח ראשי של Cloud KMS, מבצעים את הפעולות הבאות:

  1. מזהים את מפתח Cloud KMS הנוכחי של מאגר היומנים. מידע נוסף זמין במאמר בנושא אימות של הפעלת המפתח.
  2. מזהים מפתח Cloud KMS אחר שאפשר להשתמש בו. אם באוסף המפתחות יש רק מפתח אחד, לוחצים על יצירת מפתח.
  3. משנים את מפתח Cloud KMS של מאגר היומנים למפתח Cloud KMS שנוצר בשלב הקודם.
  4. משנים את מפתח Cloud KMS של מאגר היומנים למפתח Cloud KMS המקורי.

שינוי מפתח Cloud KMS

כדי לשנות את מפתח Cloud KMS שמשויך לקטגוריית היומנים, יוצרים מפתח ומעדכנים את הגדרות ה-CMEK של קטגוריית היומנים:

gcloud logging buckets update BUCKET_ID --location=LOCATION \
--cmek-kms-key-name=NEW_KMS_KEY_NAME --project=BUCKET_PROJECT_ID
  • ‫BUCKET_ID: השם או המזהה של קטגוריה ביומן.
  • ‫LOCATION: המיקום של מאגר היומנים.
  • ‫NEW_KMS_KEY_NAME: השם של המפתח החדש.
  • ‫BUCKET_PROJECT_ID: השם של Google Cloud הפרויקט שבו מאוחסנת קטגוריית היומנים.

שלילת הגישה למפתח Cloud KMS

כדי לבטל את הגישה של Logging למפתח Cloud KMS בכל שלב, צריך להסיר את הרשאת ה-IAM של חשבון השירות שהוגדר עבור המפתח הזה.

אם מסירים את הגישה של Logging למפתח, יכול להיות שיעברו עד שעה לפני שהשינוי ייכנס לתוקף.

אם יש לכם מערך נתונים מקושר של BigQuery,‏ BigQuery לא יכול להשתמש בגישה הזו כדי להחיל את המפתח על טבלה חדשה של BigQuery. אם רוצים להשתמש במפתח בטבלה ב-BigQuery שלא מקושרת לרישום ביומן, צריך לפעול לפי מאמרי העזרה של BigQuery. אם מבטלים את הגישה של רישום ביומן למפתח, ויש לכם קבוצת נתונים מקושרת ב-BigQuery, אז הגישה של BigQuery לאותו מפתח תבוטל גם כן.

אי אפשר לבטל את הגישה של BigQuery למפתח של מערך הנתונים המקושר ב-BigQuery בלי לבטל את הגישה של Logging.

מידע נוסף על ההשפעה של ביטול הגישה מופיע בקטע מגבלות.

כדי להסיר את הגישה של Logging למפתח, מריצים את הפקודה הבאה:

gcloud kms keys remove-iam-policy-binding \
--project=KMS_PROJECT_ID \
--member=serviceAccount:KMS_SERVICE_ACCT_NAME@gcp-sa-logging.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

לפני שמריצים את הפקודה הקודמת, מחליפים את המשתנים הבאים בערכים:

  • ‫KMS_PROJECT_ID: המזהה האלפאנומרי הייחודי, שמורכב מ Google Cloud שם הפרויקט וממספר שהוקצה באופן אקראי, של הפרויקט Google Cloud שמריץ את Cloud KMS. במאמר זיהוי פרויקטים מוסבר איך מקבלים את המזהה הזה.
  • ‫KMS_SERVICE_ACCT_NAME: השם של חשבון השירות שמוצג בשדה kmsServiceAccountId בתגובה של הפקודה gcloud logging settings describe.
  • ‫KMS_KEY_LOCATION: האזור של מפתח Cloud KMS.
  • ‫KMS_KEY_RING: השם של אוסף המפתחות ב-Cloud KMS.
  • ‫KMS_KEY_NAME: שם המפתח של Cloud KMS. הפורמט הוא כזה: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY.

מגבלות

אלה המגבלות הידועות.

CMEK משבית את Error Reporting

אם רוצים להשתמש ב-Error Reporting, לא מפעילים מפתחות הצפנה בניהול הלקוח (CMEK) בדלי היומנים. מידע נוסף זמין במאמר פתרון בעיות.

אי אפשר להסיר CMEK ממאגרי יומנים

אי אפשר להגדיר מחדש מאגרי יומנים כדי לשנות או להסיר את CMEK.

ירידה ברמת השירות בגלל שמפתח Cloud KMS לא זמין

מפתח Cloud KMS נחשב לזמין ונגיש על ידי Logging אם מתקיימים שני התנאים הבאים:

  • המפתח מופעל.
  • לחשבון השירות של שירות הרישום ביומן יש הרשאות הצפנה ופענוח במפתח.

מומלץ מאוד לוודא שכל המפתחות מוגדרים בצורה נכונה וזמינים תמיד.

אובדן של תוכנית התאוששות מאסון (DR)

אם יש כשלים קריטיים באחסון הראשי של Cloud Logging, אז Logging משכפל את נתוני הרישום לקבצים של התאוששות מאסון. כש-CMEK מופעל למשאב, כמו Google Cloud ארגון, היומנים ששייכים למשאב הזה מוגנים על ידי מפתח ה-CMEK שהוגדר. אם מפתח ה-CMEK לא נגיש, אי אפשר לכתוב את קובצי השחזור של אותו משאב.

אובדן של קבצים לשחזור אחרי אסון לא משפיע על פעולות רישום רגילות ביומן. עם זאת, במקרה של אסון שקשור לאחסון, יכול להיות שלא תהיה ל-Cloud Logging אפשרות לשחזר יומנים ממשאבים שבהם לא הוגדר CMEK בצורה תקינה.

מגבלות על התמיכה

אם המפתח לא מוגדר כמו שצריך או שהוא לא זמין, Cloud Customer Care לא יכול לקרוא את היומנים של המשאב.

ירידה בביצועים של שאילתות

כשמפתח הצפנה בניהול הלקוח לא נגיש, Cloud Logging ממשיך להצפין את הנתונים ולאחסן אותם בדלי יומנים. עם זאת, Cloud Logging לא יכול לבצע אופטימיזציות ברקע של הנתונים האלה. אם הגישה למפתח משוחזרת, הנתונים הופכים לזמינים. עם זאת, הנתונים מאוחסנים בהתחלה במצב לא אופטימלי, וביצועי השאילתות עלולים להיפגע.

ירידה ברמת השירות בגלל שמפתח Cloud EKM לא זמין

כשמשתמשים במפתח Cloud EKM,ל- Google Cloud אין שליטה על הזמינות של המפתח שמנוהל באופן חיצוני במערכת של השותף החיצוני לניהול מפתחות. ב-CMEK ברמת הקטגוריה, אם מפתח שמנוהל חיצונית לא זמין, Cloud Logging ממשיך לאחסן יומנים בקטגוריות של יומנים, אבל המשתמשים לא יכולים לגשת ליומנים האלה.

למידע נוסף על שיקולים וחלופות אפשריות לשימוש במפתחות חיצוניים, אפשר לעיין במאמרי העזרה בנושא Cloud External Key Manager.

מיקוד לפי אזורים

כשיוצרים מאגר יומנים ומפעילים CMEK, צריך להשתמש במפתח שהאזור שלו תואם להיקף האזורי של הנתונים. אי אפשר להגדיר CMEK למאגרי יומנים שנוצרו בglobal אזור.

זמינות של ספריות לקוח

ספריות לקוח לרישום ביומן לא מספקות שיטות להגדרת CMEK.

מכסות

כשמשתמשים ב-CMEK ב-Logging, הפרויקטים יכולים לנצל את מכסות הבקשות הקריפטוגרפיות של Cloud KMS. לדוגמה, הפעלת CMEK בקטגוריית יומנים יכולה לנצל את המכסות האלה. פעולות הצפנה ופענוח באמצעות מפתחות CMEK משפיעות על מכסות Cloud KMS רק אם משתמשים במפתחות חומרה (Cloud HSM) או במפתחות חיצוניים (Cloud EKM). מידע נוסף זמין במאמר בנושא מכסות ב-Cloud KMS.

פרטים על מגבלות השימוש ב-Logging זמינים במאמר מכסות ומגבלות.

פתרון בעיות בהגדרות

מידע על פתרון בעיות בהגדרת CMEK זמין במאמר פתרון בעיות בהגדרות של CMEK ושל הארגון.