docker-ի կառուցում args - կառուցում args docker - docker-ի կառուցում կառուցում arg

Docker Build Args. Պատկերներում գաղտնի արտահոսքերի թաքնված վեկտորը

Կառուցեք Args. Հարմարավետություն, որը կարող է վտանգել անվտանգությունը

Docker-ի կառուցման արգումենտները հեշտացնում են կոնֆիգուրացիայի արժեքների փոխանցումը կառուցման ժամանակ, սակայն դրանք ունեն հաճախ անտեսվող գին. այդ արգումենտները պահպանվում են պատկերի մետատվյալներում և շերտերում: Մշակողները հաճախ ենթադրում են, որ այս արժեքները անհետանում են կառուցման ավարտից հետո, բայց իրականում, Docker-ի կառուցման արգումենտների հրահանգները դրանք ներկառուցում են Docker-ի պատկերի պատմության մեջ:

⚠️Անապահով օրինակ, միայն կրթական նպատակներով։ Չօգտագործել արտադրության մեջ։

Ամեն մեկը, ով վազում է դոկերի պատմություն or docker ստուգում կգտնի API_KEY արժեքը ներդրված է պատկերի մետատվյալներում։ Սա տեղի է ունենում, քանի որ Docker-ի build build arg հրահանգը commitյուրաքանչյուր կառուցման քայլը որպես մշտական ​​շերտ։

Անվտանգ տարբերակ՝

Ուսումնական նշում. Խուսափեք Docker build args-ի միջոցով գաղտնիքներ ներարկելուց։ Օգտագործեք –գաղտնի BuildKit-ի կողմից զգայուն տվյալների համար տրամադրված մոնտաժներ. դրանք երբեք չեն պահպանվում շերտերում կամ մետատվյալներում։

Ինչպես են գաղտնիքները պահպանվում շերտերում և մետատվյալներում

Dockerfile-ի յուրաքանչյուր հրահանգ ստեղծում է նոր պատկերի շերտ։ Նույնիսկ երբ դուք վերագրում կամ ջնջում եք ֆայլերը, նախորդ շերտերը մնում են քեշում։ Ահա թե ինչու Docker-ի build args-ի կամ Docker-ի build args-ի միջոցով ներարկված գաղտնիքները պահպանվում են անորոշ ժամանակով։

⚠️Անապահով օրինակ, միայն կրթական նպատակներով։ Չօգտագործել արտադրության մեջ։

Օգտագործելով ARG այս կերպ տոկենը ներկառուցվում է պատկերի շերտում, որը տեսանելի է դրա միջով docker պատկերի ստուգում կամ արդյունահանվել է քեշից։ Անվտանգ տարբերակ՝

Ուսումնական նշում. Իր օգտագործման մեջ զգայուն արժեքները մնում են պատմության մեջ: Դրա փոխարեն օգտագործեք ժամանակավոր գաղտնի միացումներ՝ տոկեններն ու մուտքային տվյալները պաշտպանելու համար:

Հաճախ հանդիպող սխալ կարգավորումներ CI/CD Pipelines

In ժամանակակից pipelinesմշակողները հաճախ գաղտնիքներ են փոխանցում CI/CD միջավայրեր, որոնք օգտագործում են Docker args կամ համօգտագործվող քեշեր: Այս սովորությունը գաղտնի տեղեկություններ է արտահոսում logs, runners և ռեգիստրի քեշեր: Համատեղ վազորդների հետ GitHub գործողություններ, GitLab CI, կամ Jenkins, այս գաղտնիքները կարող են հեշտությամբ տարածվել անկապ աշխատանքների վրա։

⚠️Անապահով օրինակ, միայն կրթական նպատակներով։ Չօգտագործել արտադրության մեջ։

Գաղտնիքը հայտնվում է կառուցման մատյաններում և պատկերի մետատվյալներում՝ խախտելով նվազագույն արտոնությունների սկզբունքը։ Անվտանգ տարբերակ՝ 

Ուսումնական նշում. Խուսափել –կառուցել-arg գաղտնիքների համար։ Մեջ CI/CD, գաղտնիքները երբեք չպետք է անցնեն միջավայրի փոփոխականների կամ գրանցամատյանների միջով։ Միշտ նախընտրեք ժամանակավոր գաղտնի միացումները։

Գաղտնի բացահայտումը կանխելու լավագույն մեթոդները

Գաղտնի բացահայտման կանխարգելումը սկսվում է այն բանից, որ Docker-ի կառուցման արգումները նախագծված են հանրային։ Դրանք հիանալի են կարգավորման համար (ինչպես տարբերակի թեգերը կամ առանձնահատկությունների դրոշները), բայց ոչ հավատարմագրերի համար։

Լավագույն փորձեր

  1. Օգտագործեք BuildKit-ը — գաղտնի զգայուն տվյալների համար։
  2. Երբեք գաղտնիքները մի սահմանեք ARG-ի կամ ENV-ի միջոցով։
  3. Ավելացնել .env, գաղտնիքներ/, եւ կազմաձևում/ տեղեկատուներ դեպի .dockerignore.
  4. Կիրառել բազմաստիճան կառուցվածքներ մասնավոր փուլերը մեկուսացնելու համար։
  5. Մաքրել քեշերը զգայուն կառուցման փուլերից հետո։
  6. Հաստատեք պատկերի մետատվյալները Docker-ի պատմության հետ՝ հրապարակումից առաջ։

Մինի կանխարգելիչ ստուգաթերթիկ

  • Աուդիտ անցկացնել բոլոր Docker ֆայլերի համար կառուցել args Docker-ը օգտագործումը:
  • Փոխարինեք հավատարմագրերը BuildKit-ով –գաղտնի.
  • Ապահովել .dockerignore բացառում է զգայուն ֆայլերը։
  • Sanitize CI/CD միջավայրի փոփոխականներ։
  • Ավտոմատացրեք գաղտնի սկանավորումը պատկերներ ուղարկելուց առաջ։

Ուսումնական նշում. Եթե ​​արժեքը անցնում է Docker-ի կառուցման արգումենտի միջով, այն դառնում է մշտական: Օգտագործեք գաղտնի միացումներ և մեկուսացված կառուցման փուլեր՝ զգայուն տվյալները պաշտպանելու համար:

Build Args-ի անապահով օգտագործման հայտնաբերումը տեղակայումից առաջ

Ավտոմատացված սկանավորումը կարևոր է Docker-ի կառուցման args-երի ռիսկային օրինաչափությունները հայտնաբերելու համար, նախքան պատկերը արտադրության մեջ ուղարկվի: Գործիքներ, ինչպիսիք են Մանրուք, Հադոլինթ, եւ Քսիգենի կարող է հայտնաբերել Dockerfiles-ում կամ պատկերի շերտերում ներկառուցված հավատարմագրերը։

Ֆունկցիոնալ հատված՝ համատեքստով և կառավարման պաշտպանիչ ցանկապատով

Այս քայլը գործում է որպես կանխարգելիչ վերահսկողություն, արգելափակելով Docker-ի անապահով build args հրահանգները տեղակայումից առաջ։

Ուսումնական նշում. Ներառեք Dockerfile սկանավորումը որպես պարտադիր CI/CD փուլ: Ավտոմատացված գործիքները օգնում են ապահովել շինարարության հետևողական և անվտանգ հիգիենա:

Ինչպես է Xygeni-ն պաշտպանում կառուցման ժամանակ գաղտնի տեղեկատվության արտահոսքից

Քսիգենի Գաղտնիքների անվտանգություն ապահովում է Docker args-ի չարաշահման մասնագիտացված հայտնաբերում։ Այն նույնականացնում է ARG-ի ոչ անվտանգ սահմանումները, հետևում է գաղտնի արժեքներին կառուցման փուլերում և նշում է մնացորդային մուտքագրումները պատկերի մետատվյալներում կամ քեշավորված շերտերում։ Ինտեգրվելով ձեր հետ CI/CD pipeline, այն կիրառում է Docker build build arg անվտանգության քաղաքականությունները միաձուլումներից կամ թողարկումներից առաջ։

Ֆունկցիոնալ հատված, համատեքստային կիրառման օրինակ

Ավելացրեք այս աշխատանքը ձեր pipeline-ի վավերացման փուլը՝ շարունակական պաշտպանության համար։

Ուսումնական նշում. Xygeni-ն ավտոմատ կերպով կիրառում է Docker-ի անվտանգ գործելակերպերը՝ կանխելով ռիսկային կառուցման ժամանակի կոնֆիգուրացիաների կողմից գաղտնիքների արտահոսքը միջավայրերում։

Եզրակացություն. Build Args Docker-ը երբեք չպետք է զբաղվի գաղտնիքներով

Docker-ի կառուցման արգումները երկկողմանի սուր են, հարմար են կարգավորման համար, ռիսկային՝ գաղտնիքների համար։ Ձեր կողմից ներարկվող Docker-ի յուրաքանչյուր build արժեք կարող է պահպանվել մետատվյալներում, պատկերի պատմության մեջ կամ քեշերում։
Պաշտպանեք ձեր կառույցները հետևյալ կերպ.

  • BuildKit-ի օգտագործումը –գաղտնի հավատարմագրերի համար։
  • Զգայուն տվյալների մեկուսացում բազմաստիճան կառուցվածքներում։
  • Տեղադրումից առաջ սկանավորվում են արտահոսած արժեքները։
  • Անվտանգության քաղաքականության կիրառումը՝ Xygeni Code Security.

Ձեր կառուցվածքը pipeline այնքան անվտանգ է, որքան ձեր չբացահայտած գաղտնիքները։ Docker-ի յուրաքանչյուր build build arg-ը վերաբերվեք որպես պոտենցիալ բացահայտման վեկտորի և կողպեք այն, նախքան հարձակվողները գտնեն այն։

sca-tools-software-composition-analysis-tools
Առաջնահերթություն տվեք, շտկեք և պաշտպանեք ձեր ծրագրային ռիսկերը
Ստացեք ձեր անվճար հաշիվը։
Ոչ մի վարկային քարտ չի պահանջվում:

Ապահովեք ձեր ծրագրային ապահովման մշակումը և մատակարարումը

Xygeni Product Suite-ի հետ