ihe nzuzo dockerfile - mgbanwe gburugburu ebe obibi nzuzo dockerfile

Ihe Nzuzo Dockerfile: Ihe Mere Layers Ji Debe Data Gị Dị Mkpa Ruo Mgbe Ebighị Ebi

Nzuzo zoro ezo nke nzuzo dị na Docker Layers – Dockerfile Secrets

Ihe owuwu Docker ọ bụla na-emepụta oyi akwa na-agbanwe agbanwe. Ọ bụrụgodị na ị "hichapụ" ihe nzuzo, Docker na-edobe oyi akwa mbụ na akụkọ ihe mere eme onyonyo. Ọ bụ ya mere ihe nzuzo Dockerfile, ọkachasị mgbanwe gburugburu ebe obibi Dockerfile, ji dị ize ndụ: nzere gị ma ọ bụ igodo nzuzo gị nwere ike ịnọgide na-etinye na oyi akwa ochie, enwere ike weghachite ya kpamkpam site na akụkọ ihe mere eme Docker ma ọ bụ tarballs onyonyo ebupụ.

⚠️Ihe atụ na-enweghị nchekwa, maka ebumnuche agụmakwụkwọ naanị. Ejila ya na mmepụta.

FROM ubuntu:20.04 ENV AWS_SECRET_KEY="AKIAXXXXSECRET" RUN echo $AWS_SECRET_KEY > /tmp/key.txt 

Ihe atụ a na-etinye data dị mkpa na ENV agbanwe agbanwe. A na-echekwa ihe nzuzo ahụ kpamkpam na metadata oyi akwa ma weghachite ya site na akụkọ ihe mere eme onyonyo ahụ. Ụdị echekwara:

# Use Docker BuildKit secret mounts # docker build --secret id=aws_key,src=./aws.key . FROM ubuntu:20.04 RUN --mount=type=secret,id=aws_key cat /run/secrets/aws_key > /tmp/key.txt 

Akwụkwọ mmụta: Zere ịchekwa ihe nzuzo na akwa Docker. Jiri BuildKit's -nzuzo ijigide ya nke ọma Ihe nzuzo faịlụ Docker data n'oge nrụpụta na-ahapụghị akara.

Nsogbu Ndị Mmepụta A Na-ahụkarị: ARG, ENV, na Ihe Nzuzo E Dere Koodu

Ndị mmepe na-emekarị leak secrets site Mgbanwe gburugburu ebe obibi nzuzo Dockerfile, .env faịlụ, ma ọ bụ asambodo siri ikeOzugbo e tinyere ya n'ime onyonyo, a pụghị iwepụ ụkpụrụ ndị ahụ n'enweghị nsogbu.

⚠️Ihe atụ na-enweghị nchekwa, maka ebumnuche agụmakwụkwọ naanị. Ejila ya na mmepụta.

ARG GITHUB_TOKEN=ghp_xxxTOKEN ENV DB_PASSWORD="p@ss123" COPY .env /app/.env 

Ntuziaka ndị a na-ekpughe nzere ozugbo ma detuo ha .nke n'ime onyonyo ahụ, na-eme ka ọ pụta ìhè nye onye ọ bụla na-adọkpụ ma ọ bụ na-enyocha ya. Ụdị echekwara:

# .dockerignore should include .env, secrets/, and config/* FROM mcr.microsoft.com/dotnet/runtime:8.0 COPY app/ /app/ RUN --mount=type=secret,id=db_pass cat /run/secrets/db_pass > /tmp/db.txt 

Akwụkwọ mmụta: Jiri mgbanwe gburugburu Dockerfile dị ka ihe na-adịghị mma site na ndabara. .dockerịpụ iji wepụ faịlụ ndị dị mkpa ma bufee asambodo n'oge ọrụ, ọ bụghị oge nrụpụta.

Ịchọta Ihe Nzuzo dị na CI/CD Pipelines

Ihe nzuzo na-apụtakarị site na akpaaka. Mepụta cache, ahazighị ndekọ nke ọma, ma ọ bụ pipeline ndekọ nwere ike idobe data nzuzo Dockerfile ruo mgbe ebighị ebi.

⚠️Ihe atụ na-enweghị nchekwa, maka ebumnuche agụmakwụkwọ naanị. Ejila ya na mmepụta.

# Never expose real tokens, credentials, or internal URLs in pipelines - name: Build image   run: docker build -t myapp --build-arg TOKEN=${{ secrets.API_TOKEN }} . 

Nke a na-eji -wulite-arg, itinye ihe nzuzo dị n'ime metadata onyonyo. Onye ọ bụla nwere ohere ịnweta ndekọ nwere ike iwepụta ya. Ụdị echekwara:

# Functional snippet with control guard - name: Secure build   run: docker buildx build --secret id=api_token,src=.secrets/token.txt . 

Akwụkwọ mmụta: zere -wulite-arg maka ihe nzuzo. BuildKit's nzuzo na-ahụ na a na-eji ihe nzuzo eme ihe naanị na ebe nchekwa n'oge a na-ewu ya, anaghị echekwa ya n'ime akwa.

Mgbochi Bara Uru: Ụlọ Dị Ọcha na Njikwa Nzuzo Dị Nchekwa

Ihe owuwu dị ọcha bụ ntọala nke omume Docker echekwara. Usoro ọrụ dị nchebe na-ewepụ ihe nzuzo n'oge ma na-egbochi njide onwe onye n'amaghị ama n'ime akwa etiti.

mma omume

  1. Jiri BuildKit's mgbe niile -nzuzo ugwu maka data dị mkpa.
  2. Ejila ARG ma ọ bụ ENV maka asambodo.
  3. tinye .nke, nzuzo/, nhazi/ na .dockerịpụ.
  4. Hichaa faịlụ nwa oge tupu usoro onyonyo ikpeazụ.
  5. Wepụ ebe nchekwa ihe owuwu kwa gburugburu ebe obibi iji zere mmetọ ndị ọzọ.

Ndepụta obere ihe mgbochi

  • Nyochaa mgbanwe gburugburu Dockerfile niile.
  • Gbaa mbọ hụ na enweghị asambodo ọ bụla pụtara na ENV, ARG, ma ọ bụ Detuo.
  • Jiri ihe nchekwa nzuzo BuildKit maka data nkeonwe.
  • Nyochaa onyonyo tupu ị pịa ya.
  • Emere nkwado .dockerịpụ anaghị ewepụ faịlụ nkeonwe.

Akwụkwọ mmụta: A naghị agbanwe agbanwe n'etiti ihe ndị dị na Docker. Na-arụ ọrụ dị ọcha, na-enweghị oge, ma na-edebe ihe nzuzo n'èzí akụkọ ihe mere eme nke onyonyo.

Ịchọpụta Ihe Nzuzo Ekpughere Site na Nyocha Akpaaka

Nnyocha akpaaka na-achọpụta na agbapụtala Ihe nzuzo Dockerfile tupu e tinye ya. Ngwaọrụ dịka Trivy, Xygeni, ma ọ bụ GitHub Advanced Security nwere ike ịchọpụta ihe nzuzo dị na oyi akwa onyonyo ma ọ bụ mgbanwe gburugburu ebe nchekwa Dockerfile dị ize ndụ.

Ihe atụ nke ọrụ, ihe atụ nke mmanye ihe gbasara gburugburu

# CI/CD guardrail to detect exposed secrets - name: Scan image   run: trivy image myapp: latest --severity HIGH, CRITICAL --ignore-unfixed 

Tinye nzọụkwụ a na CI/CD pipelinedị ka akụkụ nke ọnụ ụzọ nchekwa.

Akwụkwọ mmụta: Jikọta nyocha kwụ ọtọ na nyocha akpa iji chọpụta asambodo siri ike ma ọ bụ ntuziaka Dockerfile na-enweghị nchekwa tupu ebuga ya.

Otu Xygeni si enyere aka chekwaa ụlọ gị Pipeline

Xygeni Nchekwa Nzuzo na-eme ka nchekwa owuwu Docker sikwuo ike site na inyocha faịlụ Docker ma wuo nhazi maka ihe nzuzo Dockerfile, ojiji ENV/ARG na-adịghị mma, yana asambodo ekpughere na metadata onyonyo. Ọ integrates n'ime CI/CD pipelines, ịmanye ihe owuwu dị ọcha, nke kwekọrọ na iwu na igbochi ihe ndị na-enweghị nchekwa tupu ewepụta ha.

Ihe atụ ọrụ, ihe atụ ihe nchekwa

# Secure enforcement example - name: Enforce Dockerfile secret hygiene   run: dotnet xygeni enforce --rules dockerfile,secrets,build --fail-on-risk  

Akwụkwọ mmụta: Xygeni na-eme ka e nwee ike ịdị ọcha nke ụlọ ahụ na akpaghị aka, na-enyere ndị otu aka ịnọgide na-agbaso iwu ma gbochie mmiri nzuzo na akwa Docker.

Mmechi: Kwụsị Ntupu sitere na Dockerfile Secrets Environment Variables

Nhazi Docker nke nwere akwa anaghị echefu echefu. Ozugbo i tinyere ihe nzuzo, ọ na-anọgide, ọbụlagodi mgbe "iwepụchara ya." Ihe nzuzo Dockerfile na-ezighi ezi, ihe mgbanwe nzuzo Dockerfile, na ihe mgbanwe gburugburu Dockerfile na-adịghị mma na-ahapụ data dị nro n'ime ihe owuwu na ndekọ gị.

Iji kpuchido gị pipelines:

  • Ejila mgbe ARG or ENV maka asambodo.
  • Na-ewulite ya mgbe niile -nzuzo.
  • Wepụ faịlụ ndị dị nro site na .dockerịpụ.
  • Jikọta nyocha akpaka na Xygeni Code Security mmanye.

Nrụgharị ọzọ gị ekwesịghị ibu ihe nzuzo gị gaa n'ihu; chebe ha tupu ha arapara.

ngwaọrụ nyocha sca-ngwaọrụ-ngwanrọ-nchịkọta-ngwaọrụ nyocha
Mee ka ihe egwu dị na ngwanrọ gị buo ibu, dozie ya, ma chekwaa ya
Nweta Akaụntụ N'efu gị.
Enweghị kaadị akwụmụgwọ achọrọ.

Chekwaa mmepe na nnyefe ngwanrọ gị

ya na Xygeni Product Suite