Debugando mensajes de error en terraform con CloudTrail

Hoy me he encontrado con un mensaje de error al aplicar terraform para crear un ASG y su Launch Template en AWS que no me ha parecido intuitivo.

Error: Error creating AutoScaling Group: 
AccessDenied: You are not authorized to use launch template: name-of-the-template
	status code: 403, request id: 12425678-7890-4567-1234-14ef2ea89123

Bueno, en realidad era un «Access Denied». ¿Fácil, no? Pues no, o por lo menos no para mí. El usuario que aplicaba terraform ya tenía los permisos que a priori parecía que necesitaba para poder crear ese recurso y sus asociados.

Entonces… ¿cómo saber de qué permisos se me está quejando? Aquí es donde entra CloudTrail. Lo que he hecho es básicamente buscar los eventos para el usuario con el que estaba ejecutando el comando, pues no he encontrado la forma de usar la request-id que nos devuelve el error. Recuerda que pueden tardar varios minutos hasta que aparezcan los eventos en CloudTrail, así que paciencia.

Continuar leyendo «Debugando mensajes de error en terraform con CloudTrail»

Usa diferentes versiones de terraform con tfenv

Cuando trabajas en grandes entornos gestionados con terraform, es muy probable que tengas que trabajar a su vez con diferentes versiones de terraform, según requieran cada unos de los proyectos.

En lugar de descargar las diferentes versiones que necesitemos, renombrando los ejecutables, moviéndolos a algún directorio dentro del PATH y jugando con enlaces simbólicos, podemos símplemente usar el maravilloso tfenv.

Descarga e instalación

Para empezar a usar tfenv, lo único que necesitaremos será clonar el repositorio (por ejemplo en nuestra home) y crear un enlace simbólico para que tfenv esté disponible en el PATH.

[adri@adri ~]$ git clone https://github.com/kamatama41/tfenv.git ~/.tfenv
Cloning into '/home/adri/.tfenv'...
remote: Counting objects: 716, done.
remote: Total 716 (delta 0), reused 0 (delta 0), pack-reused 716
Receiving objects: 100% (716/716), 102.65 KiB | 0 bytes/s, done.
Resolving deltas: 100% (449/449), done.
Checking connectivity... done.

[adri@adri ~]$ sudo ln -s ~/.tfenv/bin/* /usr/local/bin

Continuar leyendo «Usa diferentes versiones de terraform con tfenv»