Encontrando el IAM role usado por un POD

Advertisements

Al usar EKS (Kubernetes en AWS), se puede adjuntar un pod a un rol de IAM que proporciona permisos sobre otros servicios de AWS (S3 buckets, instancias EC2, RDS, etc.). El IAM role se puede adjuntar al pod de diferentes maneras.

  • Podría ser el perfil de instancia predeterminado de la instancia EC2 utilizada para los nodos.
  • Indicando la anotación iam.amazonaws.com/role:<my-role-name> al crear el pod/deployment. Donde <my-role-name> hace referencia a un IAM role existente en AWS con una relación de confianza AssumeRole con el clúster de EKS.
  • Crear una “service-account” capaz de asumir ese rol y usar el service account en el pod. Dicho “service account” es un iamserviceaccount específica para AWS y creada a través de eksctl.

Cualquiera que sea el método, nuestro pod obtiene un rol de IAM, cuando el pod se está ejecutando, es posible que debamos validar o verificar cuál es el rol de IAM disponible o, de lo contrario, cambiar al rol de IAM deseado. Encontrar el rol de IAM disponible en el pod es tan fácil como ejecutar el siguiente comando.

Advertisements
kubectl exec -it myapp-podid -- sh
$ curl -s 169.254.169.254/latest/meta-data/iam/security-credentials/

Primero estamos ejecutando una sesión sh en el pod. Una vez en la sesión sh en el pod, usando curl consulta el endpoint de metadatos. La respuesta nos ayudará a identificar el rol de IAM que usa el pod.

my-role-name					#Role indicado por medio de anotación iam.amazonaws.com/role
or
my-role-nameroot@myapp-podid    #Role indicado por medio de EC2 default instance profile

Con eso podemos identificar que el pod está usando el IAM role my-role-name

Referencias

Advertisements

Leave a Reply

Your email address will not be published. Required fields are marked *