EKS
You can use Granted as a kubectl credential plugin to authenticate to EKS clusters. kubectl uses a “kubeconfig” file, which is located at ~/.kube/config by default. To use Granted with EKS, we’ll modify this kubeconfig file.
First, add an entry for your cluster to the kubeconfig file by running
aws eks update-kubeconfig --name <CLUSTER_NAME>Where <CLUSTER_NAME> is the name of the EKS cluster you’re trying to connect to. This command will add an entry to your kubeconfig file similar to the below:
users: - name: arn:aws:eks:ap-southeast-2:123456789012:cluster/<CLUSTER_NAME> user: exec: apiVersion: client.authentication.k8s.io/v1beta1 args: - --region - <CLUSTER_REGION> - eks - get-token - --cluster-name - <CLUSTER_NAME> command: aws env: null provideClusterInfo: falseNow, modify the exec field of this entry to be the following:
- name: arn:aws:eks:ap-southeast-2:123456789012:cluster/<CLUSTER_NAME> user: exec: apiVersion: client.authentication.k8s.io/v1beta1 args: [ "<PROFILE_NAME>", "--exec", "aws --region <CLUSTER_REGION> eks get-token --cluster-name <CLUSTER_NAME>", ] command: assume env: - name: GRANTED_QUIET value: "true" - name: FORCE_NO_ALIAS value: "true" interactiveMode: IfAvailable provideClusterInfo: falseWhere <PROFILE_NAME> is the name of the AWS profile to use, <CLUSTER_REGION> is the region the EKS cluster is deployed to, and <CLUSTER_NAME> is the name of the EKS cluster.
Now, run a kubectl command against the cluster to verify the connection:
kubectl get nodesThe command should print the list of nodes for your cluster.