הגדרת 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. מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

    gcloud init

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

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

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

    2. הפעלת Cloud KMS API.

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

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

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

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

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

הפעלת CMEK

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

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

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

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

    gcloud logging settings describe --project=BUCKET_PROJECT_ID
    

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

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

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

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

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

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

כשמגדירים 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.s3ns-system.iam.gserviceaccount.com \
--role=roles/cloudkms.cryptoKeyEncrypterDecrypter \
--location=KMS_KEY_LOCATION \
--keyring=KMS_KEY_RING \
KMS_KEY_NAME

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

  • ‫KMS_PROJECT_ID: המזהה האלפאנומרי הייחודי, שמורכב מ Cloud de Confiance שם הפרויקט וממספר שהוקצה באופן אקראי, של הפרויקט Cloud de Confiance שמריץ את 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: השם של Cloud de Confiance הפרויקט שבו ייצור מאגר היומנים.

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

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

gcloud logging buckets list --project=BUCKET_PROJECT_ID

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

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

בפלט הטבלאי, מופיעה עמודה עם התווית 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: השם של Cloud de Confiance הפרויקט שבו מאוחסנת קטגוריית היומנים.

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

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

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

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

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

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

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

  • ‫KMS_PROJECT_ID: המזהה האלפאנומרי הייחודי, שמורכב מ Cloud de Confiance שם הפרויקט וממספר שהוקצה באופן אקראי, של הפרויקט Cloud de Confiance שמריץ את 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 ממאגרי יומנים

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

מכסות

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

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

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

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