Following guide will allow you to run any kubectl
commands on your local machine to access clusters running remotely (on AWS.. etc) without need to setup any public access to the cluster.
Instead of ssh
-ing into remote host to run kubectl
commands you can use SSH port forwarding for the port on the remote cluster where your Kubernetes API is listening and use same kubeconfig as the one on the remote machine.