Einen IAM-Benutzer auf AWS mit Terraform erstellen

In diesem Artikel werden wir sehen, wie man einen IAM-Benutzer erstellt. Bevor wir fortfahren, gehe ich davon aus, dass du mit den Grundlagen von Terraform und AWS IAM-Benutzern vertraut bist. Wenn du mehr über IAM-Benutzer erfahren möchtest, klicke hier.In diesem Artikel werden wir einen Benutzer erstellen und ihm die Rechte eines Administrators zuweisen.

Vorraussetzungen

  1. Grundlegendes Verständnis von Terraform.
  2. Terraform ist auf deinem System installiert.
  3. AWS-Konto (Erstelle wenn du noch keines hast).
  4. ‚access_key‘ & ’secret_key‘ eines AWS IAM Users. (Klicke hier um zu erfahren, wie du einen IAM-Benutzer mit ‚access_key‘ & ’secret_key‘ auf AWS erstellst).

Was wir tun werden

  1. Terraform-Konfigurationsdateien für die Erstellung eines IAM-Benutzers schreiben.
  2. Einen IAM-Benutzer mithilfe der Terraform-Konfigurationsdateien erstellen.
  3. Lösche den erstellten IAM-Benutzer mit Terraform.

Terraform-Konfigurationsdateien für IAM-Benutzer schreiben

Erstelle ein eigenes Verzeichnis, in dem du Terraform-Konfigurationsdateien erstellen kannst.

Verwende den folgenden Befehl, um ein Verzeichnis zu erstellen und dein aktuelles Arbeitsverzeichnis in dieses zu ändern.

mkdir terraform
cd terraform/

Ich verwende „vim“ als Editor, um die Dateien zu schreiben. Du kannst einen Editor deiner Wahl verwenden und die folgenden Konfigurationen kopieren, um variables.tf, terraform.tfvars und main.tf zu erstellen

Erstelle „main.tf“, die dafür verantwortlich ist, einen IAM-Benutzer auf AWS zu erstellen. Diese main.tf liest die Werte der Variablen aus variables.tf und 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
}

Bedeutung der Argumente, die in der obigen Konfiguration verwendet werden:

  • user – Der Benutzer, auf den die Richtlinie angewendet werden soll
  • policy_arn– Der ARN der Richtlinie, die du anwenden willst

Die obige Konfiguration erstellt einen Benutzer und fügt ihm eine Richtlinie zu.

Erstelle die Datei „variables.tf“, die die Deklaration und Definition der Variablen enthält.

Hier,

Die Variable „name“ enthält den IAM-Benutzernamen, der dem zu erstellenden Benutzer zugewiesen werden soll.

DieVariable“policy_arns“enthält die ARN der Richtlinie, die wir dem zu erstellenden Benutzer zuweisen müssen. Hier habe ich die ARN der Richtlinie zugewiesen, die dem erstellten Benutzer den Administratorenzugang gewährt.

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

Wenn du die Datei „variables.tf“ erstellt hast, vergiss nicht, die den Variablen zugewiesenen Werte zu ändern. Du musst die hervorgehobenen Werte ändern, da sie spezifisch für meine Umgebung sind. Die übrigen Variablen kannst du so lassen, wie sie sind. Wenn du dem Benutzer, den du anlegst, keinen Admin-Zugang zuweisen willst, kannst du das ändern, indem du den Policy ARN deiner gewünschten Policy definierst.

Erstelle die Datei „terraform.tfvars“, die die Definition der Variablen access_key und secret_key aus der obigen Datei enthält. Wir haben die Deklaration dieser beiden Variablen in der Datei „terraform.tfvars“ zusammen mit „region“ gespeichert.

Für die Erstellung eines IAM-Benutzers brauchen wir keine bestimmte Region. Ich habe diese Variable nur hier festgehalten, damit du sie verstehst und in deinen anderen Dateien zur Ressourcenerstellung verwenden kannst.

Die folgenden Schlüssel müssen durch die Schlüssel deines IAM-Benutzers ersetzt werden, den du zur Erstellung von Ressourcen auf AWS verwendest. Bevor du diese Schlüssel angibst, musst du sie über die AWS-Konsole erstellen und darfst sie mit niemandem teilen.

vim terraform.tfvars

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

Jetzt solltest du 3 Dateien haben, nämlich variables.tf, terraform.tfvars und main.tf

Einen IAM-Benutzer mit Hilfe der Terraform-Konfigurationsdateien erstellen

Bevor du die folgenden Befehle ausführst, stelle sicher, dass du einen gültigen access_key und secret_key konfiguriert hast.

Der erste Befehl, den du ausführen musst, ist „terraform init“. Dieser Befehl lädt die Plugins für die in der Konfiguration verwendeten Anbieter herunter und installiert sie. In unserem Fall ist es AWS.

terraform init

Der zweite Befehl ist „terraform plan“. Dieser Befehl wird verwendet, um die Änderungen zu sehen, die an der Infrastruktur vorgenommen werden.

terraform plan

Der Befehl ‚terraform apply‘ erstellt die Ressourcen auf der AWS, die in der Datei main.tf angegeben sind. Du wirst aufgefordert, deine Daten einzugeben, um die Ressourcen zu erstellen.

terraform apply

Wenn du den obigen Befehl ausführst, kannst du nach erfolgreichem Abschluss sehen, dass 1 neue Ressource hinzugefügt und 0 zerstört wurde.

Du kannst die AWS-Benutzerkonsole unter Benutzer aufrufen, um zu überprüfen, ob der IAM-Benutzer erstellt wurde oder nicht.

Hinweis: Sobald du einen Benutzer erstellt hast, vergibst du ihm in der AWS-Konsole ein Passwort unter Root-Benutzer.

Den erstellten IAM-Benutzer mit Terraform löschen

Wenn du die Ressourcen, die du mit der Konfiguration in der Datei main.tf erstellt hast, nicht mehr benötigst, kannst du den Befehl „terraform destroy“ verwenden, um alle Ressourcen zu löschen.

terraform destroy

Fazit

In diesem Artikel haben wir gesehen, wie du einen IAM-Benutzer mit Administratorrechten erstellst. Außerdem haben wir gesehen, wie der IAM-Benutzer mit nur einem Befehl gelöscht werden kann.

Das könnte dich auch interessieren …