Cómo crear un rol de IAM en AWS usando Terraform

19 gen 2022 3 min di lettura
Cómo crear un rol de IAM en AWS usando Terraform
Tabla de contenidos

Introducción

En este artículo veremos cómo crear un rol de IAM. Antes de continuar, supongo que está familiarizado con los conceptos básicos de los roles de Terraform y AWS IAM. En este artículo crearemos un rol y le asignaremos permisos de administrador.

requisitos previos

  1. Conocimientos básicos de Terraform.
  2. Terraform instalado en su sistema.
  3. Cuenta de AWS ( créala si no tienes una).
  4. ' access_key ' y ' secret_key ' de un usuario de AWS IAM.

Lo que haremos

  1. Escriba el archivo de configuración de Terraform para crear un rol de IAM.
  2. Cree un rol de IAM utilizando los archivos de configuración de Terraform.
  3. Elimine el rol de IAM creado con Terraform.

Escriba los archivos de configuración de Terraform para el rol de IAM

Cree un directorio dedicado donde pueda crear archivos de configuración de terraformación.

Use el siguiente comando para crear un directorio y cambiar el directorio de trabajo actual en él.

mkdir terraform
cd terraform/

Estoy usando "vim" como editor para escribir en archivos, puede usar un editor de su elección y copiar y pegar las siguientes configuraciones para crear variables.tf, terraform.tfvars y main.tf

Cree ' main.tf ' que es responsable de crear un rol de 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}"
}
data "aws_iam_policy_document" "cross_account_assume_role_policy" {
  statement {
    effect = "Allow"

    principals {
      type        = "AWS"
      identifiers = var.principal_arns
    }

    actions = ["sts:AssumeRole"]
  }
}

resource "aws_iam_role" "cross_account_assume_role" {
  name               = var.name
  assume_role_policy = data.aws_iam_policy_document.cross_account_assume_role_policy.json
}

resource "aws_iam_role_policy_attachment" "cross_account_assume_role" {
  count = length(var.policy_arns)

  role       = aws_iam_role.cross_account_assume_role.name
  policy_arn = element(var.policy_arns, count.index)
}

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

  • asumir_role_policy: (obligatorio) la política que otorga a una entidad permiso para asumir el rol.
  • policy_arn (obligatorio): el ARN de la política que desea aplicar

Cree 'variables.tf' que contiene la declaración y definición de las variables.

La variable " principal_arns " contiene el número de cuentas de AWS que pueden asumir el uso de este rol. También puede pasar una lista de números de cuenta aquí.

La variable " policy_arns " contiene el ARN de la política que debemos adjuntar al rol que vamos a crear. También puede pasar una lista de ARN de políticas aquí.

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 = "myrole"
  type        = "string"
  description = "The name of the role. "
}
variable "principal_arns" {
  default = ["123456789012"]
  type        = list(string)
  description = "ARNs of accounts, groups, or users with the ability to assume this role."
}

variable "policy_arns" {
  default = ["arn:aws:iam::aws:policy/AdministratorAccess"]
  type        = list(string)
  description = "List of ARNs of policies to be associated with the created IAM role"
}

Después de crear 'variables.tf', no olvide cambiar los valores asignados a las variables. Debe cambiar los valores resaltados ya que son específicos de mi entorno. Puede mantener las otras variables como están. Si no desea asignar acceso de administrador al rol que está creando, puede cambiarlo definiendo el ARN de la política de su política preferida.

Cree ' 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 la región.

No se necesita una región específica para crear un rol de IAM, solo mantuve esta variable aquí para que pueda comprender esta variable de región y pueda usarla en los otros archivos de creación de recursos.

Las siguientes claves deben cambiarse a las claves de su usuario de IAM. Antes de especificar estas claves, debe 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ía tener 3 archivos, a saber, variables.tf, terraform.tfvars y main.tf

Cree un rol de IAM utilizando los archivos de configuración de Terraform

Antes de ejecutar los siguientes comandos, asegúrese de haber configurado access_key y secret_key válidos.

El primer comando a usar es ' terraform init'. Este comando descarga e instala los complementos para los proveedores utilizados en la configuración. En nuestro caso es AWS.

terraform init

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

terraform plan

El comando 'terraform apply' creará los recursos en AWS mencionados en el archivo main.tf. Se le pedirá que proporcione su opinión para crear los recursos.

terraform apply

Cuando ejecuta el comando anterior, al completarlo con éxito, puede ver que se agregaron nuevos recursos y 0 se destruyó.

Puede iniciar sesión en la consola de AWS IAM en Rol para verificar si el rol de IAM se ha creado o no.

Elimine el rol de IAM creado con Terraform

Si ya no necesita los recursos que creó usando la configuración mencionada en el archivo main.tf, puede usar el comando "terraform destroy" para destruir todos esos recursos.

terraform destroy

Conclusión

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

Buy me a coffeeBuy me a coffee

Apóyenos si le gusta nuestro contenido. Gracias.

Únase a la conversación

Genial! A continuación, complete el pago para obtener acceso completo a Noviello.it.
Bienvenido de nuevo! Has iniciado sesión correctamente.
Te has suscrito correctamente a Noviello.it.
Éxito! Su cuenta está completamente activada, ahora tiene acceso a todo el contenido.
Éxito! Su información de facturación ha sido actualizada.
Su facturación no se actualizó.