Terraform Støtter flere skytjenesteleverandører som er bygget for infrastruktur som Code (IAC) -løsning. Det er et open source -verktøy utviklet av Hashicorp. Ved hjelp av IAC kan vi administrere infrastrukturoppsett med konfigurasjonsfiler. For eksempel kan vi distribuere, oppdatere og administrere infrastrukturen vår ved å definere de nødvendige ressursene.
I denne guiden vil vi se hvordan vi kan opprette en AWS -bruker og legge ved en policy til den ved hjelp av Terraform. La oss først starte med installasjonen av Terraform på Ubuntu 20.04.
Installere terraform
Hashicorp tilbyr den offisielle Terraform -pakken for Ubuntu/Debian, Centos/RHEL, Fedora og Amazon Linux. Ved siden av dette opprettholder den også forhåndskompilert binær og kan også settes fra kilden. For denne guiden bruker vi standardpakken levert av Debian Package Repository for å installere Terraform på Ubuntu 20.04.
Trinn 1. Installer GNUPG-, programvareforekomst-vanlige og krøllpakker for å bekrefte Hashicorps GPG-signatur og installere det nødvendige depotet:
$ sudo apt-get update && sudo apt-get install -y gnupg programvare-Properties-vanlig krøll
Steg 2. Legg til Hashicorp GPG -tasten ved å bruke kommandoen:
$ curl -fssl https: // apt.utgivelser.Hashicorp.com/gpg | sudo apt-key add -
Trinn 3. Fortsett med å legge til det nødvendige depotet.
$ sudo apt-add-repository "Deb [arch = amd64] https: // appt.utgivelser.Hashicorp.com $ (lsb_release -cs) hoved "
Trinn 4. Kjør oppdateringskommandoen for å legge til depotet og installere terraform.
$ sudo apt-get update && sudo apt-get installer terraform
Trinn 5. Kontroller om Terraform er installert ved å kjøre kommandoen:
$ Terraform -version
Vår terraform er installert på vår lokale maskin, slik at vi kan fortsette oppgaven vår med å jobbe med AWS. Som nevnt tidligere bruker Terraform flere konfigurasjonsfiler for å levere ressurser. Hver av disse filene må ligge i sin respektive arbeidsmappe/katalog. La oss lage en katalog for dette formålet.
Lag en mappe for å inneholde konfigurasjonsfilene og endre katalog til denne mappen:
$ mkdir linuxhint-terraForm && cd linuxhint-terraformform
1. Opprette IAM -bruker ved hjelp av terraform
Vi har bare en IAM -bruker akkurat nå:
Vi vil nå lage en 'user_create.tf'Fil som vil bli brukt til å opprette vår bruker' Demouser ':
$ nano user_create.tf
Sett nå følgende konfigurasjon inni den:
terraformOpprette en policy og knytte den til IAM -brukeren ved hjelp av Terraform
Vi oppretter en S3 -liste All Buckets Policy og knytter den til vår IAM -bruker. Legg nå ut filen ovenfor med denne koden:
ressurs "aws_iam_user_policy" "iam"Denne filen inneholder hele konfigurasjonen som skal distribueres ved hjelp av Terraform. Bare bytt ut den dristige teksten med dine egne konfigurasjonsdetaljer. La oss utforske hver av seksjonene som brukes i filen ovenfor:
Versjonsattributtet definerer versjonen av leverandøren du vil bruke.
For å validere eller bekrefte konfigurasjonen, bruk kommandoen:
$ Terraform Valider
Initialisere terraformkatalogen
For å laste ned og installere leverandøren vi definerte i konfigurasjonen og andre filer, må vi initialisere katalogen som inneholder denne filen:
$ terraform init
Som du ser fra bildet over, er vår init -kommando vellykket, og det er noen nye filer også opprettet her. Det er også en kommando til: 'Terraform Plan'. Selv om det ikke er obligatorisk å bruke det, har det noen fordeler. For eksempel.:
1. Du kan se handlingene Terraform kommer til å utføre.
2. Det kan påpeke syntaktiske feil i konfigurasjonsfilene dine.
Terraform nevner ikke denne kommandoen i sin dokumentasjon fordi når du kjører 'Terraform Apply' -kommandoen, vil den samme planen bli presentert igjen.
Bygge infrastrukturen
For å bygge vår infrastruktur, bruk kommandoen:
$ Terraform Søk
Dette vil først sende ut utførelsesplanen som beskriver oppgavene som Terraform vil utføre for å bringe tilstanden til infrastrukturen din til den som er definert i konfigurasjonsfilen din. Etter dette vil det pause og be deg om å bekrefte planen om å fortsette. Hvis alt er satt som du ønsket, skriver du 'ja' for å fortsette:
Hvis du er klar til å fortsette, skriver du 'ja'. Merk at det tar litt tid å fullføre prosessen. Når denne prosessen er fullført, vises meldingen nedenfor:
For å se sikkerhetsopplysningene dine, åpne Terraformen.tfState '-filen og se etter verdienattributtet under “Secret_key” og “Access_key”:
På AWS IAM Management Console vil IAM -brukeren bli oppført der:
For å sjekke hvilken policy som er knyttet til denne IAM -brukeren, klikker du på IAM -brukerens navn. Fra skjermbildet nedenfor kan vi se at eller 'Demouser' har en "test" -policy knyttet til den med samme tillatelse vi har lagt ved tidligere i Terraform -filen.
Verifisere politikken
For å se om vår vedlagte policy fungerer som forventet, kobler du til IAM -brukeren og kjører kommandoen:
$ aws s3 ls
Hvis alt er satt opp riktig, vil du se listen over bøttene dine her:
Ødelegger ressursene
Når du er ferdig og ikke lenger trenger AWS -ressursene du opprettet, kan du ganske enkelt slette dem ved å bruke kommandoen:
$ terraform ødelegger
Konklusjon
I denne guiden har vi lært om å knytte en IAM -policy til en AWS -bruker som bruker Terraform. Du kan også prøve å knytte forskjellige retningslinjer til en bruker eller rolle på samme måte.