Toleo la hatari la mabadiliko haya ni amri moja inayogeuza endpoint na kuwafunga watawala wote kwa wakati mmoja. Toleo salama huweka njia zote mbili wazi, huthibitisha kwamba ile ya kibinafsi inafanya kazi kutoka VPN, na kisha tu huondoa endpoint ya umma. Chukulia kuna cluster iliyopo, handaki iliyoidhinishwa ndani ya VPC yake na kubeconfig inayofanya kazi tayari; kazi ni ufikiaji wa kibinafsi kwa API ya Kubernetes, si nodes za kibinafsi na si mfumo mpya wa ruhusa. Kila hatua hapa chini ina ukaguzi ambao unaweza kushindwa kwa usalama.

1. Orodhesha endpoint na uhifadhi njia ya kurudi

Rekodi hali ya sasa kabla ya kuibadilisha, ikiwa ni pamoja na orodha ya CIDR ya umma inayoruhusiwa na kikundi cha usalama cha cluster. Hizi mbili ndizo utakazolinganisha wakati kitu kitaacha kufanya kazi, na orodha inayoruhusiwa pia ni njia yako ya kurudi ikiwa njia ya kibinafsi itageuka kuwa mbaya.

aws eks describe-cluster --region REGION --name CLUSTER \
  --query 'cluster.{endpoint:endpoint,public:resourcesVpcConfig.endpointPublicAccess,private:resourcesVpcConfig.endpointPrivateAccess,cidrs:resourcesVpcConfig.publicAccessCidrs}'

REGION na CLUSTER ni nafasi za kujaza hapa. Angalia bendera ya kibinafsi inasoma nini sasa, kwa sababu cluster iliyoundwa na ufikiaji wa kibinafsi tayari umewashwa inahitaji hatua ya kwanza tofauti na ile ambayo haijawahi kuwa nayo. Weka angalau njia moja ya utawala iliyoidhinishwa wazi wakati wa mpito; VPN inayotegemea cluster hiyo hiyo kufikiwa si njia ya urejeshaji.

2. Washa ufikiaji wa kibinafsi wakati njia ya mtandao iko tayari

Kuwasha bendera ni nusu rahisi. Handaki linahitaji njia kuelekea anwani za kibinafsi za endpoint, na kikundi cha usalama cha cluster kinahitaji TCP 443 kutoka chanzo ambacho VPN inawasilisha kwa kweli. Uhusiano wa Client VPN, lango la site-to-site na VPC iliyounganishwa zote zinaweza kuwasilisha anwani tofauti za chanzo, kwa hiyo tumia modeli uliyotumia badala ya masafa ya kawaida ya kibinafsi.

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=true,endpointPrivateAccess=true

aws eks describe-update --region REGION --name CLUSTER --update-id UPDATE_ID

Sasisho ni asynchronous. Uliza id ya sasisho hadi itakaporipoti mafanikio badala ya kusubiri idadi maalum ya sekunde na kudhani. Acha trafiki ya nodes na ndege ya udhibiti peke yake unapofanya hivi: kubadilisha kikundi chote cha usalama cha cluster na kanuni kwa ajili ya kompyuta yako ya mkononi ndiyo njia ambayo ndege ya data inayofanya kazi inakuwa tukio la pili.

Nyaraka za endpoint za EKS zinafaa kusomwa mara moja kikamilifu, kwa sababu zinasema kwamba ufikiaji wa kibinafsi pekee unaweza kutoka VPC au mtandao uliounganishwa. Sentensi hiyo ndiyo sababu yote kwa nini uhamishaji huu unawezekana, na pia ndiyo sababu hatua inayofuata ipo.

3. Thibitisha kwamba kituo cha kazi kilitumia njia ya kibinafsi

Pamoja na endpoint zote mbili kuwashwa, kubectl get ns iliyofanikiwa haithibitishi chochote kuhusu ipi ilijibu. Tatua jina la mwenyeji la endpoint na uangalie ikiwa anwani uliyopata ni ya masafa ya kibinafsi au ya umma. Ikiwa mtandao wako uliounganishwa haupokei mwonekano wa kibinafsi kupitia DNS, amri itafanikiwa kupitia endpoint ya umma na utaondoa njia ya umma kwa ushahidi wa uongo. Hii ndiyo njia ya kawaida zaidi ambayo uhamishaji huu huenda vibaya, na inaonekana kama mafanikio hasa.

nslookup HASH.gr7.REGION.eks.amazonaws.com
kubectl cluster-info
kubectl get ns --request-timeout=10s

Hifadhi jina la mwenyeji na uthibitishaji wa cheti kama zilivyo. Kubadilisha na IP ya kibinafsi kwenye kubeconfig na kuruka uthibitishaji wa TLS si uhamishaji ulioelezea kwenye rekodi ya mabadiliko, na itashindwa tena wakati endpoint inapozunguka.

4. Ondoa ufikiaji wa umma kwa makusudi

Mara njia ya kibinafsi itakapodhihirishwa na mtiririko wa urejeshaji uidhinishwe, funga endpoint ya umma. Hii ni mabadiliko ya kweli na si onyesho la awali, kwa hiyo iendeshe dhidi ya akaunti na mipangilio unayokusudia kweli.

aws eks update-cluster-config --region REGION --name CLUSTER \
  --resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true

Katika hali ya kibinafsi pekee, jina la DNS la umma hutatuliwa kwa anwani za kibinafsi za endpoint kutoka ndani ya VPC, kwa hiyo utatuzi na ufikivu haviwi kitu kimoja tena. Kitu chochote kilichotegemea anwani ya umma, ikiwa ni pamoja na waendeshaji wa CI au kompyuta ya mkononi kwenye mtandao mwingine, sasa kinahitaji njia yake ya kuingia.

5. Weka sera ya mtandao na sera ya utambulisho tofauti

Orodha ya CIDR ya ufikiaji wa umma inasimamia endpoint ya umma pekee. Haizuii endpoint ya kibinafsi, ambayo badala yake inazuiwa na kikundi cha usalama cha cluster na sera ya mtandao uliounganishwa. Ikiwa utaweka endpoint ya umma, orodha yake inayoruhusiwa lazima ilingane na kutoka kwa umma ambako wateja wako wa API na nodes wanatumia kweli; anwani ya bwawa la VPN mara chache ndiyo chanzo hicho.

Hakuna kitu kati ya haya kinachobadilisha IAM au Kubernetes RBAC. Mipangilio ya endpoint ni hatua ya kiutawala, na watumiaji wa kawaida hawapaswi kupokea ruhusa ya kulegeza mpaka ili kufikia API pekee. Andika hali ya mwisho, tarehe na njia ya urejeshaji kwenye runbook, kisha jaribu njia ya urejeshaji mara moja ikiwa bado ni rahisi.

Makala zinazohusiana