GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 Terraform y AWS IAM Roles. Si desea obtener más información sobre los roles de IAM, haga clic aquí. En este artículo, crearemos un rol y le asignaremos permisos de administrador.

Requisitos previos

  1. Comprensión básica de Terraform.
  2. Terraform instalado en su sistema.
  3. Cuenta de AWS (cree si no tiene una).
  4. 'access_key' &'secret_key' de un usuario de AWS IAM. (Haga clic aquí para aprender a crear un usuario de IAM con 'access_key' y 'secret_key' en AWS)

Lo que haremos

  1. Escriba archivos de configuración de Terraform para crear un rol de IAM.
  2. Cree un rol de IAM con los archivos de configuración de Terraform.
  3. Elimine la función IAM creada mediante Terraform.

Escribir 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 su directorio de trabajo actual a é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á valores de variables de variables.tf y terraform.tfvars.

vim principal.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:

  • assume_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

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

Aquí, 

La variable

"principal_arns" contiene el número de cuenta de AWS que se le permitirá asumir este rol. Incluso 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 crearemos. Incluso 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"
}

Una vez que haya creado '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 el resto de variables como están. Si no desea asignar el acceso de administrador al rol que está creando, puede cambiarlo definiendo el ARN de la política de su elección.

Cree 'terraform.tfvars' que contiene la definición de las variables access_key y secret_key definidas en el archivo anterior. Hemos mantenido la declaración de estas 2 variables en el archivo 'terraform.tfvars' junto con la región.

Para crear un rol de IAM no necesitamos específicamente una región en particular, simplemente mantuve esta variable aquí para que pueda comprender esta variable de región y pueda usarla en sus otros archivos de creación de recursos.

Las siguientes claves deben cambiarse con las claves de su usuario de IAM. Antes de especificar estas claves, debe crearlas desde la consola de AWS y no compartir estas claves 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

Crea un rol de IAM usando los archivos de configuración de Terraform

Antes de ejecutar los siguientes comandos, asegúrese de haber configurado la clave_acceso y la clave_secreta válidas.

El primer comando que se utilizará es 'terraform init'. Este comando descarga e instala complementos para proveedores utilizados dentro de la configuración. En nuestro caso es AWS.

  inicio de terraformación

El segundo comando que se utilizará es 'plan de terraformación'. Este comando se utiliza para ver los cambios que se producirán en la infraestructura.

 plan de terraformación

El comando

'terraform apply' creará los recursos en AWS mencionados en el archivo main.tf. Se le pedirá que proporcione su entrada para crear los recursos.

aplicar terraformación

Cuando ejecuta el comando anterior, al completarlo con éxito, puede ver que se ha agregado un nuevo recurso y 0 se ha destruido.

Puede ir a la consola de IAM de AWS en Rol para verificar si el Rol de IAM está creado o no.

Elimine el rol IAM creado usando 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 eliminar todos esos recursos.

terraformar destruir

Conclusión

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


Linux
  1. Cómo lanzar una instancia AWS EC2 usando Terraform

  2. Cree una nube privada virtual (VPC) en AWS con Terraform

  3. Cree una instancia EC2 en AWS usando Terraform

  4. Cómo crear una instancia RDS en AWS usando Terraform

  5. Cómo crear un usuario de Linux usando Ansible

Cómo crear una instancia Amazon AWS EC2 usando Python Boto3

Cómo crear una instancia RDS usando Python Boto3 en AWS

Cómo crear un depósito S3 usando Python Boto3 en AWS

Cómo crear una tabla de DynamoDB en AWS

Cómo administrar el estado de Terraform en un depósito de AWS S3

Cómo crear una partición usando el comando "partid"