Come creare la politica AWS iam usando Terraform

Come creare la politica AWS iam usando Terraform
In AWS, IAM Service viene utilizzato per controllare l'accesso ai servizi e alle risorse di AWS. Ha bisogno di una conoscenza molto approfondita per configurare le politiche IAM per garantire i privilegi minimi ai sistemi e alle risorse AWS.

Costruito ai fini dell'infrastruttura come soluzione di codice (IAC), Terraform supporta più fornitori di servizi cloud. È uno strumento open source sviluppato da Hashicorp. Utilizzando IAC, possiamo gestire la configurazione dell'infrastruttura con file di configurazione. Ad esempio, possiamo distribuire, aggiornare e gestire la nostra infrastruttura definendo le risorse richieste.

In questa guida, vedremo come possiamo creare un utente AWS e allegare una politica usando Terraform. Iniziamo per la prima volta con l'installazione di Terraform su Ubuntu 20.04.

Installazione di terraform

Hashicorp fornisce il pacchetto di Terraform ufficiale per Ubuntu/Debian, CentOS/RHEL, Fedora e Amazon Linux. Oltre a ciò, mantiene anche binario pre-compilato e può anche essere compilato dalla sorgente. Per questa guida, stiamo utilizzando il pacchetto predefinito fornito dal repository del pacchetto Debian per installare Terraform su Ubuntu 20.04.

Passo 1. Installa pacchetti GNUPG, Software-Properties-Common e Curl per verificare la firma GPG di Hashicorp e installare il repository richiesto:

$ sudo apt-get update && sudo apt-get install -y gnupg software-properties-mone

Passo 2. Aggiungi la chiave GPG Hashicorp usando il comando:

$ CURL -FSSL HTTPS: // APT.rilasci.Hashicorp.com/gpg | sudo Apt-Key Aggiungi -

Passaggio 3. Continua aggiungendo il repository richiesto.

$ sudo apt-addd-repository "deb [arch = amd64] https: // apt.rilasci.Hashicorp.com $ (lsb_release -cs) main "

Passaggio 4. Esegui il comando Aggiorna per aggiungere il repository e installare Terraform.

$ sudo apt-get update && sudo apt-get install Terraform

Passaggio 5. Verifica se Terraform è installato eseguendo il comando:

$ Terraform -Version

Il nostro Terraform è installato sulla nostra macchina locale, quindi possiamo continuare il nostro compito nel lavorare con AWS. Come accennato in precedenza, Terraform utilizza diversi file di configurazione per le risorse di provisioning. Ognuno di questi file deve risiedere nella rispettiva cartella/directory di lavoro. Creiamo una directory per questo scopo.

Crea una cartella per contenere i file di configurazione e modificare la directory in questa cartella:

$ MKDIR Linuxhint-Terraform && CD Linuxhint-Terraform

1. Creazione dell'utente IAM utilizzando Terraform

Abbiamo un solo utente IAM in questo momento:

Ora faremo un 'user_create.tf"File che verrà utilizzato per la creazione del nostro utente" DeMouser ":

$ nano user_create.tf

Ora inserisci la seguente configurazione al suo interno:

Terraform
richiesto_providers
aws =
Source = "Hashicorp/AWS"
versione = "~> 3.27 "


richiesto_version = "> = 0.14.9 "

Provider "AWS"
regione = "US-EAST-1"
access_key = "your_access_key_for_current_user"
secret_key = "your_secret_key_for_current_user"

risorsa "aws_iam_user" "new_user"
name = "Demouser"

risorsa "aws_iam_access_key" "Acck"
utente = AWS_IAM_USER.nuovo utente.nome

output "secret_key"
value = aws_iam_access_key.Acck.segreto
sensibile = vero

output "Access_key"
value = aws_iam_access_key.Acck.id

Creazione di una politica e attaccarla all'utente IAM utilizzando Terraform

Creeremo un elenco S3 di tutte le politiche dei secchi e lo alletteremo al nostro utente IAM. Ora aggiungono il file sopra con questo codice:

risorsa "aws_iam_user_policy" "iam"
name = "test"
utente = AWS_IAM_USER.nuovo utente.nome
Politica = <
"Versione": "2012-10-17",
"Dichiarazione": [

"Effetto": "Consenti",
"Azione": "S3: LaldellMybuckets",
"Risorsa": "*"

"

Eof

Questo file contiene l'intera configurazione da distribuire utilizzando Terraform. Basta sostituire il testo in grassetto con i tuoi dettagli di configurazione. Esploriamo ciascuna delle sezioni utilizzate nel file sopra:

  • Terraform - Definisce le impostazioni Terraform. IL 'Provider richiesti' Definisce il provider da utilizzare con Terraform e la "fonte" è un parametro opzionale per il nome host, uno spazio dei nomi e il tipo di provider. Nel codice sopra riportato l'origine è definita come "Hashicorp/AWS ' che come tutti i provider è installato dal registro Terraform. Il fornitore di cui sopra indica 'Registro.terraform.io/hashicorp/aws '.

L'attributo della versione definisce la versione del provider che si desidera utilizzare.

  • Provider: questo in realtà specifica con quale piattaforma cloud stai per interagire (AWS, Azure, GCP ecc.). Questo controlla anche la regione che stai distribuendo le tue risorse e le credenziali di sicurezza per l'utente.
  • Risorsa: comprende componenti che creano un'infrastruttura come database, archiviazione, rete ecc. La prima stringa, qui "AWS_Instance", Definisce il tipo di risorsa e il secondo definisce un nome personalizzato che si desidera utilizzare. Questi due si combinano per formare un ID univoco per una risorsa, per E.G. Qui 'AWS_IAM_ACCESS_KEY.Acck.segreto' è un identificatore di risorse (ID). Allo stesso modo, possiamo anche includere dimensioni della macchina, nomi di immagini del disco o ID VPC.

Per convalidare o verificare la configurazione, utilizzare il comando:

$ Terraform Convalida

Inizializzazione della directory Terraform

Per scaricare e installare il provider che abbiamo definito nella nostra configurazione e in altri file, dobbiamo inizializzare la directory contenente questo file:

$ Terraform init

Come puoi vedere dall'immagine sopra, il nostro comando init ha esito positivo e ci sono anche alcuni nuovi file creati qui. C'è anche un altro comando: 'Piano Terraform'. Sebbene non sia obbligatorio usarlo, ha alcuni vantaggi. Per esempio.:

1. Puoi vedere le azioni che Terraform si esibirà.

2. Può indicare errori sintattici nei file di configurazione.

Terraform non menziona questo comando nella sua documentazione perché quando si esegue il comando "Terraform Applica", lo stesso piano verrà nuovamente presentato.

Costruire l'infrastruttura

Per creare la nostra infrastruttura, utilizzare il comando:

$ Terraform si applica

Ciò emetterà prima il piano di esecuzione che descrive i compiti che Terraform eseguirà per portare lo stato della tua infrastruttura a quello definito nel file di configurazione. Dopo questo, si fermerà e ti chiederà di confermare il piano per continuare. Se tutto è impostato come desiderato, digita "sì" per continuare:

Se sei pronto per continuare, digita "Sì". Si noti che il completamento del processo richiede del tempo. Quando questo processo è completo, apparirà il messaggio seguente:

Per visualizzare le tue credenziali di sicurezza, apri il 'Terraform.file tfstate 'e cerca l'attributo del valore in "Secret_key" e "Access_key":

Sulla tua console di gestione IAM AWS, l'utente IAM sarà elencato lì:

Per verificare quale politica è allegata a questo utente IAM, fai clic sul nome dell'utente IAM. Dallo screenshot seguente, possiamo vedere che o "Demouser" ha una politica di "test" allegata con la stessa autorizzazione che abbiamo allegato in precedenza nel file Terraform.

Verificare la politica

Per vedere se la nostra politica allegata funziona come previsto, connettiti all'utente IAM ed esegui il comando:

$ AWS S3 LS

Se tutto è stato impostato correttamente, vedrai l'elenco dei tuoi secchi qui:

Distruggere le risorse

Quando hai finito e non hai più bisogno delle risorse AWS che hai creato, puoi semplicemente eliminarle usando il comando:

$ Terraform Distruggi

Conclusione

In questa guida, abbiamo imparato a collegare una politica IAM a un utente AWS usando Terraform. Puoi anche provare a collegare politiche diverse a un utente o ruolo allo stesso modo.