EKS API ਨੂੰ VPN ਪਿੱਛੇ ਰੱਖੋ: ਕਾਰਵਾਈਆਂ ਦਾ ਕ੍ਰਮ
ਨਿੱਜੀ ਐਂਡਪੌਇੰਟ ਸਮਰੱਥ ਕਰੋ, ਸਾਬਤ ਕਰੋ ਕਿ kubectl ਉੱਥੇ ਪਹੁੰਚਿਆ, ਫਿਰ ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਬੰਦ ਕਰੋ। ਹਰ ਕਦਮ ਵਿਚਕਾਰ ਕਮਾਂਡਾਂ ਅਤੇ ਜਾਂਚਾਂ ਵਾਲੀ ਪੜਾਅਵਾਰ ਰਨਬੁੱਕ।
ਇਸ ਬਦਲਾਅ ਦਾ ਖ਼ਤਰਨਾਕ ਸੰਸਕਰਣ ਇੱਕ ਹੀ ਕਮਾਂਡ ਹੈ ਜੋ ਐਂਡਪੌਇੰਟ ਨੂੰ ਪਲਟਦੀ ਹੈ ਅਤੇ ਇੱਕੋ ਸਮੇਂ ਸਾਰੇ ਪ੍ਰਬੰਧਕਾਂ ਨੂੰ ਬੰਦ ਕਰ ਦਿੰਦੀ ਹੈ। ਸੁਰੱਖਿਅਤ ਸੰਸਕਰਣ ਦੋਵੇਂ ਰਾਹ ਖੁੱਲ੍ਹੇ ਰੱਖਦਾ ਹੈ, ਸਾਬਤ ਕਰਦਾ ਹੈ ਕਿ ਨਿੱਜੀ ਰਾਹ VPN ਤੋਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਹੀ ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਹਟਾਉਂਦਾ ਹੈ। ਮੌਜੂਦਾ ਕਲਸਟਰ, ਇਸਦੇ VPC ਵਿੱਚ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਟਨਲ ਅਤੇ ਪਹਿਲਾਂ ਹੀ ਕੰਮ ਕਰ ਰਿਹਾ kubeconfig ਮੰਨੋ; ਕੰਮ Kubernetes API ਤੱਕ ਨਿੱਜੀ ਪਹੁੰਚ ਹੈ, ਨਿੱਜੀ ਨੋਡ ਨਹੀਂ ਅਤੇ ਨਵਾਂ ਇਜਾਜ਼ਤ ਮਾਡਲ ਨਹੀਂ। ਹੇਠਾਂ ਹਰ ਕਦਮ ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਫੇਲ੍ਹ ਹੋ ਸਕਣ ਵਾਲੀ ਜਾਂਚ ਹੈ।
1. ਐਂਡਪੌਇੰਟ ਦੀ ਸੂਚੀ ਬਣਾਓ ਅਤੇ ਵਾਪਸੀ ਦਾ ਰਾਹ ਰੱਖੋ
ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਸਥਿਤੀ ਦਰਜ ਕਰੋ, ਜਿਸ ਵਿੱਚ ਜਨਤਕ CIDR ਮਨਜ਼ੂਰ ਸੂਚੀ ਅਤੇ ਕਲਸਟਰ ਸੁਰੱਖਿਆ ਸਮੂਹ ਸ਼ਾਮਲ ਹਨ। ਕੁਝ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰੇ ਤਾਂ ਤੁਸੀਂ ਇਹਨਾਂ ਦੋਹਾਂ ਨਾਲ ਤੁਲਨਾ ਕਰੋਗੇ, ਅਤੇ ਜੇ ਨਿੱਜੀ ਰਾਹ ਗਲਤ ਨਿਕਲੇ ਤਾਂ ਮਨਜ਼ੂਰ ਸੂਚੀ ਹੀ ਤੁਹਾਡਾ ਰੋਲਬੈਕ ਰਾਹ ਹੈ।
aws eks describe-cluster --region REGION --name CLUSTER \
--query 'cluster.{endpoint:endpoint,public:resourcesVpcConfig.endpointPublicAccess,private:resourcesVpcConfig.endpointPrivateAccess,cidrs:resourcesVpcConfig.publicAccessCidrs}'
ਇੱਥੇ REGION ਅਤੇ CLUSTER ਪਲੇਸਹੋਲਡਰ ਹਨ। ਨਿੱਜੀ ਝੰਡਾ ਹੁਣ ਕੀ ਦਿਖਾ ਰਿਹਾ ਹੈ ਇਸ ਵੱਲ ਧਿਆਨ ਦਿਓ, ਕਿਉਂਕਿ ਪਹਿਲਾਂ ਹੀ ਨਿੱਜੀ ਪਹੁੰਚ ਸਮਰੱਥ ਵਾਲੇ ਕਲਸਟਰ ਨੂੰ ਕਦੇ ਨਾ ਹੋਣ ਵਾਲੇ ਕਲਸਟਰ ਨਾਲੋਂ ਵੱਖਰਾ ਪਹਿਲਾ ਕਦਮ ਚਾਹੀਦਾ ਹੈ। ਬਦਲਾਅ ਦੌਰਾਨ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਪ੍ਰਬੰਧਕੀ ਰਾਹ ਖੁੱਲ੍ਹਾ ਰੱਖੋ; ਜੋ VPN ਉਸੇ ਕਲਸਟਰ ਦੀ ਪਹੁੰਚ 'ਤੇ ਨਿਰਭਰ ਹੈ ਉਹ ਰਿਕਵਰੀ ਰਾਹ ਨਹੀਂ।
2. ਨੈੱਟਵਰਕ ਰਾਹ ਤਿਆਰ ਹੋਣ 'ਤੇ ਨਿੱਜੀ ਪਹੁੰਚ ਸਮਰੱਥ ਕਰੋ
ਝੰਡਾ ਚਾਲੂ ਕਰਨਾ ਸੌਖਾ ਅੱਧ ਹੈ। ਟਨਲ ਨੂੰ ਐਂਡਪੌਇੰਟ ਦੇ ਨਿੱਜੀ ਪਤਿਆਂ ਤੱਕ ਰਾਹ ਚਾਹੀਦਾ ਹੈ, ਅਤੇ ਕਲਸਟਰ ਸੁਰੱਖਿਆ ਸਮੂਹ ਨੂੰ VPN ਜੋ ਅਸਲ ਵਿੱਚ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਉਸ ਸਰੋਤ ਤੋਂ TCP 443 ਚਾਹੀਦਾ ਹੈ। Client VPN ਸੰਬੰਧ, ਸਾਈਟ-ਟੂ-ਸਾਈਟ ਗੇਟਵੇ ਅਤੇ ਪੀਅਰ ਕੀਤਾ VPC ਸਾਰੇ ਵੱਖਰੇ ਸਰੋਤ ਪਤੇ ਪੇਸ਼ ਕਰ ਸਕਦੇ ਹਨ, ਇਸ ਲਈ ਆਮ ਨਿੱਜੀ ਰੇਂਜ ਦੀ ਬਜਾਏ ਤੁਹਾਡੇ ਦੁਆਰਾ ਤੈਨਾਤ ਮਾਡਲ ਵਰਤੋ।
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
ਅੱਪਡੇਟ ਅਸਿੰਕ੍ਰੋਨਸ ਹੈ। ਨਿਸ਼ਚਿਤ ਸਕਿੰਟ ਉਡੀਕ ਕੇ ਮੰਨ ਲੈਣ ਦੀ ਬਜਾਏ ਅੱਪਡੇਟ ਆਈਡੀ ਸਫਲਤਾ ਦੀ ਰਿਪੋਰਟ ਕਰਨ ਤੱਕ ਪੁੱਛੋ। ਇਹ ਕਰਦੇ ਸਮੇਂ ਨੋਡ ਅਤੇ ਕੰਟਰੋਲ-ਪਲੇਨ ਟ੍ਰੈਫਿਕ ਨੂੰ ਇਕੱਲਾ ਛੱਡੋ: ਕਲਸਟਰ ਦਾ ਪੂਰਾ ਸੁਰੱਖਿਆ ਸਮੂਹ ਤੁਹਾਡੇ ਲੈਪਟਾਪ ਲਈ ਨਿਯਮ ਨਾਲ ਬਦਲਣਾ ਹੀ ਕੰਮ ਕਰ ਰਹੇ ਡੇਟਾ ਪਲੇਨ ਨੂੰ ਦੂਜੀ ਘਟਨਾ ਬਣਾਉਣ ਦਾ ਤਰੀਕਾ ਹੈ।
EKS ਐਂਡਪੌਇੰਟਾਂ ਦੇ ਦਸਤਾਵੇਜ਼ ਇੱਕ ਵਾਰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪੜ੍ਹਨ ਯੋਗ ਹਨ, ਕਿਉਂਕਿ ਇਹਨਾਂ ਵਿੱਚ ਕਿਹਾ ਗਿਆ ਹੈ ਕਿ ਸਿਰਫ਼-ਨਿੱਜੀ ਪਹੁੰਚ VPC ਜਾਂ ਜੁੜੇ ਨੈੱਟਵਰਕ ਤੋਂ ਆ ਸਕਦੀ ਹੈ। ਉਹੀ ਵਾਕ ਇਸ ਮਾਈਗ੍ਰੇਸ਼ਨ ਦੇ ਸੰਭਵ ਹੋਣ ਦਾ ਪੂਰਾ ਕਾਰਨ ਹੈ, ਅਤੇ ਅਗਲਾ ਕਦਮ ਹੋਣ ਦਾ ਕਾਰਨ ਵੀ ਉਹੀ ਹੈ।
3. ਸਾਬਤ ਕਰੋ ਕਿ ਵਰਕਸਟੇਸ਼ਨ ਨੇ ਨਿੱਜੀ ਰਾਹ ਵਰਤਿਆ
ਦੋਵੇਂ ਐਂਡਪੌਇੰਟ ਸਮਰੱਥ ਹੋਣ 'ਤੇ ਸਫਲ kubectl get ns ਇਸ ਬਾਰੇ ਕੁਝ ਸਾਬਤ ਨਹੀਂ ਕਰਦਾ ਕਿ ਕਿਸਨੇ ਜਵਾਬ ਦਿੱਤਾ। ਐਂਡਪੌਇੰਟ ਦਾ ਹੋਸਟਨਾਮ ਹੱਲ ਕਰੋ ਅਤੇ ਜਾਂਚੋ ਕਿ ਮਿਲਿਆ ਪਤਾ ਨਿੱਜੀ ਰੇਂਜ ਦਾ ਹੈ ਜਾਂ ਜਨਤਕ। ਜੇ ਤੁਹਾਡਾ ਜੁੜਿਆ ਨੈੱਟਵਰਕ DNS ਰਾਹੀਂ ਨਿੱਜੀ ਦ੍ਰਿਸ਼ ਨਹੀਂ ਪ੍ਰਾਪਤ ਕਰਦਾ, ਤਾਂ ਕਮਾਂਡ ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਰਾਹੀਂ ਸਫਲ ਹੋਵੇਗੀ ਅਤੇ ਤੁਸੀਂ ਝੂਠੇ ਸਬੂਤ 'ਤੇ ਜਨਤਕ ਰਾਹ ਹਟਾ ਦੇਵੋਗੇ। ਇਹ ਇਸ ਮਾਈਗ੍ਰੇਸ਼ਨ ਦੇ ਗਲਤ ਹੋਣ ਦਾ ਸਭ ਤੋਂ ਆਮ ਤਰੀਕਾ ਹੈ, ਅਤੇ ਇਹ ਬਿਲਕੁਲ ਸਫਲਤਾ ਵਰਗਾ ਦਿਸਦਾ ਹੈ।
nslookup HASH.gr7.REGION.eks.amazonaws.com
kubectl cluster-info
kubectl get ns --request-timeout=10s
ਹੋਸਟਨਾਮ ਅਤੇ ਸਰਟੀਫਿਕੇਟ ਪ੍ਰਮਾਣਿਕਤਾ ਨੂੰ ਜਿਵੇਂ ਹਨ ਤਿਵੇਂ ਰੱਖੋ। kubeconfig ਵਿੱਚ ਨਿੱਜੀ IP ਪਾਉਣਾ ਅਤੇ TLS ਪੜਤਾਲ ਛੱਡਣਾ ਉਹ ਮਾਈਗ੍ਰੇਸ਼ਨ ਨਹੀਂ ਜੋ ਤੁਸੀਂ ਬਦਲਾਅ ਰਿਕਾਰਡ ਵਿੱਚ ਬਿਆਨ ਕੀਤਾ, ਅਤੇ ਐਂਡਪੌਇੰਟ ਘੁੰਮਣ ਵੇਲੇ ਇਹ ਫਿਰ ਫੇਲ੍ਹ ਹੋਵੇਗਾ।
4. ਜਨਤਕ ਪਹੁੰਚ ਜਾਣਬੁੱਝ ਕੇ ਹਟਾਓ
ਇੱਕ ਵਾਰ ਨਿੱਜੀ ਰਾਹ ਦਿਖਾਉਣ ਤੋਂ ਬਾਅਦ ਅਤੇ ਰਿਕਵਰੀ ਵਹਾਅ ਮਨਜ਼ੂਰ ਹੋਣ ਤੋਂ ਬਾਅਦ, ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਬੰਦ ਕਰੋ। ਇਹ ਪੂਰਵ-ਝਲਕ ਨਹੀਂ ਸਗੋਂ ਅਸਲ ਬਦਲਾਅ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਉਸੇ ਖਾਤੇ ਅਤੇ ਸੈਟਿੰਗਾਂ 'ਤੇ ਚਲਾਓ ਜਿਨ੍ਹਾਂ ਦਾ ਤੁਸੀਂ ਸੱਚਮੁੱਚ ਇਰਾਦਾ ਰੱਖਦੇ ਹੋ।
aws eks update-cluster-config --region REGION --name CLUSTER \
--resources-vpc-config endpointPublicAccess=false,endpointPrivateAccess=true
ਸਿਰਫ਼-ਨਿੱਜੀ ਮੋਡ ਵਿੱਚ ਜਨਤਕ DNS ਨਾਮ VPC ਦੇ ਅੰਦਰੋਂ ਐਂਡਪੌਇੰਟ ਦੇ ਨਿੱਜੀ ਪਤਿਆਂ 'ਤੇ ਹੱਲ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਹੱਲ ਅਤੇ ਪਹੁੰਚ ਇੱਕੋ ਚੀਜ਼ ਰਹਿਣਾ ਬੰਦ ਹੋ ਜਾਂਦੀ ਹੈ। ਜਨਤਕ ਪਤੇ 'ਤੇ ਨਿਰਭਰ ਹਰ ਚੀਜ਼ ਨੂੰ, ਜਿਸ ਵਿੱਚ CI ਰਨਰ ਜਾਂ ਕਿਸੇ ਹੋਰ ਨੈੱਟਵਰਕ ਦਾ ਲੈਪਟਾਪ ਵੀ ਸ਼ਾਮਲ ਹੈ, ਹੁਣ ਆਪਣਾ ਪ੍ਰਵੇਸ਼ ਰਾਹ ਚਾਹੀਦਾ ਹੈ।
5. ਨੈੱਟਵਰਕ ਨੀਤੀ ਅਤੇ ਪਛਾਣ ਨੀਤੀ ਨੂੰ ਵੱਖਰਾ ਰੱਖੋ
ਜਨਤਕ ਪਹੁੰਚ CIDR ਸੂਚੀ ਸਿਰਫ਼ ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦੀ ਹੈ। ਇਹ ਨਿੱਜੀ ਐਂਡਪੌਇੰਟ ਨੂੰ ਸੀਮਤ ਨਹੀਂ ਕਰਦੀ, ਉਸਨੂੰ ਇਸ ਦੀ ਬਜਾਏ ਕਲਸਟਰ ਸੁਰੱਖਿਆ ਸਮੂਹ ਅਤੇ ਜੁੜੇ-ਨੈੱਟਵਰਕ ਨੀਤੀ ਸੀਮਤ ਕਰਦੀ ਹੈ। ਜੇ ਤੁਸੀਂ ਜਨਤਕ ਐਂਡਪੌਇੰਟ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਇਸਦੀ ਮਨਜ਼ੂਰ ਸੂਚੀ ਨੂੰ ਉਸ ਜਨਤਕ ਈਗ੍ਰੇਸ ਨਾਲ ਮੇਲ ਖਾਣਾ ਚਾਹੀਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ API ਕਲਾਇੰਟ ਅਤੇ ਨੋਡ ਅਸਲ ਵਿੱਚ ਵਰਤਦੇ ਹਨ; VPN ਪੂਲ ਦਾ ਪਤਾ ਘੱਟ ਹੀ ਉਹ ਸਰੋਤ ਹੁੰਦਾ ਹੈ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ IAM ਜਾਂ Kubernetes RBAC ਨਹੀਂ ਬਦਲਦਾ। ਐਂਡਪੌਇੰਟ ਸੈਟਿੰਗਾਂ ਪ੍ਰਬੰਧਕੀ ਕਾਰਵਾਈ ਹਨ, ਅਤੇ ਆਮ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਸਿਰਫ਼ API ਤੱਕ ਪਹੁੰਚਣ ਲਈ ਸੀਮਾ ਢਿੱਲੀ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਮਿਲਣੀ ਚਾਹੀਦੀ। ਅੰਤਮ ਸਥਿਤੀ, ਤਾਰੀਖ਼ ਅਤੇ ਰਿਕਵਰੀ ਰਾਹ ਰਨਬੁੱਕ ਵਿੱਚ ਲਿਖੋ, ਫਿਰ ਰਿਕਵਰੀ ਰਾਹ ਨੂੰ ਇੱਕ ਵਾਰ ਪਰਖੋ ਜਦੋਂ ਇਹ ਅਜੇ ਵੀ ਸੌਖਾ ਹੈ।