EKS es el servicio de AWS para hacer clusters K8s y poder desplegar nuestros contenedores y servicios de forma fácil y automátizada. En el caso de uso que estoy desarrollando, instalo Jenkins en un EC2 y desde el pipeline necesito desplegar algunos contenedores y servicios. Como buena practica de seguridad es necesario hacer un IAM Role con los permisos necesarios para administrar el EKS y asignar el Role al EC2.
El objeto aws-auth ConfigMap en el namespace kube-system del EKS contiene la lista de los usuarios y roles que tienen acceso. En ese objeto debemos ingresar el rol asignado al EC2 donde tengo el Jenkins instalado.
kubectl edit configmaps/aws-auth -n kube-system
apiVersion: v1 data: mapRoles: | - rolearn: arn:aws:iam::XXXXXXXXXXXX:role/ROLE_NAME username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - system:masters
Conectarte al EKS por un IAM Role asignado a un EC2