Verwendung von AWS IAM mit Terraform

Terraform ist ein Automatisierungstool, das für die Bereitstellung von Cloud-Ressourcen genutzt wird. Auch die Infrastruktur muss mit den passenden Berechtigungen bereitgestellt werden. In großen Unternehmen nutzen Administratoren das Tool, um Hunderte von Ressourcen automatisch bereitzustellen oder stillzulegen, ohne sie manuell zu konfigurieren.

Verwendung von AWS IAM mit Terraform

image_pdfimage_print

Gründe für die Verwendung von AWS IAM mit Terraform

Mit AWS Access and Identity Management (IAM) kann Terraform auch zur Festlegung von Zugriffsrechten für bereitgestellte Ressourcen verwendet werden. In einer sicheren Umgebung ist die Verwendung von Berechtigungen für den Zugriff auf in der Cloud bereitgestellte Ressourcen Bestandteil eines Zero-Trust-Netzwerks und sollte in jede Sicherheitsstrategie einbezogen werden. Anstatt allen Benutzern Zugriff auf Ressourcen zu gewähren, können Administratoren auf diese Weise Berechtigungen gezielt nur an bestimmte Personen vergeben, die sie benötigen.

AWS IAM in Terraform: 3 wichtige Funktionen

IAM ist für die Erstellung und Aktualisierung von Benutzern, Rollen und Benutzergruppen vorgesehen. Für Unternehmen sind die drei wichtigsten Funktionen die einfache Steuerung von Zugriffsrichtlinien, die Verwendung von Schlüsseln anstelle von Standard-Netzwerkanmeldedaten und die Zuweisung von Benutzerrollen. Gemeinsam kontrollieren alle drei den Zugriff auf Cloud-Ressourcen, die üblicherweise mit Terraform bereitgestellt werden.

Für die Automatisierung von Befehlen verwendet Terraform Dateien mit der Erweiterung *.tf. Konfigurationsdateien enthalten Befehle, die jederzeit wiederverwendet werden können, wenn eine Ressource erstellt werden muss. Da die Dateien mit Einstellungen und Konfigurationen vorprogrammiert sind, beschleunigen sie die Bereitstellung von Cloud-Ressourcen in AWS.

Wie werden IAM-Richtlinien in Terraform verwendet?

Richtlinien definieren Benutzer und Benutzerberechtigungen für bestimmte Cloud-Ressourcen. Sie verwenden Richtlinien, wenn Sie eine Ressource in AWS bereitstellen (z. B. einen S3-Bucket) und verschiedenen Benutzern bestimmte Berechtigungen zuweisen müssen (z. B. das Auflisten von S3-Bucket-Inhalten).

Wie werden IAM-Schlüsselpaare in Terraform verwendet?

Anstelle von Benutzernamen und Passwörtern werden den Benutzern in AWS Schlüssel zugewiesen. Ein Schlüsselpaar besteht aus einem Zugriffsschlüssel und einem geheimen Schlüssel. Beide sind erforderlich, damit Benutzer auf Ressourcen zugreifen können. In Terraform werden Benutzern Schlüsselpaare zugewiesen, wenn sie Zugriff auf eine Ressource erhalten.

Wie werden IAM-Rollen in Terraform verwendet?

Eine IAM-Rolle ist eine Gruppe von Berechtigungen, die einem bestimmten Benutzer zugewiesen werden. Durch die Zuweisung der entsprechenden Rollen in Terraform werden einem bestimmten Benutzer Berechtigungen erteilt. Eine Rolle kann es Benutzern ermöglichen, mehrere Aktionen für eine Ressource durchzuführen. Daher sollte diese vor der Zuweisung der Rolle genau geprüft werden.

Verwendung von AWS IAM mit Terraform: Ein Beispiel

In diesem Beispiel wird eine neue Benutzerdatei namens create_user.tf verwendet, um ein Benutzerkonto in AWS über Terraform zu erstellen. Der Benutzer wird erstellt und es wird ihm eine Richtlinie für einen S3-Bucket zugewiesen.

Schritt 1: Terraform installieren

Installieren Sie Terraform. Geben Sie unter Debian Folgendes ein:

sudo apt-get install terraform

Schritt 2: Terraform-Verzeichnis erstellen

Erstellen Sie ein Verzeichnis für das neue Terraform-Projekt:

mkdir linuxhint-terraform && cd linuxhint-terraform

Schritt 3: Datei „create_user.tf“ erstellen

Erstellen Sie die Datei „create_user.tf“:

nano user_create.tf

Schritt 4: Neues Benutzerkonto konfigurieren

Fügen Sie in der geöffneten Datei nach ihrer Erstellung folgenden Code hinzu:

terraform {

required_providers {

    aws = {

    source  = "hashicorp/aws"

    version = "~> 3.27"

    }

  }

}

provider "aws" {

  region    = "us-west-1"

access_key = "user_access_key"

secret_key = "user_secret"

}

resource "aws_iam_user" "new_user" {

  name = "NewUserExample"

}

resource "aws_iam_access_key" "AccK" {

  user = aws_iam_user.new_user.name

}

output "secret_key" {

  value = aws_iam_access_key.AccK.secret

  sensitive = true

}

output "access_key" {

  value = aws_iam_access_key.AccK.id

}

Schritt 5: Richtlinie erstellen und neuen Benutzer hinzufügen

Nachdem der Benutzer erstellt wurde, können Sie eine Richtlinie erstellen und den Benutzer in die Richtlinie aufnehmen. In diesem Richtlinienbeispiel erhält der Benutzer die Berechtigung zur Auflistung von Buckets.

Fügen Sie der Datei „create_user.tf“ folgenden Code hinzu:

resource "aws_iam_user_policy" "iam" {

  name = "ListBuckets"

  user = aws_iam_user.new_user.name

  policy = <<EOF

{

    "Version": "2022-1-6",

    "Statement": [

    {

    "Effect": "Allow",

    "Action": "s3:ListAllMyBuckets",

    "Resource": "*"

    }

    ]

}

EOF

}

Schritt 6: Terraform initialisieren und Änderungen übernehmen

Nachdem Sie die Datei erstellt haben, können Sie die Änderungen mit Terraform in AWS übernehmen. Initialisieren Sie zunächst eine Instance:

terraform init 

Übernehmen Sie danach die Änderungen in Ihrer AWS-Umgebung:

terraform apply

Schritt 7: Änderungen in AWS IAM bestätigen

Zu diesem Zeitpunkt ist die Ressource bereits erstellt, aber Sie können die Änderungen manuell bestätigen, indem Sie Ihr AWS-Konto aufrufen und die Benutzer im IAM-Dashboard anzeigen.

Fazit

Durch die Automatisierung der Cloud-Bereitstellung, bei der Vorlagen für IAM-Richtlinien, Konten und Berechtigungen verwendet werden, sparen Sie Zeit. Mithilfe von Terraform können Administratoren die Bereitstellung von Ressourcen in ihren AWS-Umgebungen optimieren. Erfahren Sie mehr und lesen Sie den Artikel zur Erstellung einer AWS-Instance mit Terraform.

Written By: