במאמר הזה מוסבר איך למצוא ולצמצם שגיאות נפוצות בהגדרת CMEK. בנוסף, מוסבר כאן איך לזהות שגיאות שמתרחשות כשמגדירים הגדרות ברירת מחדל למשאבים ב-Cloud Logging. אפשר להגדיר את ההגדרות האלה לארגונים ולתיקיות.
פתרון בעיות בהגדרת המיקום של מאגרי יומנים חדשים שנוצרו על ידי המערכת
ניסיתם לעדכן את הגדרות ברירת המחדל של המשאבים ב-Cloud Logging בארגון או בתיקייה. העדכון שאתם מבצעים הוא קביעה או שינוי של הגדרת המיקום. עם זאת, הפקודה נכשלת ומוצגת שגיאה דומה לזו:
ERROR: (gcloud.logging.settings.update) INVALID_ARGUMENT: The KMS key location must match the storage location. Received KMS key location: us-central1, storage location: us-west1
- '@type': type.googleapis.com/google.rpc.DebugInfo
detail: '[ORIGINAL ERROR] generic::invalid_argument: The KMS key location must match
the storage location. Received KMS key location: us-central1, storage location:
us-west1 [google.rpc.error_details_ext] { message: "The KMS key location must
match the storage location. Received KMS key location: us-central1, storage location:
us-west1" }'
כדי לפתור את השגיאה, צריך להגדיר את המיקום בהגדרות ברירת המחדל של המשאב למיקום של מפתח Cloud Key Management Service.
פתרון בעיות שקשורות ל-CMEK
במהלך ההגדרה של CMEK, הפרויקט שמכיל את מפתח Cloud KMS מקבל הודעה על בעיות שקשורות אליו. Cloud de Confiance לדוגמה, העדכונים נכשלים אם KMS_KEY_NAME לא תקין, אם לחשבון השירות המשויך לא הוקצה התפקיד הנדרש Cloud Key Management Service CryptoKey Encrypter/Decrypter, או אם הגישה למפתח מושבתת.
אחרי שמגדירים CMEK, לפחות אחד מהדברים הבאים קורה:
קיבלתם התראה מ-Cloud Logging על בעיות בגישה ל-CMEK.
כשיוצרים פרויקטים חדשים בארגון
_Defaultאו בתיקייה, שמים לב ש-CMEK לא מופעל עבור דלי מאגרי היומנים_Required. Cloud de Confianceמתקבלות שגיאות כשקוראים ממאגרי יומנים עם CMEK מופעל, או כשמנסים ליצור או לעדכן מאגרי יומנים.
ההתראה כוללת מידע על הכשל ועל הפעולות שאפשר לבצע כדי לפתור את הבעיה:
| שגיאה | המלצה |
|---|---|
| הרשאת הגישה למפתח קריפטוגרפי נדחתה | לחשבון השירות של Logging שמשויך לפרויקט Cloud de Confiance אין הרשאות IAM מספיקות כדי לפעול על מפתח Cloud KMS שצוין. פועלים לפי ההוראות שמופיעות בשגיאה או מעיינים במסמכים הבאים: |
| המפתח הקריפטוגרפי מושבת | מפתח Cloud KMS שצוין הושבת. פועלים לפי ההוראות שמופיעות בשגיאה כדי להפעיל מחדש את המפתח. |
| המפתח הקריפטוגרפי הושמד | מפתח Cloud KMS שצוין הושמד. פועלים לפי ההוראות או מעיינים במסמכים הבאים: |
זיהוי הפרויקט שמכיל את מפתח Cloud KMS
כדי לזהות את המזהה של Cloud de Confiance הפרויקט שמכיל את מפתח ההצפנה שמשמש קטגוריית יומנים, תיקייה או ארגון:
פרויקט
gcloud logging settings describe --project=PROJECT_ID
לפני שמריצים את הפקודה, מחליפים את PROJECT_ID במזהה הפרויקט שמכיל את קטגוריית היומנים.
FOLDER
gcloud logging settings describe --folder=FOLDER_ID
לפני שמריצים את הפקודה, מחליפים את FOLDER_ID במזהה התיקייה.
ארגון
gcloud logging settings describe --organization=ORGANIZATION_ID
לפני שמריצים את הפקודה, מחליפים את ORGANIZATION_ID במזהה הארגון.
הפקודה הקודמת מחזירה מידע שדומה לזה:
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
במקרה של ארגונים ותיקיות, מוחזר גם השדה הבא:
kmsKeyName: projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KMS_KEY_RING/cryptoKeys/KEY
הערך בשדה kmsKeyName כולל את הפרויקט Cloud de Confiance שבו המפתח מאוחסן.
אימות השימושיות של המפתח
כדי לוודא שאפשר להשתמש במפתח, מריצים את הפקודה הבאה כדי להציג רשימה של כל המפתחות:
gcloud kms keys list \ --location=KMS_KEY_LOCATION \ --keyring=KMS_KEY_RING
הפקודה הזו מחזירה מידע על כל מפתח בפורמט טבלאי. השורה הראשונה של הפלט היא רשימה של שמות העמודות:
NAME PURPOSE ...
מוודאים שמפתח Cloud KMS מופיע בפלט של הפקודה בתור ENABLED, ושמטרת המפתח היא הצפנה סימטרית: בעמודה PURPOSE צריך להופיע ENCRYPT_DECRYPT ובעמודה PRIMARY_STATE צריך להופיע ENABLED.
אם צריך, יוצרים מפתח חדש.
אימות הגדרת ההרשאות
לחשבונות שירות שמשויכים להגדרות CMEK של הארגון צריך להיות התפקיד Cloud KMS CryptoKey Encrypter/Decrypter בשביל המפתח שהוגדר.
כדי להציג את מדיניות ה-IAM של המפתח, מריצים את הפקודה הבאה:
gcloud kms keys get-iam-policy KMS_KEY_NAME
אם צריך, מוסיפים למפתח את חשבון השירות שמכיל את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter.