Crear un usuario IAM en AWS usando Terraform

En este artículo, veremos cómo crear un Usuario IAM. Antes de continuar, asumo que estás familiarizado con los fundamentos de Terraform y los Usuarios IAM de AWS. Si quieres saber más sobre los Usuarios IAM haz clic aquí.En este artículo crearemos un usuario y le asignaremos permisos de administrador.

Requisitos previos

  1. Conocimientos básicos de Terraform.
  2. Terraform está instalado en tu sistema.
  3. Cuenta AWS (Crea si no tienes una).
  4. ‘access_key’ & ‘secret_key’ de un Usuario IAM de AWS. (Haz clic aquí para aprender a crear un usuario IAM con ‘access_key’ & ‘secret_key’ en AWS, )

Qué haremos

  1. Escribir archivos de configuración Terraform para crear un Usuario IAM.
  2. Crear un Usuario IAM utilizando los archivos de configuración de Terraform.
  3. Eliminar el Usuario IAM creado utilizando Terraform.

Escribir archivos de configuración Terraform para el Usuario IAM

Crea un directorio dedicado donde puedas crear los archivos de configuración de Terraform.

Utiliza el siguiente comando para crear un directorio y cambiar a él tu directorio de trabajo actual.

mkdir terraform
cd terraform/

Estoy utilizando «vim» como editor para escribir en los archivos, puedes utilizar un editor de tu elección y copiar y pegar las siguientes configuraciones para crear variables.tf, terraform.tfvars y main.tf

Crea ‘main.tf’ que es responsable de crear un Usuario IAM en AWS. Este main.tf leerá los valores de las variables de variables.tf y terraform.tfvars.

vim main.tf

provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}

resource "aws_iam_user" "user" {
  name = var.name
}

resource "aws_iam_user_policy_attachment" "attach-user" {
  user       = "${aws_iam_user.user.name}"
  policy_arn = var.policy_arns
}

Significado de los argumentos utilizados en la configuración anterior:

  • user – El usuario al que debe aplicarse la política
  • policy_arn– El ARN de la política que quieres aplicar

La configuración anterior creará un usuario y le adjuntará una política.

Crea ‘variables.tf’, que contiene la declaración y definición de las variables.

Aquí

la variable «nombre» contiene el Nombre de Usuario IAM que se asignará al que se creará.

La variable «policy_arns» contiene el ARN de la política que tenemos que asignar al Usuario que vamos a crear. Aquí he asignado el ARN de la política que proporcionará el Acceso de Administrador al usuario que creemos.

vim variables.tf

variable "access_key" {
     description = "Access key to AWS console"
}
variable "secret_key" {
     description = "Secret key to AWS console"
}
variable "region" {
     description = "Region of AWS VPC"
}
variable "name" {
  default = "myadmin"
  type        = "string"
  description = "The name of the user"
}

variable "policy_arns" {
  default = "arn:aws:iam::aws:policy/AdministratorAccess"
  type        = string
  description = "ARN of policy to be associated with the created IAM user"
}

Una vez que hayas creado ‘variables.tf’, no olvides cambiar los valores asignados a la variable. Debes cambiar los valores resaltados ya que son específicos de mi entorno. Puedes mantener el resto de variables tal y como están. Si no quieres asignar el acceso de administrador al usuario que estás creando, puedes cambiarlo definiendo el ARN de la política que elijas.

Crea ‘terraform.tfvars’ que contiene la definición de las variables access_key y secret_key definidas en el archivo anterior. Hemos guardado la declaración de estas 2 variables en el archivo ‘terraform.tfvars’ junto con ‘region’.

Para crear un Usuario IAM no necesitamos específicamente una región en particular, sólo he mantenido esta variable aquí para que puedas tener una comprensión de esta variable región y puedas utilizarla en tus otros archivos de creación de recursos.

Las siguientes claves deben cambiarse con las claves de tu usuario IAM utilizado para crear recursos en AWS. Antes de especificar estas claves, debes crearlas desde la consola de AWS y no compartirlas con nadie.

vim terraform.tfvars

region = "eu-west-3"
access_key = "AKIAQ6GAIA5XFLXF6HOV"
secret_key = "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"

Ahora, deberías tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf

Crea un Usuario IAM utilizando los archivos de configuración de Terraform

Antes de ejecutar los siguientes comandos asegúrate de que has configurado la access_key y la secret_key válidas.

El primer comando a utilizar es ‘terraform init’. Este comando descarga e instala los plugins de los proveedores utilizados en la configuración. En nuestro caso es AWS.

terraform init

El segundo comando a utilizar es ‘terraform plan’. Este comando se utiliza para ver los cambios que se producirán en la infraestructura.

terraform plan

El comando «terraformar aplicar» creará los recursos en AWS mencionados en el archivo main.tf. Se te pedirá que proporciones tus datos para crear los recursos.

terraformar aplicar

Cuando ejecutes el comando anterior, una vez completado con éxito, podrás ver que se ha añadido 1 nuevo recurso y se ha destruido 0.

Puedes ir a la consola de Usuarios de AWS en Usuarios para verificar si el Usuario IAM está creado o no.

Nota: Una vez creado el usuario, asígnale una contraseña desde la consola de AWS utilizando el usuario Raíz.

Eliminar el Usuario IAM creado utilizando Terraform

Si ya no necesitas los recursos que creaste utilizando la configuración mencionada en el archivo main.tf, puedes utilizar el comando «terraform destroy» para eliminar todos esos recursos.

terraform destruir

Conclusión

En este artículo hemos visto los pasos para crear un Usuario IAM con privilegios de administrador. También vimos cómo se puede eliminar el Usuario IAM con un solo comando.

Scroll al inicio