civil-and-structural-engineering
Best Practices for Management Secrets with Hashicorp Vault in Ci/cd
Table of Contents
Best Practices for Management Secrets with HashiCorp Vault in CI/CD
סודות ניהול באופן מאובטח הוא היבט קריטי של צינורות CI /CD מודרניים.כל דליפת מפתחות API, אישורי מסד נתונים, או אסימונים יכול להוביל להפרות נתונים קטסטרופליות, הפרות תאימות, ונזק מוניטין. HashiCorp Vault מספק פתרון חזק, ברמה ארגונית לניהול חשאי, המאפשר לארגונים להגן על נתונים רגישים לאורך כל מחזור החיים של פיתוח ופריסה.
מדריך זה מתאר אסטרטגיות מוכחות לשימוש HashiCorp Vault בסביבות CI /CD. תלמד כיצד למנף סודות דינמיים, ליישם מדיניות מוטבעת היטב, להצפין נתונים במעבר ובמנוחה, לסובב כל האישורים, ולעקוב אחר כל הגישה הסודית.We גם לכסות תבניות אינטגרציה עבור כלי CI /CD מרכזיים כגון ג'נקינס, GitLab CI, ו- GitHub פעולות, יחד עם מלכודות נפוצות כדי להימנע.
שמירה על שיטות אלה לא רק לחזק את היציבה שלך אבטחה אלא גם הזרמת זרימת עבודה תפעולית, להפחית את פני השטח ידני, ולעזור לספק דרישות רגולטוריות כמו SOC 2, PCI DSS, HIPAA.
הבנה של HashiCorp Vault ב- CI/CD
HashiCorp Vault הוא כלי שנועד לאחסן באופן מאובטח ולשלוט על גישה לאקדיונים, סיסמאות, תעודות, וסודות אחרים.In CI /CD, Vault יכול לייצר באופן דינמי סודות, לנהל מחזור חיים סודי, לאכוף מדיניות גישה.בניגוד סודות סטטיים מקובעים בקבצי תצורה או סביבת משתנה, Vault מתייחס לסודות כמו משאבים אמפיריים שנוצרו על ידי דרישה, באופן אוטומטי לשימוש לאחר שימוש.
Vault משלבת עם מערכות CI /CD באמצעות REST API שלה, CLI, ו- Native Identity plugins.התבנית האופיינית כוללת:
- (FLT:0) Authentication: FLT:1 צינורות CI /CD אותנטיים ל-Vault באמצעות שיטה בטוחה כגון AppRole, Kubernetes auth, או a short-Day ken מוזרק על ידי כלי CI.
- (FLT:0) סודיות ריינבל: 1FLT:103) במהלך שלב בנייה או פריסה, הצינור מבקש סודות מ-Vault - או סודות סטטיים מחנות KV או סודות דינמיים ממסד נתונים, ענן או מנוע PKI.
- (FLT:0)Usage:FLT:1 סודות מוזרקים באופן זמני לתוך משתנים סביבתיים, קבצים תצורה או טיעונים פיקוד, ולאחר מכן משמשים למשימות כגון חיבור למסד נתונים, חתימה על פריטים, או פריסה לספק ענן.
- (ב) ,0) ,Cleanup: 1 לאחר השימוש, הצינור מבטל אישורים זמניים או משתנה של הסביבה לא התחלה כדי להפחית את חלון החשיפה.
גישה זו מבטלת את הצורך לאחסן סודות ב- Git repositories, קבצי תצורה CI /CD, או רשם פריטים, להפחית באופן דרסטי את פני השטח של ההתקפה.
עקרונות ניהול חשאי עם Vault
השתמש בסודות דינמיים
סודות סטטיים – כגון סיסמה מסד נתונים אחת המשמשת במשך שנים – הם אחריות אבטחה.אם הם נותנים גישה מתמשכת עד לסובב באופן ידני.מנועי הסוד הדינמיים של ונו יוצרים אישורים על זבוב עם ערכים קצרים לחיים (TTL) לדוגמה, Vault יכול ליצור סיסמה ייחודית, מוגבלת זמן למשתמש פוסט-אפאפאפיסטם או מפתח גישה IAM לתפקיד AWS.
סודות דינמיים מציעים מספר יתרונות:
- (ב) ,0) תוחלת החיים הקצרה: מגבלת 1:1 , לעתים קרובות בתוך דקות או שעות.
- (ב) ⁇ :0) ⁇ : 1FLT:1 כל צינור רץ מקבל אישורים נפרדים, מה שהופך את זה בלתי אפשרי להשתמש בסוד פגום מן הבניין הקודם.
- (ב) ⁇ :0) ⁇ ⁇ ⁇ (בתרגום חופשי: ⁇ ) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
כדי ליישם סודות דינמיים, להגדיר מנוע סודי (למשל, מסד נתונים, AWS, Azure) עם תפקיד מוגדר ברירת מחדל TTL.הצנרת שלך מבקשת חכירה לתפקיד זה ומשתמשת באישורים המוחזרים רק למשך העבודה.
2.הפעלת בקרת גישה יפה-גלוי
מדיניות Vault נכתבה ב HCL (השפה ההשראה של אשי קורפ) ועוקבת אחר מודל הרשאות מבוסס נתיב.כל מענקי מדיניות או מונע גישה לדרכים ומיומנויות חשאיות ספציפיות (קריאה, יצירת, עדכון, נמחק, רשימה, תבעו).עקרון הפריבילגיה המינימלי צריך להנחות כל הגדרת מדיניות.
שקול את ההנחיות האלה:
- מדיניות מבוססת קוד:0 (Role-based Policy: FLT:1eur) צור מדיניות נפרדת לפיתוח, עוקץ, צינורות ייצור.A CI עבודה בניית סניף תכונה לא צריכה להיות גישה לסודות הייצור.
- (ב) § (ב) § § § § § § § § § , § , § , § ).
- גישה:0 [Time-bound Accesseur:] מדיניות שילוב של 1FLT עם אסיקן TTLs וגבולות חידוש.
- (ב) ,0) זהויות: מינוף 1:1 , נטיות זהות וקבוצתיות כדי לצרף מדיניות לכלים ספציפיים של CI /CD, משרות או חשבונות שירות.
דוגמה למדיניות מינימלית עבור צינור CI:
path "database/creds/ci-app" {
capabilities = ["read", "list"]
}
path "secret/data/ci/*" {
capabilities = ["read", "list"]
}
path "auth/token/lookup-self" {
capabilities = ["read"]
}
סודות הצפנה לנוח ובמעבר
Vault מצפין באופן אוטומטי את כל הנתונים המאוחסנים בגיבוי שלה באמצעות מפתח מאסטר.מפתח זה הוא עצמו מוצפן ויכול להיות מנוהל עם שירות ניהול מפתח חיצוני (KMS) או מודול אבטחה חומרה (HSM) עם זאת, הצפנה במעבר היא חשובה באותה מידה.כל התקשורת בין סוכני CI /CD ו-Vault צריכה להשתמש ב-TLS 1.2 או גבוה יותר.
שיטות הטובות ביותר:
- (ב) ⁇ (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) אישורים:FLT:1eur /CD לקוחות חייבים לאמת את שרשרת האישורים של שרת Vault. לספק את אישור CA כחלק מחנות האמון של הכלי.
- (FLT:0) השתמש ב- TLS הדדי במידת האפשר:FIRLT:1 עבור אבטחה נוספת, דורש אישורי לקוחות ממערכות CI/CD.
- (FLT:0) בטל טקסט על הרשת: לעולם אל תביא סודות על HTTP או חיבורים לא מקודמים.רוב סוכני CI /CD תומכים במשתנים סביבתיים שיכולים להזריק את כתובת Vault ולנקות באופן מאובטח.
4.הפסקה הסודית
סיבוב רגיל מפחית את הנזק מסוד דלף.סודות דינמיים של וון מסתובבים באופן אוטומטי עם כל בקשה להשכרה, אבל סודות סטטיים בחנויות KV זקוקים גם לסיבוב. HashiCorp ממליץ להשתמש ב-Vault:0rotationFLT:1 ו-FLT:2leaseFLT 3 מנגנונים יחד עם מדיניות תקופתית כדי לאכוף את הסבב ברמת היישום.
לסיבוב אוטומטי של סודות סטטיים:
- לאחסן סודות סטטיים במנוע KV V2 של Vault, אשר תומך בגירסה ובדיקה-והתחלות.
- לכתוב עבודה מתוכננת (cron, Nomad תקופתי אצווה, או צינורות CI) שיוצרת ערכים חדשים וכותבת אותם ל-Vault.
- עדכון כל מערכות תלויות (Databases, API Gates) עם הסוד החדש באמצעות מערכת האקולוגית של Vault או תסריטים חיצוניים.
- השתמש ב-Vault's Endpoint כדי לסובב את מפתח ההצפנה השורשי במרווחים קבועים.
5.ביקורת ו- Monitor Access
Vault מוזג כל בקשה אותנטית למכשירי הביקורת שלה.You יכול לשלוח יומני ביקורת לקבצים, לסלוג או שירותים חיצוניים כמו אלסטיק מחקר, Splunk, או Datadog.
שיטות ניטור מפתח:
- (FLT:0) ,Enable Audilogging: FLT:1 ,U לפחות מכשיר ביקורת אחד. השתמש יעד בטוח, נספח בלבד כדי למנוע טמפינג.
- (ב) [15] , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (FLT:0) סקירת בקביעות: המחשה של 1:1 מעת לעת מדיניות ביקורת ותבניות גישה.
- (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
הצצה ל-Seu/CD Pipelines
שיטות אימות עבור CI /CD
בחירת שיטת אימות נכונה היא חיונית לאבטחה וקלות לשימוש.
- (ב) שירות CI/CD יוצר תפקיד Vault:5 ו-FLT:6 מומלץ עבור אימות מכונה-למכונה-מכונה-למכונה.A CI/CD יוצר תפקיד Vault עם AFLT:5 ו-FLT:6 .
- (FLT:0)Kubernetes Auth:FLT:1 אידיאלי עבור צינורות רץ Kubernetes. Vault מאמת את חשבון שירות Kubernetes באמצעות שרת API Kubernetes ונושא אסיקן Vault על בסיס מדיניות של חשבון השירות.
- (FLT:0AWS/GCP/Zonee AuthcioFLT) 1 עבור צינורות הפועלים על ספקי ענן, Vault יכול לאמת את ה- metadata או IAM תפקיד להנפיק אסימוניות ללא מפתחות קודים קשים.
- (FLT:0 Token- Based:FLT:1 עבור הגדרות פשוטות, כלי CI /CD כגון ג'נקינס יכול להזריק אסימונים Vault כמשתנה סודי.גישה זו פחות בטוחה ויש להשתמש בו רק עם אסימונים קצרים מאוד.
תמיד מעדיפים אימות דינמי, מוגבל על אסימונים סטטיים.קונה אסימונים TTLs כדי להתאים את משך הריצה המקסימלי (למשל, 30 דקות) ולהגדיר מספר סביר של שימושים (אם רלוונטי).
שילוב עם כלי CI /CD
(FLT:0)Jenkins:FLT:1 השתמש HashiCorp Vault Plugin.comהגדרת כתובת שרת Vault, שיטת אימות (AppRole או token), ולהגדיר צינורות שמביאים סודות באמצעות FLT 7 שלבים.התוסף תומך בסיס64-encoding, זריקת קבצים, ותפקוד הסביבה.
(ב) [ה]ה'] ב'[[המאה ה-20]], [[המאה ה-17]], [[1924]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]], [[1924]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]], [[1924]]]]]]]], [[1924]], [[1924]], [[1924]], [[1924]], [[1924]]]] ב[[1924]]]]]] ב[[1924]], [[1924]], [[1924]], [[1924]]]]]]]] ב[[1924]]]]]]]] ב[[[[1924]], [[
(ב) [ה]ה']: [ה] [ה] [ה]] [ה]] [ה]][ה]]][ה]]], [ה][ה]]]][ה]]], [ה'[ה]'[ה']'[ה']'[ה']']'[ה']']'[ה']'[ה'']']'[ה'[ה']'[ה'[ה']']'[ה'[ה'[ה'[ה'[ה'[ה']'[ה'[ה'[ה']'[ה'[ה']']']']']']'[ה'[ה'[ה'[ה'[ה']']']'[ה'[ה'[ה']'[ה'[ה'[ה']']']'[ה']']']'[ה'[ה'[ה'[ה']'[ה']']'[ה'[ה'[ה'[ה'[ה
(FLT:0)CircleCI: 1FLT) השתמש ב-Vault orb או שיחות ישירות של API.תכונה ההקשר של חוג יכול לאחסן אסימונים Vault, אך AppRole או OIDC מועדפים.
גלאי עבודה עם AppRole בג'נקינס
שקול צינור ג'נקינס בונה תמונה דוקר ומפיץ אותו אל אשכול Kubernetes. במקום לאחסן את הסיסמה של Kubernetes config ורישום ב ג'נקינס, הוא מביא אותם מ Vault בזמן ריצה.
- [ה]ה' [ה']'[דרוש מקור]'[דרוש מקור] [ב], [ה]]] [ב[[1924]]], ו[[1924]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]]
- (FLT:0) ,Pipeline Step: 1FLT (ה-HashiCorp Vaultin) עם מזהה התפקיד של AppRole (גם הוא מטלה) ו- The SecretID.The plugins אותנטיים ומקבל אסימונים Vault.
- סודות: ⁇ : [FLT] קרא את הסיסמה של Docker הרישום ואת Kubernetes אסימונים מ-Vault.התוסף כותב אותם למשתנים סביבתיים זמניים או קבצים.
- (ב) ,0) ,(ה) , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) , ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
שיקולים מתקדמים
מנועים סודיים ומקרי השימוש בהם
Vault תומך במנועי סודיים רבים.עבור CI/CD, הרלוונטיים ביותר הם:
- (FLT:0KV v2 (Key-Value): חנות סודות סטטיים 1:1 כמו מפתחי API, תעודות, או הגדרות ספציפיות לסביבה.
- (FLT:0) Database:BuildFLT:1) יוצר משתמשים במסד נתונים זמניים עם אישורים דינמיים עבור MySQL, PostgreSQL, MongoDB ואחרים.
- (FLT:0Cloud Provider Providers (AWS, Azure, GCPIR): יצירת תפקידים זמניים של IAM, ראשי שירות, או מפתחות חשבון אחסון.
- (ב) [15] ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
- (ב) ,0) ,Transit: גרף 1 (המידע הצפנה/ההקריפט ללא אחסוןו - שימושי להצפין חפצים לפני אחסוןם במחסן.
מדיניות עיצוב מיטב הפרקטיקה
מדיניות עיצוב עם מוסכמות שם ברורות ומבנה היררכי.
- (ב) ל-Silt 18 (ב) לסודות ספציפיים.
- (ב) ,מבחינת סודות הסביבה.
- (FLT:20) - עבור סודות ייצור (עם גישה מוגבלת מאוד).
(ה) להימנע משימוש בנתיבים של כרטיסי בר באופן רחב מדי, במקום זאת, מתן גישה לדרכים חשאיות ספציפיות (שימוש ב-FLT:0denycioFLT:1 כללים בספא; מניעת ברירת המחדל של ונו מספקת.שלבים של FLT:21 ו-FLT:22 יש לבדוק לפני פריסה לייצור.
גיבוי ואסון התאוששות
החזרת האחסון של Vault (קונסול, רפסודה, קובץ וכו ') חייבת להיות מגבה באופן קבוע.אם באמצעות אחסון משולב (Raft), לאפשר גיבויי צילום.עבור צינורות CI /CD שתלויים ב-Vault עבור כל הסודות, Vault Outage ישבור פריסות.
- הפעלת Vault בתצורה זמינה מאוד (HA) עם לפחות שלוש נקודות.
- סטוד סט של סודות בחנות מוצפנת חלופית (למשל, מנהל סודות AWS) עם TTL קצר - אבל לטפל בזה כאתר נופש אחרון.
- בדיקות תהליכי התאוששות אסון באופן קבוע, כולל שחזור מתמונה.
מלכודות נפוצות להימנע
- (FLT:0) הטביעה Token in CI/CD Variables:035:1 גם אם הסימון מאוחסן כמשתנה סודי, ניתן להדליף באמצעות בניית יומני או חפצים. השתמש באימות דינמי (Role, OIDC) כך שהסימון נוצר עבור כל ריצה ומעולם לא נמשך.
- (FLT:0) שימוש ב- Root Token ב-Pipelines:cioFLT:1, יש להשתמש בסימון השורש רק עבור ההתחלתיזציה ומקרי חירום.כל צינורות יש להשתמש ב אסימוני מיקרוסקופ מוגבלים עם מדיניות מתאימה.
- (FLT:0) לא לקבוע TTLs קצרים:FLT:1 צינור CI בדרך כלל רץ במשך דקות, לא שעות. Set token TTLs ל משך העבודה הצפוי בתוספת חיץ קטן.
- (FLT:0) אבחון אודיקט לוגס: 1 ללא ביקורת, אתה מתגעגע לאינדיקטורים של פשרה או מדיניות לא מוגדרת.
- (FLT:0) העברת סודות בפלטי פייפר: איורים: 1 לעולם אל תדפיסו סודות לקונסולה, קבצי יומן או בניית חפצים. השתמש בהזרקה המבוססת על קבצים או להסיר את הסוד ממשתנים סביבתיים מיד לאחר השימוש.
- [ה]הסודות הדינמיים נותרו בתוקף עד לפוגת החכירה או בוטלה.בטל באופן משמעותי את החכירות בהקמה או בצעדים נקיים (FLT:24).
מסקנה
הגדלת HashiCorp Vault לתוך צינורות CI /CD שלך מבטל את המקור המסוכן ביותר של דליפות חשאיות: קודר קשיח או איכות הסביבה מוסמך סטטית.על ידי ביצוע התרגילים הטובים ביותר המפורטים כאן - סודות דינמיים, בקרת גישה עתירה, הצפנה, סיבוב אוטומטי, ביקורת מקיפה - אתה יכול להשיג יציבה, ייצור סודיות עבודה ניהול.
התחל קטן: לאמץ אימות AppRole עבור צינור אחד, להביא מסד נתונים דינמי credential, לפקח על יומני הביקורת. Gradually להרחיב כדי לכסות את כל צינורות וסוגים סודיים.עם Vault, אבטחה ומהירות ללכת יד ביד, להבטיח את הפלטים CI /CD שלך הם גם בטוח ואמינה.
מקור:0 (ב) מקורות נוספים:
- [01:0] ,9] ויקרא ויקרא י"ד
- (ב) ◄ ויקרא ויקרא י"ד
- (ב) [ה]ה'השי קורפ ניהול חשאי הטוב ביותר של ניהול מנדט 1]