So erstellen Sie AWS -IAM -Politik mit Terraform

So erstellen Sie AWS -IAM -Politik mit Terraform
In AWS wird IAM Service verwendet, um den Zugriff auf Dienste und Ressourcen von AWS zu kontrollieren. Es benötigt ein sehr ausführliches Wissen, um IAM-Richtlinien zu konfigurieren, um Mindestrechte für AWS-Systeme und Ressourcen zu gewährleisten.

Für den Zweck der Infrastruktur als Codelösung (IAC) erstellt. Es ist ein Open -Source -Tool, das von Hashicorp entwickelt wurde. Mit IAC können wir das Infrastruktur -Setup mit Konfigurationsdateien verwalten. Zum Beispiel können wir unsere Infrastruktur bereitstellen, aktualisieren und verwalten, indem wir die erforderlichen Ressourcen definieren.

In diesem Handbuch werden wir sehen, wie wir einen AWS -Benutzer erstellen und eine Richtlinie mit Terraform anhängen können. Beginnen wir zunächst mit der Installation von Terraform auf Ubuntu 20.04.

Terraform installieren

Hashicorp bietet das offizielle Terraform -Paket für Ubuntu/Debian, Centos/Rhel, Fedora und Amazon Linux. Darüber hinaus hält es auch vorgefertigte Binärdatoren und kann auch aus der Quelle zusammengestellt werden. Für diese Anleitung verwenden wir das Standardpaket, das vom Debian -Paket -Repository bereitgestellt wird, um Terraform auf Ubuntu 20 zu installieren.04.

Schritt 1. Installieren Sie GNUPG-, Software-Properties-Common- und Curl-Pakete, um die GPG-Signatur von Hashicorp zu überprüfen und das erforderliche Repository zu installieren:

$ sudo APT-Get Update && sudo apt-Get Install -y GNUPG Software-Properties-Common Curl

Schritt 2. Fügen Sie den Hashicorp -GPG -Schlüssel mit dem Befehl hinzu:

$ curl -fssl https: // apt.Veröffentlichungen.Hashicorp.com/gpg | sudo apt-key add -

Schritt 3. Fahren Sie fort, indem Sie das erforderliche Repository hinzufügen.

$ sudo apt-add-repository "Deb [arch = amd64] https: // apt.Veröffentlichungen.Hashicorp.com $ (lsb_release -cs) main "

Schritt 4. Fügen Sie den Befehl Update aus, um das Repository hinzuzufügen und Terraform zu installieren.

$ sudo apt-Get Update && sudo apt-Get Installieren Sie Terraform

Schritt 5. Überprüfen Sie, ob Terraform durch Ausführen des Befehls installiert ist:

$ terraform -version

Unsere Terraform ist auf unserer lokalen Maschine installiert, sodass wir unsere Aufgabe bei der Arbeit mit AWS fortsetzen können. Wie bereits erwähnt, verwendet Terraform mehrere Konfigurationsdateien für Bereitstellungsressourcen. Jede dieser Dateien muss sich in ihrem jeweiligen Arbeitsordner/Verzeichnis befinden. Lassen Sie uns für diesen Zweck ein Verzeichnis erstellen.

Erstellen Sie einen Ordner für Ihre Konfigurationsdateien und ändern Sie das Verzeichnis in diesen Ordner:

$ mkdir linuxHint-terraform && cd linuxHint-terraform

1. Erstellen von IAM -Benutzer mit Terraform

Wir haben momentan nur einen IAM -Benutzer:

Wir werden jetzt eine machen 'user_create.tf'Datei, die zum Erstellen unseres Benutzers "Demouser" verwendet wird:

$ nano user_create.tf

Stellen Sie nun die folgende Konfiguration hinein:

Terraform
fordert_providers
AWS =
Source = "Hashicorp/AWS"
Version = "~> 3.27 "


fordern_version = "> = 0.14.9 "

Anbieter "AWS"
Region = "US-East-1"
access_key = "your_access_key_for_current_user"
secry_key = "your_secret_key_for_current_user"

Ressource "aws_iam_user" "new_user"
name = "Demouser"

Ressource "AWS_IAM_ACCESS_KEY" "ACCK"
user = aws_iam_user.neuer Benutzer.Name

Ausgabe "Secret_key"
value = aws_iam_access_key.Acck.Geheimnis
sensitiv = wahr

Ausgabe "Access_key"
value = aws_iam_access_key.Acck.Ausweis

Erstellen einer Richtlinie und das Anhängen an dem IAM -Benutzer mit Terraform

Wir erstellen eine S3 -Liste Alle Buckets -Richtlinien und fügen sie unserem IAM -Benutzer bei. Gehen Sie nun die obige Datei mit diesem Code an:

Ressource "aws_iam_user_policy" "iam"
name = "test"
user = aws_iam_user.neuer Benutzer.Name
Politik = <
"Version": "2012-10-17",
"Stellungnahme": [

"Effekt": "erlauben",
"Aktion": "S3: ListAllMyBuckets",
"Ressource": "*"

]

Eof

Diese Datei enthält die gesamte Konfiguration, die mit Terraform bereitgestellt werden soll. Ersetzen Sie einfach den fetthaltigen Text durch Ihre eigenen Konfigurationsdetails. Lassen Sie uns jeden der in der obigen Datei verwendeten Abschnitte untersuchen:

  • Terraform - Es definiert die Terraformeinstellungen. Der "Erforderliche Anbieter" Definiert den Anbieter, der mit der Terraform verwendet werden soll, und die "Quelle" ist ein optionaler Parameter für Hostname, ein Namespace und den Anbietertyp. Im obigen Code wird die Quelle als 'definiertHashicorp/AWS ' die wie alle Anbieter aus dem Terraform -Register installiert werden. Der obige Anbieter verweist auf 'Register.Terraform.IO/Hashicorp/AWS '.

Das Versionsattribut definiert die Version des Anbieters, den Sie verwenden möchten.

  • Anbieter - Dies gibt tatsächlich an, mit welcher Cloud -Plattform Sie interagieren werden (AWS, Azure, GCP usw.). Dies kontrolliert auch die Region, in der Sie Ihre Ressourcen und die Sicherheitsanmeldeinformationen für Ihren Benutzer bereitstellen.
  • Ressource - Es umfasst Komponenten, die eine Infrastruktur wie Datenbanken, Speicher, Netzwerk usw. erstellen. Die erste Zeichenfolge, hier "Aws_instance", Definiert den Ressourcentyp und den zweiten einen benutzerdefinierten Namen, den Sie verwenden möchten. Diese beiden kombinieren zu einer eindeutigen ID für eine Ressource für e.G. Hier 'aws_iam_access_key.Acck.Geheimnis' ist eine Ressourcenkennung (ID). Auf die gleiche Weise können wir auch Maschinengrößen, Festplattenbildnamen oder VPC -IDs einbeziehen.

Um Ihre Konfiguration zu validieren oder zu überprüfen, verwenden Sie den Befehl:

$ Terraform Validate

Initialisierung des Terraform -Verzeichnisses

Um den in unserer Konfiguration und anderen Dateien definierten Anbieter herunterzuladen und zu installieren, müssen wir das Verzeichnis mit dieser Datei initialisieren:

$ terraform init

Wie Sie aus dem obigen Bild sehen können, ist unser Init -Befehl erfolgreich und es werden hier auch einige neue Dateien erstellt. Es gibt auch noch einen Befehl: "Terraformplan". Obwohl es nicht obligatorisch ist, es zu verwenden, hat es einige Vorteile. Zum Beispiel.:

1. Sie können sehen, dass die Aktionen, die Terraform ausführen wird.

2. Es kann auf syntaktische Fehler in Ihren Konfigurationsdateien hinweisen.

Terraform erwähnt diesen Befehl in seiner Dokumentation nicht, da beim Ausführen des Befehls "Terraform Apply" derselbe Plan erneut präsentiert wird.

Aufbau der Infrastruktur

Verwenden Sie den Befehl, um unsere Infrastruktur aufzubauen:

$ Terraform gelten

Dadurch wird zunächst den Ausführungsplan ausgegeben, der die Aufgaben beschreibt, die Terraform ausführen wird. Danach wird es innehalten und Sie bitten, den Plan zu bestätigen, fortzufahren. Wenn alles so eingestellt ist, wie Sie es gewünscht haben, geben Sie "Ja" ein, um fortzufahren:

Wenn Sie bereit sind, fortzufahren, geben Sie "Ja" ein,. Beachten Sie, dass das Abschluss des Vorgangs einige Zeit dauert. Wenn dieser Vorgang abgeschlossen ist, wird die folgende Nachricht angezeigt:

Öffnen Sie die Terraform, um Ihre Sicherheitsanmeldeinformationen anzuzeigen.TFState 'Datei und suchen Sie nach dem Wert -Attribut unter "Secret_key" und "Access_key":

Auf Ihrer AWS -IAM -Verwaltungskonsole wird der IAM -Benutzer dort aufgeführt:

Um zu überprüfen, welche Richtlinien diesem IAM -Benutzer beigefügt sind, klicken Sie auf den Namen des IAM -Benutzers. Aus dem folgenden Screenshot können wir sehen, dass oder Demouser eine "Test" -Richtlinie mit derselben Berechtigung mit derselben Berechtigung in die Terraformdatei beigefügt ist.

Überprüfung der Richtlinie

Um festzustellen, ob unsere beigefügte Richtlinie wie erwartet funktioniert, stellen Sie eine Verbindung zum IAM -Benutzer her und führen Sie den Befehl aus:

$ aws s3 ls

Wenn alles richtig eingerichtet wurde, sehen Sie die Liste Ihrer Eimer hier:

Zerstörung der Ressourcen

Wenn Sie fertig sind und die von Ihnen erstellten AWS -Ressourcen nicht mehr benötigen, können Sie sie einfach mit dem Befehl löschen:

$ Terraform zerstören

Abschluss

In diesem Leitfaden haben wir erfahren, dass ein AWS -Benutzer eine IAM -Richtlinie mit Terraform angehängt hat. Sie können auch versuchen, auf die gleiche Weise verschiedene Richtlinien an einen Benutzer oder eine Rolle anzubringen.