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.
