Cloud de Confiance by S3NS מציע שתי מגבלות של מדיניות הארגון להגדרת מדיניות השמדה של גרסת מפתח בארגון:
- המאפיין
constraints/cloudkms.minimumDestroyScheduledDurationמשמש להגדרת אורך מינימלי של משך הזמן scheduled for destruction למפתחות חדשים בארגון. - התג
constraints/cloudkms.disableBeforeDestroyמשמש כדי לדרוש השבתה של גרסת מפתח לפני שאפשר לתזמן את ההשמדה שלה.
לפני שמתחילים
ההוראות בדף הזה מבוססות על ההנחה שאתם יודעים להשתמש במגבלות ושיש לכם את המשאבים והתפקידים הנדרשים.
משאבים נדרשים
כדי להשלים את השלבים שבדף הזה, צריך את המשאבים הבאים:
- ארגון.
- אופציונלי: משאב של תיקייה או פרויקט בארגון.
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות לניהול מדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM Organization policy administrator (אדמין של מדיניות הארגון) (roles/orgpolicy.policyAdmin) בארגון.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות לניהול מדיניות הארגון. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי לנהל את מדיניות הארגון, נדרשות ההרשאות הבאות:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
נדרש משך מינימלי של השמדה מתוזמנת
האילוץ Minimum destroy scheduled duration per key (constraints/cloudkms.minimumDestroyScheduledDuration) משמש להגדרת משך מינימלי לתזמון ההשמדה של מפתחות חדשים. האילוץ הזה מבטל את משך הזמן המינימלי שנקבע להשמדה ברמת הפרויקט, התיקייה או הארגון. המגבלה הזו מפחיתה את הסיכוי להשמיד בטעות מפתח שעדיין נחוץ. אתם יכולים להגדיר את ההגבלה הזו לערך גבוה יותר כדי לוודא שיש לכם מספיק זמן למנוע את ההרס של המפתח לפני שהוא הופך לבלתי הפיך.
כדאי להשתמש בערכים גבוהים יותר למגבלה הזו כשמחיקה לא רצויה של מפתחות עלולה לגרום לנזק רב יותר, למשל כשמדובר בנתוני ייצור שחלים עליהם דרישות לשמירת נתונים. מומלץ להשתמש בערכים נמוכים יותר למגבלה הזו כשמחיקת מפתחות לא רצויה תגרום לפחות נזק, למשל בסביבות פיתוח או בדיקה. אפשר גם להשתמש בערכים נמוכים יותר כדי לאפשר גריסה קריפטוגרפית בזמן. עם זאת, כערך מינימלי, ההגבלה הזו לא יכולה להבטיח שמפתחות חדשים ייווצרו עם משכי זמן קצרים שנקבעו להשמדה.
כדי לדרוש משך זמן מינימלי שנקבע להשמדה, מבצעים את השלבים הבאים:
מריצים את הפקודה
describeכדי לקבל את המדיניות הנוכחית במשאב הארגון. הפקודה הזו מחזירה את המדיניות שחלה ישירות על המשאב הזה:gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration \ --organization=ORGANIZATION_IDמחליפים את
ORGANIZATION_IDבמזהה הייחודי של משאב הארגון. מזהה הארגון מופיע בפורמט של מספרים עשרוניים, ולא יכולים להיות בו אפסים מובילים.אפשר גם להציג את מדיניות הארגון עבור תיקייה או פרויקט באמצעות הדגלים
--folderאו--project, ומזהה התיקייה או מזהה הפרויקט, בהתאמה.התשובה מחזירה את מדיניות הארגון הנוכחית, אם קיימת כזו. הפלט אמור להיראות כך:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: etag: COTP+KYGELiCmsoB inheritFromParent: true rules: - values: allowedValues: - in:7d updateTime: '2023-08-17T14:00:04.424051Z'אם לא מוגדרת מדיניות, הפקודה
describeמחזירה את השגיאהNOT_FOUND:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.מגדירים את המדיניות בארגון באמצעות הפקודה
set-policy. הפקודה הזו מחליפה כל מדיניות שמצורפת כרגע למשאב.יוצרים קובץ זמני
/tmp/policy.yamlלאחסון המדיניות:name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - in:MINIMUM_DURATIONמחליפים את מה שכתוב בשדות הבאים:
-
ORGANIZATION_ID: המזהה המספרי של הארגון. -
MINIMUM_DURATION: משך הזמן המינימלי במצב מתוזמן להשמדה של מפתחות בארגון הזה, בימים. הערך צריך להיות אחד מהערכים הבאים:7d,15d,30d,60d,90dאו120d.
-
מריצים את הפקודה
set-policy:gcloud org-policies set-policy /tmp/policy.yaml
כדי לראות את המדיניות האפקטיבית הנוכחית, משתמשים בפקודה
describe --effective. הפקודה הזו מחזירה את מדיניות הארגון כפי שהיא מוערכת בשלב הזה בהיררכיית המשאבים, כולל ההורשה.gcloud org-policies describe \ constraints/cloudkms.minimumDestroyScheduledDuration --effective \ --organization=ORGANIZATION_IDהפלט אמור להיראות כך:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - values: allowedValues: - 30d - 15d - 90d - 60d - 7d - 120dמדיניות הארגון הזו הוגדרה ברמת הארגון, ולכן היא עוברת בירושה לכל משאבי הצאצאים שמאפשרים ירושה.
דרישה להשבית את המפתחות לפני ההשמדה
האילוץ Restrict key destruction to disabled keys (הגבלת השמדת מפתחות למפתחות מושבתים) (constraints/cloudkms.disableBeforeDestroy) מאפשר לדרוש שהמפתח יושבת לפני שניתן יהיה לתזמן את השמדתו.
השבתת מפתח לפני השמדה שלו היא שיטה מומלצת כי היא עוזרת לוודא שהמפתח לא נמצא בשימוש. אפשר לשלב את האילוץ הזה עם מדיניות ניהול זהויות והרשאות גישה (IAM) מחושבת היטב כדי ליצור תהליך השמדה רב-שלבי שדורש שיתוף פעולה מכמה תפקידים.
כדי להשתמש באילוץ הזה ליצירת תהליך השמדה רב-שלבי, צריך לוודא שלמשתמשים אין את ההרשאות cloudkms.cryptoKeyVersions.update ו-cloudkms.cryptoKeyVersions.destroy. בתרחיש השימוש הזה נדרש שימוש בתפקידים בהתאמה אישית.
כדי לדרוש שמפתח יהיה במצב מושבת לפני שאפשר לתזמן את השמדת המפתח, פועלים לפי השלבים הבאים:
gcloud
מריצים את הפקודה
describeכדי לקבל את המדיניות הנוכחית במשאב הארגון. הפקודה הזו מחזירה את המדיניות שחלה ישירות על המשאב הזה:gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy \ --organization=ORGANIZATION_IDמחליפים את
ORGANIZATION_IDבמזהה הייחודי של משאב הארגון. מזהה הארגון מופיע בפורמט של מספרים עשרוניים, ולא יכולים להיות בו אפסים מובילים.אפשר גם להציג את מדיניות הארגון עבור תיקייה או פרויקט באמצעות הדגלים
--folderאו--project, ומזהה התיקייה או מזהה הפרויקט, בהתאמה.התשובה מחזירה את מדיניות הארגון הנוכחית, אם קיימת כזו. הפלט אמור להיראות כך:
name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: etag: CPvY+KYGENDwgxA= rules: - enforce: true updateTime: '2023-08-17T14:19:39.033618Z'אם לא מוגדרת מדיניות, הפקודה
describeמחזירה את השגיאהNOT_FOUND:ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.מגדירים את המדיניות בארגון באמצעות הפקודה
set-policy. הפקודה הזו מחליפה כל מדיניות שכבר מצורפת למשאב.יוצרים קובץ זמני
/tmp/policy.yamlלאחסון המדיניות:name: organizations/ORGANIZATION_ID/policies/cloudkms.disableBeforeDestroy spec: rules: - enforce: trueמחליפים את
ORGANIZATION_IDבמזהה הייחודי של משאב הארגון.מריצים את הפקודה
set-policy:gcloud org-policies set-policy /tmp/policy.yaml
כדי לראות את המדיניות האפקטיבית הנוכחית, משתמשים בפקודה
describe --effective. הפקודה הזו מחזירה את מדיניות הארגון כפי שהיא מוערכת בשלב הזה בהיררכיית המשאבים, כולל ההורשה.gcloud org-policies describe \ constraints/cloudkms.disableBeforeDestroy --effective \ --organization=ORGANIZATION_IDהפלט אמור להיראות כך:
name: organizations/ORGANIZATION_ID/policies/cloudkms.minimumDestroyScheduledDuration spec: rules: - enforce: trueמדיניות הארגון הזו הוגדרה ברמת הארגון, ולכן היא עוברת בירושה לכל משאבי הצאצאים שמאפשרים ירושה.