Y fersiwn peryglus o’r newid hwn yw un gorchymyn sy’n troi’r endpoint ac yn cloi pob gweinyddwr ar yr un pryd. Mae’r fersiwn ddiogel yn cadw’r ddwy lwybr yn agored, yn profi bod yr un preifat yn gweithio o’r VPN, ac yna’n unig y mae’n ymddeol yr endpoint cyhoeddus. Tybiwch fod clwstwr yn bodoli, twnnel a gymeradwywyd i’w VPC a kubeconfig sy’n gweithio’n barod; y gwaith yw mynediad preifat at API Kubernetes, nid nodau preifat ac nid model caniatâd newydd. Mae gan bob cam isod wiriad y gallwch fethu’n ddiogel arno.

1. Rhestrwch yr endpoint a chadwch ffordd yn ôl

Cofnodwch y cyflwr presennol cyn ei newid, gan gynnwys y rhestr CIDR cyhoeddus a ganiateir a grŵp diogelwch y clwstwr. Y rhain yw’r ddau y byddwch yn cymharu â nhw pan fydd rhywbeth yn stopio gweithio, ac mae’r rhestr a ganiateir hefyd yn llwybr cwblhau os bydd y llwybr preifat yn troi allan yn anghywir.

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

REGION a CLUSTER yw’r dadleuwyr lle yma. Sylwch beth mae’r faner breifat yn ei ddweud nawr, oherwydd mae clwstwr a grëwyd gyda mynediad preifat eisoes wedi’i alluogi angen cam cyntaf gwahanol na’r un na fu ganddo erioed. Cadwch o leiaf un llwybr gweinyddol a gymeradwywyd ar agor yn ystod y cyfnod pontio; nid yw VPN sy’n dibynnu ar yr un clwstwr fod yn gyrraeddadwy yn llwybr adfer.

2. Galluogwch fynediad preifat gyda’r llwybr rhwydwaith yn ei le

Troi’r faner ymlaen yw’r hanner hawdd. Mae angen llwybr i gyfeiriadau preifat yr endpoint ar y twnnel, ac mae angen TCP 443 ar grŵp diogelwch y clwstwr o’r ffynhonnell y mae’r VPN yn ei chyflwyno mewn gwirionedd. Gall cysylltiad Client VPN, porth site-to-site a VPC cymar gyflwyno cyfeiriadau ffynhonnell gwahanol, felly defnyddiwch y model a wnaethoch ei ddefnyddio yn lle ystod preifat generig.

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

Mae’r diweddariad yn asyncronig. Holwch id y diweddariad nes iddo adrodd llwyddiant yn lle aros nifer penodol o eiliadau a thybio. Gadewch draffig y nodau a’r awyren reoli yn llonydd wrth wneud hyn: disodli holl grŵp diogelwch y clwstwr â rheol ar gyfer eich gliniadur yw sut mae awyren ddata sy’n gweithio yn troi’n ail ddigwyddiad.

Mae’r ddogfennaeth am endpoints EKS yn werth ei darllen unwaith yn llawn, oherwydd mae’n dweud y gall mynediad preifat yn unig ddod o’r VPC neu rwydwaith gysylltiedig. Y frawddeg honno yw’r rheswm cyfan dros fod y mudo hwn yn bosibl, a hi hefyd yw’r rheswm dros fod y cam nesaf yn bodoli.

3. Profwch fod y gweithfan wedi defnyddio’r llwybr preifat

Gyda’r ddau endpoint wedi’u galluogi, nid yw kubectl get ns llwyddiannus yn profi dim am ba un a atebodd. Datryswch enw gwesteiwr yr endpoint a gwiriwch a yw’r cyfeiriad a gawsoch yn perthyn i’r ystod breifat neu’r un gyhoeddus. Os nad yw eich rhwydwaith gysylltiedig yn cael y wedd breifat drwy DNS, bydd y gorchymyn yn llwyddo dros yr endpoint cyhoeddus a byddwch yn ymddeol y llwybr cyhoeddus ar sail tystiolaeth ffug. Dyma’r ffordd fwyaf cyffredin y mae’r mudo hwn yn mynd o’i le, ac mae’n edrych yn union fel llwyddiant.

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

Cadwch yr enw gwesteiwr a’r dilysu tystysgrif yn union fel y maent. Nid yw disodli IP breifat yn y kubeconfig a hepgor dilysu TLS yw’r mudo y gwnaethoch ei ddisgrifio yn y cofnod newid, a bydd yn methu eto y funud y bydd yr endpoint yn cylchdroi.

4. Ymddeolwch y mynediad cyhoeddus yn fwriadol

Unwaith y bydd y llwybr preifat wedi’i ddangos a’r llif adfer wedi’i gymeradwyo, caewch yr endpoint cyhoeddus. Mae hwn yn newid go iawn yn hytrach na rhagolwg, felly rhedwch ef yn erbyn y cyfrif a’r gosodiadau rydych chi’n eu hystyried mewn gwirionedd.

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

Mewn modd preifat yn unig, mae’r enw DNS cyhoeddus yn datrys i gyfeiriadau preifat yr endpoint o du mewn i’r VPC, felly mae datrysiad a chyrraeddadwyedd yn peidio â bod yr un peth. Mae unrhyw beth a oedd yn dibynnu ar y cyfeiriad cyhoeddus, gan gynnwys rhedwyr CI neu liniadur ar rwydwaith wahanol, nawr angen ei lwybr ei hun i mewn.

5. Cadwch bolisi rhwydwaith a pholisi hunaniaeth ar wahân

Mae’r rhestr CIDR mynediad cyhoeddus yn llywodraethu’r endpoint cyhoeddus yn unig. Nid yw’n cyfyngu ar yr endpoint preifat, sydd yn lle hynny’n cael ei ffinio gan grŵp diogelwch y clwstwr a pholisi’r rhwydwaith gysylltiedig. Os cadwch yr endpoint cyhoeddus, rhaid i’w restr a ganiateir gyd-fynd â’r allbwn cyhoeddus y mae eich cleientiaid API a’ch nodau yn ei ddefnyddio mewn gwirionedd; anaml yw cyfeiriad pwll VPN y ffynhonnell honno.

Nid oes dim o hyn yn newid IAM na Kubernetes RBAC. Mae gosodiadau endpoint yn weithred weinyddol, ac ni ddylai defnyddwyr cyffredin gael caniatâd i lacio’r ffin dim ond i gyrraedd yr API. Ysgrifennwch y cyflwr terfynol, y dyddiad a’r llwybr adfer yn y runbook, yna profwch y llwybr adfer unwaith tra mae’n dal yn hawdd.

Erthyglau cysylltiedig