Construido para el propósito de la infraestructura como solución de código (IAC), Terraform admite múltiples proveedores de servicios en la nube. Es una herramienta de código abierto desarrollada por Hashicorp. Usando IAC, podemos administrar la configuración de infraestructura con archivos de configuración. Por ejemplo, podemos implementar, actualizar y administrar nuestra infraestructura definiendo los recursos requeridos.
En esta guía, veremos cómo podemos crear un usuario de AWS y adjuntarle una política utilizando Terraform. Primero comencemos con la instalación de Terraform en Ubuntu 20.04.
Instalación de Terraform
Hashicorp proporciona el paquete oficial de Terraform para Ubuntu/Debian, Centos/Rhel, Fedora y Amazon Linux. Además de esto, también mantiene binario precompilado y también se puede compilar de la fuente. Para esta guía, estamos utilizando el paquete predeterminado proporcionado por el repositorio de paquetes Debian para instalar Terraform en Ubuntu 20.04.
Paso 1. Instale paquetes Gnupg, Software-Properties-Common y curl para verificar la firma GPG de Hashicorp e instalar el repositorio requerido:
$ sudo apt-get actualización && sudo apt-get install -y gnupg software-properties-common curl
Paso 2. Agregue la tecla Hashicorp GPG usando el comando:
$ curl -fssl https: // apt.lanzamientos.Hashicorp.com/gpg | sudo apt-key agregar -
Paso 3. Continuar agregando el repositorio requerido.
$ sudo apt-add-repository "Deb [arch = amd64] https: // apt.lanzamientos.Hashicorp.com $ (lsb_release -cs) principal "
Etapa 4. Ejecute el comando de actualización para agregar el repositorio e instalar Terraform.
$ sudo apt-get actualización && sudo apt-get install terraform
Paso 5. Verifique si se instala Terraform ejecutando el comando:
$ Terraform -version
Nuestro Terraform está instalado en nuestra máquina local, para que podamos continuar nuestra tarea de trabajar con AWS. Como se mencionó anteriormente, Terraform utiliza varios archivos de configuración para aprovisionar recursos. Cada uno de estos archivos debe residir en su respectiva carpeta/directorio de trabajo. Creemos un directorio para este propósito.
Haga una carpeta para contener sus archivos de configuración y cambie el directorio a esta carpeta:
$ mkdir linuxhint-teraform && cd linuxhint-terraform
1. Creación de usuarios de IAM usando Terraform
Tenemos solo un usuario de IAM en este momento:
Ahora haremos un 'user_create.TF'Archivo que se utilizará para crear nuestro' Amouser 'de nuestro usuario:
$ nano user_create.TF
Ahora coloque la siguiente configuración dentro:
TerraformCrear una política y adjuntarla al usuario de IAM utilizando Terraform
Crearemos una lista de S3 en todas las políticas de cubos y la adjuntaremos a nuestro usuario de IAM. Ahora agregue el archivo anterior con este código:
recurso "aws_iam_user_policy" "iam"Este archivo contiene toda la configuración que se implementará utilizando Terraform. Simplemente reemplace el texto en negrita con sus propios detalles de configuración. Exploremos cada una de las secciones utilizadas en el archivo anterior:
El atributo de la versión define la versión del proveedor que desea usar.
Para validar o verificar su configuración, use el comando:
$ Terraform Validate
Inicializando el directorio de Terraform
Para descargar e instalar el proveedor que definimos en nuestra configuración y otros archivos, necesitamos inicializar el directorio que contiene este archivo:
$ Terraform init
Como puede ver en la imagen de arriba, nuestro comando init es exitoso y hay algunos archivos nuevos también creados aquí. También hay un comando más: 'Plan Terraform'. Aunque no es obligatorio usarlo, tiene algunos beneficios. Por ejemplo.:
1. Puedes ver las acciones que Terraform va a realizar.
2. Puede señalar errores sintácticos en sus archivos de configuración.
Terraform no menciona este comando en su documentación porque cuando ejecuta el comando 'Terraform Aplice', el mismo plan se presentará nuevamente.
Construyendo la infraestructura
Para construir nuestra infraestructura, use el comando:
$ Terraform se aplica
Esto generará primero el plan de ejecución que describe las tareas que Terraform realizará para llevar el estado de su infraestructura a la definida en su archivo de configuración. Después de esto, se detendrá y le pedirá que confirme el plan para continuar. Si todo está configurado como lo desea, escriba 'Sí' para continuar:
Si está listo para continuar, escriba 'Sí'. Tenga en cuenta que completar el proceso lleva algún tiempo. Cuando se complete este proceso, aparecerá el siguiente mensaje:
Para ver sus credenciales de seguridad, abra el 'Terraform.archivo de tfstate 'y busque el atributo de valor en el "secret_key" y "access_key":
En su consola de administración de AWS IAM, el usuario de IAM se enumerará allí:
Para verificar qué política se adjunta a este usuario de IAM, haga clic en el nombre del usuario de IAM. De la siguiente captura de pantalla, podemos ver que o 'Amouser' tiene una política de 'prueba' adjunta con el mismo permiso que adjuntamos anteriormente en el archivo de Terraform.
Verificar la política
Para ver si nuestra política adjunta funciona como se esperaba, conéctese al usuario de IAM y ejecute el comando:
$ AWS S3 LS
Si todo se ha configurado correctamente, verá la lista de sus cubos aquí:
Destruyendo los recursos
Cuando haya terminado y ya no necesite los recursos de AWS que creó, simplemente puede eliminarlos usando el comando:
$ Terraform Destro
Conclusión
En esta guía, hemos aprendido sobre adjuntar una política de IAM a un usuario de AWS utilizando Terraform. También puede intentar adjuntar diferentes políticas a un usuario o papel de la misma manera.