Hvordan lage sikkerhetsgrupper i AWS ved hjelp av Terraform

Hvordan lage sikkerhetsgrupper i AWS ved hjelp av Terraform
AWS kontrollerer de forskjellige tjenestene den tilbyr. Det er dermed veldig viktig for brukeren å vite hvordan de effektivt kan implementere AWS anbefalte sikkerhetspraksis. En elastisk beregningstjeneste eller EC2 er en av de mest brukte AWS -tjenestene. Du kan opprette nye forekomster her, slette dem, konfigurere nettverk og sikkerhet og mange andre operasjoner.

Terraform av Hashicorp er en infrastruktur og et kodeverktøy som kan brukes til å administrere de forskjellige tjenestene til AWS. Det ligner AWS CloudFormation Service med flere funksjoner og fordeler. Med Terraform kan vi planlegge endringene som skal brukes før de faktisk blir brukt.

Hva dekker vi?

I denne guiden vil vi bruke funksjonene i Terraform for å lage sikkerhetsgrupper. I denne SG vil vi for eksempel tillate HTTP -trafikk og SSH -trafikk. Vi vil deretter knytte denne sikkerhetsgruppen til en AWS -forekomst som kjører en webserver og deretter sjekke om de vedlagte SG -ene fungerer som forventet.

Hva trenger vi?

For å utføre denne guiden, bør du ha en AWS -konto og tilgang til AWS -legitimasjon på det lokale systemet ditt der du kjører terramen. Du bør også ha terraformen installert på systemet ditt. Du kan henvise til Terraform Official Guide for å lære om hvordan du installerer Terraform.

Biter om sikkerhetsgrupper

Sikkerhetsgrupper er en veldig viktig del av EC2 -tjenesten. Det de gjør er ganske enkelt å kontrollere trafikken som kommer inn og ut av ressursene de er forbundet med. Etter å ha opprettet en forekomst og knyttet en sikkerhetsgruppe til den, bestemmer den inngående regelen hvilken type trafikk som kan nå til forekomsten. Tilsvarende bestemmer en utgående regel hvilken type trafikk som får lov til å komme ut fra forekomsten.

Det er en standard sikkerhetsgruppe som følger med alle nyopprettede VPC (Virtual Private Cloud). Vi kan deretter lage nye SG -er (forkortelse for sikkerhetsgrupper), men disse SG -ene kan bare festes med ressursene som tilhører denne VPC.

Man kan knytte en eller flere sikkerhetsgrupper på tidspunktet for å lansere en forekomst. Flere regler kan knyttes til en sikkerhetsgruppe som også kan endres senere.

Opprette en sikkerhetsgruppe

I dette avsnittet vil vi opprette en sikkerhetsgruppe som bare tillater "http" utgående trafikk (utvinning), i.e. trafikk som går fra forekomsten, og tillater all inngående trafikk (inntrengning) jeg.e. trafikk som kommer til forekomsten.

Merk: Når en ny sikkerhetsgruppe opprettes i en VPC, har den en "tillat alle" egressregel som standard. Når en ny sikkerhetsgruppe opprettes i en VPC, blir denne standardregelen utslettet av Terraformen, men du kan sette opp denne regelen igjen om nødvendig.

Nå oppretter vi en fungerende katalog for vårt Terraform Project som vil inneholde alle våre påfølgende filer. Åpne en tekstredigerer og opprett følgende fil:

$ Nano Secgrp.tf

Legg følgende kode i denne filen og lagre den:

ressurs "aws_security_group" "demo-sg"
Navn = “Sec-Grp”
Beskrivelse = "Tillat HTTP og SSH -trafikk via Terraform"
Ingress
fra_port = 80
TO_PORT = 80
protokoll = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

Ingress
fra_port = 22
to_port = 22
protokoll = "TCP"
cidr_blocks = ["0.0.0.0/0 "]

egress
fra_port = 0
to_port = 0
protokoll = "-1"
cidr_blocks = ["0.0.0.0/0 "]

De to inntrengningsblokkene definert ovenfor tillater HTTP- og SSH -protokoller fra hvor som helst IPv4.

Utgangen tillater all utgående trafikk.

Beskrivelse av noen av de tidligere brukte argumentene:

Egress: Blokken som inneholder konfigurasjonen for egressregler.

inntrengning: Blokken som inneholder konfigurasjonen for inntrengningsregler.

beskrivelse: Beskriver tittelen på sikkerhetsgruppen. Det er valgfritt og standardverdien blir "administrert av Terraform".

fra_port: Betegner startportnummeret.

to_port: Betegner sluttporten.

Protokoll: Protokollspesifikasjonen. Hvis denne feltverdien er "-1", bør FRA_PORT- og TO_PORT-verdiene være "0".

Distribuere sikkerhetsgruppen

Nå som vi opprettet en sikkerhetsgruppe, vil vi sjekke om den faktisk fungerer. For dette oppretter vi en EC2 -forekomst og installerer en enkel webserver med meldingen “Linuxhint Terraform Tutorials”. Åpne en tekstredigerer og opprett en fil “Webserver.TF ”.

$ nano webserver.tf

Legg nå følgende kode inni den:

leverandør "aws"
Region = "Us-East-1"
Access_key = "din-access-key"
Secret_key = "Din-Secret-Key"

ressurs "aws_instance" "webserver"
AMI = "AMI-09D56F8956AB235B3"
instans_type = “T2.mikro ”
Key_name = "Your-nakeypair-name"
vpc_security_group_ids = [aws_security_group.Demo-SG.id]
Associate_public_ip_address = true
root_block_device
volum_type = "gp2"
volum_stize = "8"
delete_on_termination = true

user_data = "$ fil (" userdata.sh ”)”
tags =
Name = "Eksempelc2webserver"

Bytt ut 'Din hakeypair-name', 'Your-Secret-Key', 'Your-Access-Key' med verdiene i ditt tilfelle. Etter dette, oppretter en fil “userdata.SH ”for webserverens distribusjonskode.

$ nano userdata.sh

Lim inn følgende innhold i det:

#!/bin/bash
sudo apt-get oppdatering
sudo apt -get oppgradering -y
sudo apt -get installer apache2 -y
sudo SystemCTL Restart Apache2
sudo chmod 777 -r/var/www/html/
CD/var/www/html/
sudo ekko "

Linuxhint Terraform Tutorials.

"> Indeks.html

Kjører webserveren

Det er nå på tide å initialisere terraformkatalogen ved å bruke følgende kommando:

$ terraform init

Det er også en god ting å sjekke syntaksen til prosjektfilene våre ved å kjøre følgende kommando:

$ Terraform Valider

Nå bygger vi infrastrukturen ved å bruke kommandoen “Terraform Apply”:

$ Terraform Søk

Eventuelt kan vi forhåndsvise endringene ved å bruke kommandoen "Terraform Plan". Når Apply -kommandoen er ferdig, må du sjekke EC2 -konsollen for å bekrefte EC2 -forekomsten og dens sikkerhetsgruppe.

For å sjekke statusen for webserveren, åpne en nettleser og lime inn DNS -navnet på forekomsten.

På samme måte kan du prøve SSH i forekomsten for å se om vi er i stand til å logge inn med vår private nøkkel.

Konklusjon

I denne guiden har vi sett prosessen med å lage en sikkerhetsgruppe. Vi koblet den også til en EC2 -forekomst for å se om det fungerer som forventet. Både SSH- og HTTP -protokollen fungerer som den skal.