Maak een IAM gebruiker op AWS met Terraform

In dit artikel zullen we zien hoe je een IAM Gebruiker aanmaakt. Alvorens verder te gaan, neem ik aan dat je bekend bent met de basisprincipes van Terraform en AWS IAM Gebruikers. Wil je meer leren over IAM Gebruikers, klik dan hier.In dit artikel zullen we een gebruiker aanmaken en hem beheerdersrechten toekennen.

Vereisten

  1. Basiskennis van Terraform.
  2. Terraform is op je systeem geïnstalleerd.
  3. AWS Account (Maak aan als je er geen hebt).
  4. ‘access_key’ & ‘secret_key’ van een AWS IAM Gebruiker. (Klik hier om te leren hoe je een IAM gebruiker met ‘access_key’ & ‘secret_key’ op AWS kunt maken, )

Wat we zullen doen

  1. Schrijf Terraform configuratiebestanden voor het maken van een IAM Gebruiker.
  2. Maak een IAM Gebruiker met behulp van de Terraform configuratiebestanden.
  3. Verwijder de aangemaakte IAM Gebruiker met behulp van Terraform.

Schrijf Terraform configuratiebestanden voor IAM User

Maak een speciale directory waarin je terraform configuratiebestanden kunt maken.

Gebruik het volgende commando om een directory aan te maken en je huidige werkdirectory er naar te veranderen.

mkdir terraform
cd terraform/

Ik gebruik “vim” als editor om de bestanden in te schrijven, je kunt een editor naar keuze gebruiken en de volgende configuraties kopiëren-plakken om variabelen.tf, terraform.tfvars en main.tf te maken

Maak ‘main.tf’ dat verantwoordelijk is voor het aanmaken van een IAM Gebruiker op AWS. Deze main.tf zal waarden van variabelen lezen uit variables.tf en 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
}

Betekenis van de argumenten die in de bovenstaande configuratie gebruikt worden:

  • user – De gebruiker op wie het beleid moet worden toegepast
  • policy_arn– De ARN van het beleid dat je wilt toepassen

De bovenstaande configuratie zal een gebruiker aanmaken en er een policy aan koppelen.

Maak ‘variables.tf’ dat de verklaring en definitie van de variabelen bevat.

Hier,

“name” variabele bevat de IAM gebruikersnaam die aan de aan te maken gebruiker moet worden toegekend.

De variabele “policy_arns” bevat het ARN van het beleid dat we aan de aan te maken gebruiker moeten toekennen. Hier heb ik de ARN van de policy toegekend die de Administrator Access zal geven aan de gebruiker die we aanmaken.

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"
}

Als je eenmaal ‘variables.tf’ gemaakt hebt, vergeet dan niet de waarden die aan de variabele zijn toegekend te veranderen. Je moet de gemarkeerde waarden veranderen, want die zijn specifiek voor mijn omgeving. De rest van de variabelen kun je laten zoals ze zijn. Als je de admin toegang niet wilt toekennen aan de gebruiker die je aanmaakt, kun je dat veranderen door de Policy ARN van je policy naar keuze te definiëren.

Maak ’terraform.tfvars’ dat de definitie bevat van access_key en secret_key variabelen die in het bovenstaande bestand zijn gedefinieerd. We hebben de verklaring van deze 2 variabelen in ’terraform.tfvars’ bestand bewaard, samen met ‘region’.

Voor het aanmaken van een IAM Gebruiker hebben we niet specifiek een bepaalde regio nodig, ik heb deze variabele hier alleen bewaard zodat je een goed begrip hebt van deze regio variabele en je hem kunt gebruiken in je andere bestanden voor het aanmaken van bronnen.

De volgende sleutels moet je veranderen met de sleutels van je IAM gebruiker die gebruikt wordt om bronnen op AWS te maken. Voordat je deze sleutels opgeeft, moet je ze aanmaken vanuit de AWS Console en deze sleutels met niemand delen.

vim terraform.tfvars

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

Nu zou je 3 bestanden moeten hebben, viz, variables.tf, terraform.tfvars en main.tf

Maak een IAM gebruiker met de Terraform configuratiebestanden

Voor je de volgende commando’s uitvoert, moet je zeker zijn dat je de geldige access_key en secret_key geconfigureerd hebt.

Het eerste commando dat je moet gebruiken is ’terraform init’. Dit commando downloadt en installeert plugins voor providers die binnen de configuratie gebruikt worden. In ons geval is dat AWS.

terraform init

Het tweede commando dat gebruikt wordt is ’terraform plan’. Dit commando wordt gebruikt om de veranderingen te zien die op de infrastructuur zullen plaatsvinden.

terraform plan

Het ’terraform apply’ commando zal de middelen aanmaken op de AWS die in het main.tf bestand genoemd worden. Je wordt gevraagd je invoer te geven om de middelen te creëren.

terraform toepassen

Als je het bovenstaande commando uitvoert, zie je na succesvolle voltooiing dat 1 nieuwe resource is toegevoegd en 0 is vernietigd.

Je kunt naar de AWS Gebruikersconsole gaan onder Gebruikers om te controleren of de IAM Gebruiker is aangemaakt of niet.

Opmerking: Als je eenmaal een gebruiker hebt aangemaakt, wijs er dan een wachtwoord aan toe vanuit de AWS Console met Root user.

Verwijder de aangemaakte IAM Gebruiker met Terraform

Als je de middelen die je aanmaakte met de configuratie vermeld in het bestand main.tf niet meer nodig hebt, kun je het “terraform destroy” commando gebruiken om al die middelen te verwijderen.

terraform destroy

Conclusie

In dit artikel zagen we de stappen om een IAM Gebruiker met beheerdersbevoegdheden aan te maken. We zagen ook hoe de IAM Gebruiker met slechts één commando kan worden verwijderd.