So erstellen Sie Sicherheitsgruppen in AWS mit Terraform

So erstellen Sie Sicherheitsgruppen in AWS mit Terraform
AWS kontrolliert die verschiedenen Dienstleistungen, die es anbietet. Für den Benutzer ist es daher sehr wichtig, zu wissen. Ein elastischer Rechenservice oder EC2 ist einer der am häufigsten verwendeten AWS -Dienste. Sie können hier neue Instanzen erstellen, löschen, die Netzwerke und Sicherheit und viele andere Vorgänge konfigurieren.

Terraform von Hashicorp ist eine Infrastruktur und ein Code -Tool, mit dem die verschiedenen Dienste von AWS verwaltet werden können. Es ähnelt dem AWS -CloudFormation -Service mit mehr Funktionen und Vorteilen. Mit Terraform können wir die Änderungen planen, die angewendet werden sollen, bevor sie tatsächlich angewendet werden.

Was decken wir ab?

In diesem Leitfaden werden wir die Merkmale von Terraform nutzen, um Sicherheitsgruppen zu erstellen. In diesem SG werden wir beispielsweise nur den HTTP -Verkehr und den SSH -Verkehr zulassen. Wir werden diese Sicherheitsgruppe dann an eine AWS -Instanz anschließen, die einen Webserver ausführt.

Was benötigen wir?

Um diesen Leitfaden auszuführen, sollten Sie ein AWS -Konto und einen Zugriff auf AWS -Anmeldeinformationen in Ihrem lokalen System haben, aus dem Sie die Terraform ausführen. Sie sollten auch die Terraform auf Ihrem System installieren lassen. Sie können sich auf den offiziellen Leitfaden für Terraform verweisen, um zu erfahren, wie Sie die Terraform installieren.

Bits über Sicherheitsgruppen

Sicherheitsgruppen sind ein sehr wichtiger Bestandteil des EC2 -Dienstes. Was sie tun, ist einfach den Verkehr zu kontrollieren, der in die Ressourcen und aus den Ressourcen herauskommt, mit denen sie verbunden sind. Nach dem Erstellen einer Instanz und dem Anhängen einer Sicherheitsgruppe entscheidet beispielsweise die eingehende Regel. In ähnlicher Weise entscheidet eine ausgehende Regel.

Es gibt eine Standard -Sicherheitsgruppe, die mit jedem neu erstellten VPC (Virtual Private Cloud) geliefert wird. Wir können dann weiter neue SGs erstellen (kurz für Sicherheitsgruppen), aber diese SGs können nur mit den Ressourcen beigefügt werden, die zu diesem VPC gehören.

Man kann zum Zeitpunkt der Start einer Instanz eine oder mehrere Sicherheitsgruppen beibringen. Mehrere Regeln können an eine Sicherheitsgruppe beigefügt werden, die später ebenfalls geändert werden kann.

Erstellen einer Sicherheitsgruppe

In diesem Abschnitt erstellen wir eine Sicherheitsgruppe, die nur den Outbound -Verkehr „HTTP“ (Außenseiter) ermöglicht, ich.e. Verkehr von der Instanz und erlauben den gesamten eingehenden Verkehr (Eingang) i.e. Verkehr kommt zur Instanz.

Notiz: Wenn eine neue Sicherheitsgruppe in einem VPC erstellt wird, hat sie stand. Wenn eine neue Sicherheitsgruppe in einem VPC erstellt wird, wird diese Standardregel von der Terraform ausgelöscht, aber Sie können diese Regel bei Bedarf erneut einrichten.

Jetzt erstellen wir ein Arbeitsverzeichnis für unser Terraform -Projekt, das alle unsere nachfolgenden Dateien enthält. Öffnen Sie einen Texteditor und erstellen Sie die folgende Datei:

$ nano secgrp.tf

Fügen Sie den folgenden Code in diese Datei ein und speichern Sie ihn:

Ressource "aws_security_group" "Demo-Sg"
Name = "Sec-GRP"
Beschreibung = "HTTP- und SSH -Verkehr über Terraform zulassen"
Eindringung
von_port = 80
to_port = 80
Protocol = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Eindringung
von_port = 22
to_port = 22
Protocol = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Ausgang
von_port = 0
to_port = 0
Protocol = "-1"
cidr_blocks = ["0.0.0.0/0 "]

Die beiden oben definierten zwei Eingressblöcke ermöglichen die HTTP- und SSH -Protokolle von überall IPv4.

Der Ausstieg erlaubt den gesamten ausgehenden Verkehr.

Beschreibung einiger der zuvor verwendeten Argumente:

Ausgang: Der Block, der die Konfiguration für Ausstiegsregeln enthält.

Eindringen: Der Block, der die Konfiguration für Eingangsregeln enthält.

Beschreibung: Beschreibt den Titel der Sicherheitsgruppe. Es ist optional und der Standardwert wird "von Terraform verwaltet".

von_port: Bezeichnet die Startportnummer.

zum Hafen: Bezeichnet den Endport.

Protokoll: Die Protokollspezifikation. Wenn dieser Feldwert "-1" ist, sollten die Werte von von_port und to_port "0" sein.

Bereitstellung der Sicherheitsgruppe

Nachdem wir eine Sicherheitsgruppe erstellt haben, werden wir überprüfen, ob sie tatsächlich funktioniert. Dafür erstellen wir eine EC2 -Instanz und installieren einen einfachen Webserver mit der Meldung "LinuxHint Terraform Tutorials". Öffnen Sie einen Texteditor und erstellen Sie eine Datei “Webserver.tf ”.

$ nano webserver.tf

Setzen Sie nun den folgenden Code hinein:

Anbieter "AWS"
Region = "US-East-1"
Access_key = "Ihr Zugriffsschlüssel"
secry_key = "dein sekret-key"

Ressource "AWS_Instance" "Webserver"
AMI = "AMI-09D56F8956AB235B3"
Instance_type = “T2.Mikro"
key_name = "your-keypair-name"
vpc_security_group_ids = [aws_security_group.Demo-Sg.Ausweis]
associate_public_ip_address = true
root_block_device
Volume_Type = "GP2"
Volume_SIZE = "8"
delete_on_termination = true

user_data = "$ file (“ userData.Sch")"
Tags =
Name = "examplec2webserver"

Ersetze das 'Your-keypair-name', 'dein sekret-key', 'your-access-key' ' mit den Werten in Ihrem Fall. Erstellen Sie danach eine Datei “userData.SH ”für den Webserver -Bereitstellungscode.

$ nano userData.Sch

Fügen Sie den folgenden Inhalt darin ein:

#!/Bin/Bash
sudo apt-Get-Update
sudo apt -Get Upgrade -y
sudo apt -Get installieren apache2 -y
sudo systemctl starten Sie Apache2 neu
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo echo "

LinuxHint Terraform Tutorials.

"> Index.html

Ausführen des Webservers

Es ist nun die Zeit, das Terraform -Verzeichnis mit dem folgenden Befehl zu initialisieren:

$ terraform init

Es ist auch eine gute Sache, die Syntax unserer Projektdateien zu überprüfen, indem Sie den folgenden Befehl ausführen:

$ Terraform Validate

Jetzt erstellen wir die Infrastruktur mit dem Befehl „Terraform Apply“:

$ Terraform gelten

Optional können wir die Änderungen mit dem Befehl „Terraformplan“ vorschau anstellen. Wenn der Befehl anwenden abgeschlossen ist, überprüfen Sie Ihre EC2 -Konsole, um die EC2 -Instanz und ihre Sicherheitsgruppe zu überprüfen.

Öffnen Sie einen Webbrowser, um den Status des Webservers zu überprüfen, und fügen Sie den DNS -Namen der Instanz ein.

Versuchen Sie den SSH in ähnlicher Weise in die Instanz, um festzustellen, ob wir uns mit unserem privaten Schlüssel anmelden können.

Abschluss

In diesem Leitfaden haben wir den Prozess der Erstellung einer Sicherheitsgruppe gesehen. Wir haben es auch an eine EC2 -Instanz angeschlossen, um festzustellen, ob es wie erwartet funktioniert. Sowohl das SSH- als auch das HTTP -Protokoll funktionieren ordnungsgemäß.