Պրոֆիլները միաժամանակ երկու նպատակի են ծառայում. դրանք գրանցում են միացման կարգավորումները և կրում են աշխատող հավատարմագրերի փաթեթ։ Ֆայլի ընդլայնումը ոչինչ չի ասում այն մասին, թե դրանցից որն եք ձեռքում։ Կարդացեք բովանդակությունը նախքան որոշելը, որ այն պատկանում է պահոցին։

Ստորև բերված քայլերը ենթադրում են, որ հաճախորդի ձևանմուշը դիտարկվում է տարբերակների կառավարման համար։ Կատարեք դրանք հերթականությամբ և կանգ առեք նախքան որևէ բան կոմիտելը, ինչը չեք կարող չեղարկել։

Կարդացեք այն ֆայլը, որը պատրաստվում եք ինդեքսավորել

Սկսեք իրական բայթերից, քանի որ առանձին ֆայլերին հղող պրոֆիլը բոլորովին այլ տեսք ունի, քան դրանք ներսում պարունակողը։ Փնտրեք PEM բլոկի նշիչները և ca, cert, key, tls-auth ու tls-crypt անուններով ներկառուցված պիտակները, և նույն ստուգումը ձեզ ցույց կտա երկու դեպքն էլ։ Գաղտնագրված մասնավոր բանալին դեռևս համարվում է զգայուն նյութ, իսկ համօգտագործվող tls-auth կամ tls-crypt բանալին հավատարմագիր է, նույնիսկ եթե օգտվողի ինքնություն չէ։ Կիրառեք նույն ստուգումը այն ամենի վրա, ինչ ինդեքսավորվում է պրոֆիլի հետ միասին, ներառյալ արխիվները և տեղադրման սքրիփթները, որոնք հղում են հավատարմագրերի ֆայլին։

Այնուհետև նայեք ինդեքսավորված հավաքածուին, ոչ թե աշխատանքային ծառին։ git diff --cached-ը ցույց է տալիս, թե ինչ է իրականում պարունակելու կոմիտը, և դա է այս որոշման համար նշանակալի միակ տարբերակը։

Որոշեք՝ ինչ կարող է պահոցը տարածել

Ձևանմուշը կարող է կրել ընդհանուր, ստուգված կարգավորումները և անվանված տեղաբնակիչներ այն ամենի համար, ինչ մարդը ստանում է գրանցման պահին։ Այն, ինչ նա չի կարող կրել, օգտագործելի ինքնությունն է, քանի որ պահոցը տարածվում է բոլորին, ովքեր կարող են կարդալ այն, ներառյալ ավտոմատացումը։ Մասնավոր պահոցը նեղացնում է հանդիսատեսին, բայց չի փոխում այն հարցը, թե արդյոք յուրաքանչյուր ընթերցող լիազորված է այդ հավատարմագրի համար։

Անտեսման կանոնը կանխում է ապագա հավելումները և ոչինչ չի անում արդեն գրանցվածի հետ։ Այս անհամաչափությունը արժե յուրացնել առաջին կոմիտից առաջ, ոչ թե տասներորդից հետո։ Ենթակառուցվածքի անուններն ու հասցեները առանձին դատողություն են՝ դրանք նույնականացման գաղտնիքներ չեն, բայց կարող են բացահայտել ավելին, քան թիմը մտադիր է հրապարակել։ Կայացրեք այդ որոշումը բացահայտորեն, փոխարենը ամեն տող գաղտնաբառի կամ հրապարակայինի բաժանելու։

Եթե նյութն արդեն պատմության մեջ է

Նոր կոմիտում տողը հեռացնելը հին տարբերակը անձեռնմխելի է թողնում յուրաքանչյուրի համար, ով ներբեռնում է այն։ Բացահայտումը վերաբերվեք որպես իրականի՝ պարզեք հավատարմագրի տեսակը, ապա գտեք իշխանությունը, որը կարող է անվավերացնել այն։ Հաճախորդի վկայականը չեղարկվում է, և չեղարկումների ցանկը նորից ստեղծվում է՝ համօգտագործվող կառավարման ուղու բանալին փոխարինվում է սերվերի և այն օգտագործող յուրաքանչյուր հաճախորդի վրա։

Երկուսն ունեն շատ տարբեր ազդեցության շառավիղ, և պլանը պետք է նախքան սկսելը նշի, թե որն եք կատարում։ Գտեք այն կոմիտը, որը ներմուծել է նյութը git log --all -S 'BEGIN PRIVATE KEY' տիպի որոնումով, որպեսզի մաքրման ծավալը հայտնի լինի, ոչ թե գուշակված։ Գործընկերոջ կլոնը կամ պատառաքաղը կարող է արդեն պահել հին օբյեկտը, այդ պատճառով չեղարկումը գալիս է առաջինը, իսկ մաքրումը՝ երկրորդը։

Մաքրեք միայն սահմանափակելուց հետո

Պատմության վերաշարադրումը փոխում է ձեր խմբագրածից հետո յուրաքանչյուր կոմիտ, ուստի նախ անհրաժեշտ է պահոցի սեփականատիրոջ և դրանում աշխատող մարդկանց համաձայնությունը։ Հարկադիր push-ը վերանորոգում չէ. դա համակարգման իրադարձություն է՝ իր հետգլորման ռիսկով։ Պլանավորեք այն, պահուստավորեք և ասեք թիմին, թե երբ տեղի կունենա։

Դրանից հետո ստուգեք ընթացիկ ծառը և մնացած պատմությունը՝ փոխարենը չվստահելով գործիքի ամփոփմանը։

Պահեք արդյունքը որպես երկու արտեֆակտ՝ կիսվելու համար անվտանգ ձևանմուշը և գրանցման գործընթացով թողարկված հավատարմագրերի գույքագրումը։ Նրանցից ոչ մեկը չի պահանջում, որ օգտագործելի ինքնություն ապրի պահոցում։

Այդ բաժանումն է իրական լուծումը, և այն կդիմանա նաև հաջորդ մարդուն, ով կցանկանա կոմիտել պրոֆիլ։

Առնչվող հոդվածներ