בדף הזה מוסבר איך לתזמן השמדה קבועה של גרסת מפתח ב-Cloud Key Management Service. ב-Cloud KMS, חומר המפתח הקריפטוגרפי שמשמש להצפנה, לפענוח, לחתימה ולאימות של נתונים מאוחסן בגרסת מפתח. למפתח יכולות להיות אפס או יותר גרסאות מפתח. כשמבצעים רוטציה למפתח, נוצרת גרסת מפתח חדשה.
השמדה של גרסת מפתח פירושה שמחיקת חומר המפתח היא סופית. כשמשמידים גרסת מפתח, פרטים אחרים כמו שם המפתח ומספר גרסת המפתח לא נמחקים. אחרי שמפתח מושמד, אי אפשר לפענח נתונים שהוצפנו באמצעות גרסת המפתח.
היוצא מן הכלל היחיד הוא ייבוא מחדש של מפתח, שמאפשר לשחזר מפתח שייבאתם בעבר על ידי הזנת אותו חומר מפתח מקורי.
השמדת מפתחות היא בדרך כלל פעולה בלתי הפיכה, ולכן Cloud KMS לא מאפשר להשמיד גרסאות של מפתחות באופן מיידי. במקום זאת, מתזמנים השמדה של גרסת מפתח. גרסת המפתח נשארת במצב 'מתוזמן להשמדה' למשך זמן שניתן להגדרה. במהלך התקופה שבה גרסת המפתח מתוזמנת להשמדה, אפשר לשחזר אותה כדי לבטל את ההשמדה.
ברירת המחדל של משך הזמן שנקבע להשמדה היא 30 יום. אתם יכולים להגדיר משך זמן מותאם אישית להשמדה של מפתח במהלך יצירת המפתח. הארגון יכול לאכוף משך זמן מינימלי להשמדה על ידי הגדרת האילוץ משך הזמן המינימלי שנקבע להשמדה לכל מפתח במדיניות הארגון.
אפשר גם לנהל את הגישה למפתח באמצעות ניהול זהויות והרשאות גישה (IAM). פעולות IAM עקביות תוך שניות. מידע נוסף זמין במאמר שימוש ב-IAM.
אפשר גם להשבית גרסת מפתח באופן זמני. מומלץ להשבית גרסאות של מפתחות לפני שמגדירים שהן יושמדו, כחלק מהנהלים שלכם לוודא שהמפתח יכול להיות מושמד בצורה בטוחה. יכול להיות שבהתאם למדיניות הארגון, תצטרכו להשבית גרסת מפתח לפני שתוכלו לתזמן את ההשמדה שלה. מידע נוסף על שליטה בהשמדת גרסאות מפתחות באמצעות מדיניות הארגון זמין במאמר שליטה בהשמדת גרסאות מפתחות.
בהמשך המסמך הזה, כשמזמינים השמדה של מפתח, אנחנו מתייחסים לזה כאל השמדת המפתח, למרות שההשמדה לא מתבצעת באופן מיידי.
לפני שמתחילים
הסבר על הסיכונים
השמדה של גרסת מפתח היא פעולה קבועה. להשמדה של גרסת מפתח שעדיין נדרשת יש סיכונים, כולל הסיכונים הבאים:
הפסקת שירות: אם משמידים מפתח שנדרש להפעלת קונטיינר או מופע, יכול להיות שהשירותים או האפליקציות לא יהיו זמינים.
אובדן נתונים בלתי הפיך: אם משמידים מפתח ששימש להצפנת נתונים, הנתונים האלה לא יהיו זמינים יותר. נתונים שהוצפנו באמצעות מפתח שהושמד נחשבים מוצפנים באופן בלתי הפיך. במקרים מסוימים, השמדה של מפתח יכולה לגרום למחיקה סופית של משאבים מוצפנים.
בעיות רגולטוריות או בעיות תאימות: אם משמידים מפתח שנדרש לגישה לנתונים שחלים עליהם כללי שמירה לפני שתקופת השמירה מסתיימת, יכול להיות שזה יגרום להפרה של דרישה רגולטורית או דרישת תאימות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות להשמדה ולשחזור של גרסאות מפתח, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Cloud KMS Admin (roles/cloudkms.admin) במפתח.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
בדיקה אם גרסת המפתח נמצאת בשימוש
לפני שמשמידים גרסת מפתח, צריך לבצע את השלבים הבאים כדי לבדוק אם גרסת המפתח נמצאת בשימוש:
צופים בפרטים של מעקב השימוש במפתח עבור המפתח. אם יש משאבים שמוגנים על ידי גרסת המפתח שרוצים להשמיד, צריך להצפין אותם מחדש באמצעות גרסת מפתח אחרת.
מפעילים את היומנים לכל שירות או אפליקציה שיכולים להשתמש בגרסת המפתח.
מפעילים את היומנים בפרויקט Cloud KMS שמכיל את המפתח.
משביתים את גרסת המפתח. השבתה של גרסת המפתח מונעת את השימוש בה. אם גרסת המפתח מושבתת, כל ניסיון להשתמש בה ייכשל.
עוקבים אחרי היומנים עד שמוודאים שאף אפליקציה או שירות לא מסתמכים יותר על גרסת המפתח שהשבתתם. אם יש שגיאות שמצביעות על גישה שנכשלה לגרסת המפתח, צריך להגדיר את האפליקציה או המשאב לשימוש בגרסת מפתח אחרת.
משך הזמן שבו צריך לעקוב אחרי יומנים לפני השמדה של גרסת מפתח תלוי בסוג המפתח, בדפוס השימוש בו וברמת הרגישות שלו. לדוגמה, לפני השמדה של גרסת מפתח שמשמשת בתהליך שמופעל אחת לרבעון, צריך להשאיר את גרסת המפתח מושבתת עד שהתהליך הזה יסתיים בהצלחה.
בודקים את השימוש במפתח בהתאם לדרישות התאימות הרלוונטיות. לדוגמה, יכול להיות שגרסת המפתח והנתונים שהוצפנו באמצעותה כפופים לתקופות שמירת נתונים.
השלבים האלה עוזרים לכם לזהות אם עדיין נדרש מפתח, אבל הם לא יכולים להבטיח שגרסת מפתח מסוימת כבר לא נדרשת. הארגון שלכם צריך להטמיע נהלים והנחיות כדי לוודא שהשמדה של גרסת מפתח לא תגרום להשפעות שליליות.
השמדת גרסת מפתח
אפשר להשמיד גרסת מפתח שהופעלה או הושבתה.
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
מסמנים את התיבה לצד גרסת המפתח שרוצים לתזמן להשמדה.
לוחצים על השמדה בכותרת.
בהנחיית האישור, מזינים את שם המפתח ולוחצים על תזמון השמדה.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.
gcloud kms keys versions destroy KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION
מחליפים את מה שכתוב בשדות הבאים:
-
KEY_VERSION: מספר הגרסה של גרסת המפתח שרוצים להשמיד. -
KEY_NAME: השם של המפתח שרוצים להשמיד את הגרסה שלו. -
KEY_RING: השם של אוסף המפתחות שמכיל את המפתח. -
LOCATION: המיקום ב-Cloud KMS שבו נמצא אוסף המפתחות.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ולהתקין את ה-SDK של Cloud KMS C# .
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך לקרוא על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
משמידים גרסת מפתח על ידי קריאה לשיטה CryptoKeyVersions.destroy.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions/KEY_VERSION:destroy" \
--request "POST" \
--header "authorization: Bearer TOKEN"
אם אתם לא מצליחים להשמיד גרסת מפתח, יכול להיות שהארגון שלכם דורש להשבית גרסאות מפתח לפני השמדה. נסו להשבית את גרסת המפתח לפני השמדה.
כששולחים את בקשת ההשמדה, הסטטוס של גרסת המפתח משתנה ל'מתוזמן להשמדה'. אחרי שחלף הזמן שמוגדר למשך הזמן שבו המפתח מתוזמן להשמדה, הסטטוס של גרסת המפתח משתנה ל'הושמד'. המשמעות היא שהתחילה מחיקה לוגית של חומר המפתח ממערכות פעילות, והלקוח לא יכול לשחזר את חומר המפתח. חומר המפתח יכול להישאר במערכות של Google למשך 45 ימים ממועד ההשמדה המתוזמן.
כדי לקבל התראה כשגרסת מפתח מתוזמנת להשמדה, ראו שימוש ב-Cloud Monitoring עם Cloud KMS.
גרסאות מפתח שהושמדו לא נחשבות למשאבים שמחויבים עליהם.
השמדת מפתחות חיצוניים
כדי להסיר באופן סופי את השיוך בין מפתח Cloud EKM לבין מפתח חיצוני, אפשר להשמיד את גרסת המפתח. אחרי שתקופת Scheduled for destruction מסתיימת, המפתח מושמד. אחרי שגרסת המפתח מושמדת, אי אפשר יותר להצפין נתונים או לפענח נתונים שהוצפנו באמצעות גרסת המפתח של Cloud EKM.
השמדה של גרסת מפתח שמנוהל באופן ידני ב-Cloud KMS לא משנה את המפתח במנהל המפתחות החיצוני. מומלץ להשמיד קודם את המפתח או את גרסת המפתח ב- Cloud de Confiance by S3NS. אחרי שמשמידים את גרסת המפתח ב-Cloud EKM, אפשר להשמיד את חומר המפתח במנהל המפתחות החיצוני.
כשמשמידים גרסה של מפתח חיצוני מתואם ב-Cloud KMS, קודם משמידים את גרסת המפתח ב- Cloud de Confiance, ואז נשלחת בקשת השמדה ל-EKM כדי להשמיד את חומר המפתח החיצוני.
שחזור גרסה של מפתח
במהלך התקופה שבה המצב של גרסת מפתח מתוזמן להשמדה, אפשר לשחזר את גרסת המפתח על ידי שליחת בקשת שחזור.
המסוף
נכנסים לדף Key Management במסוף Cloud de Confiance .
לוחצים על השם של אוסף המפתחות שמכיל את המפתח שאת גרסת המפתח שלו רוצים לשחזר.
לוחצים על המפתח שאת הגרסה שלו רוצים לשחזר.
מסמנים את התיבה לצד גרסת המפתח שרוצים לשחזר.
לוחצים על שחזור בכותרת.
בהודעת האישור, לוחצים על שחזור.
gcloud
כדי להשתמש ב-Cloud KMS בשורת הפקודה, קודם צריך להתקין את הגרסה האחרונה של Google Cloud CLI או לשדרג אליה.
gcloud kms keys versions restore key-version \
--key key \
--keyring key-ring \
--location location
מחליפים את key-version בגרסת המפתח שרוצים לשחזר. מחליפים את key בשם המפתח. מחליפים את key-ring בשם אוסף המפתחות שבו נמצא המפתח. מחליפים את location במיקום ב-Cloud KMS של אוסף המפתחות.
כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.
C#
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח בשפת C# ולהתקין את ה-SDK של Cloud KMS C# .
Go
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Go ולהתקין את Cloud KMS Go SDK.
Java
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח ב-Java ולהתקין את Cloud KMS Java SDK.
Node.js
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Node.js ולהתקין את Cloud KMS Node.js SDK.
PHP
כדי להריץ את הקוד הזה, קודם צריך לקרוא על שימוש ב-PHP ב- Cloud de Confiance ולהתקין את Cloud KMS PHP SDK.
Python
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Python ולהתקין את Cloud KMS Python SDK.
Ruby
כדי להריץ את הקוד הזה, קודם צריך להגדיר סביבת פיתוח של Ruby ולהתקין את Cloud KMS Ruby SDK.
API
בדוגמאות האלה נעשה שימוש ב-curl כלקוח HTTP כדי להדגים את השימוש ב-API. מידע נוסף על בקרת גישה זמין במאמר גישה ל-Cloud KMS API.
כדי לשחזר גרסה של מפתח, קוראים לשיטה CryptoKeyVersions.restore.
curl "https://cloudkms.googleapis.com/v1/projects/project-id/locations/location-id/keyRings/key-ring-id/cryptoKeys/crypto-key-id/cryptoKeyVersions/version-id:restore" \
--request "POST" \
--header "authorization: Bearer token"
אחרי שהבקשה לשחזור תושלם, מצב גרסת המפתח יהיה מושבת. כדי להשתמש במפתח, צריך להפעיל אותו.
הרשאות IAM נדרשות
כדי להשמיד גרסת מפתח, למי שקורא לפונקציה צריכה להיות הרשאת cloudkms.cryptoKeyVersions.destroy IAM למפתח, לאוסף המפתחות או לפרויקט, לתיקייה או לארגון.
כדי לשחזר גרסה של מפתח, למשתמש שקורא ל-API צריכה להיות הרשאה cloudkms.cryptoKeyVersions.restore.
שתי ההרשאות האלה מוענקות לתפקיד 'אדמין של Cloud KMS' (roles/cloudkms.admin).
ציר הזמן של המחיקה
Cloud KMS מתחייב למחוק חומר מפתחות של לקוחות מכל התשתית של Google תוך 45 ימים מהמועד המתוכנן למחיקה. זה כולל הסרת נתונים ממערכות פעילות ומגיבויים של מרכזי נתונים. נתוני לקוחות אחרים כפופים לציר הזמן הרגיל למחיקה ב-Google Cloud של 180 ימים.