GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un ruolo IAM in AWS utilizzando Terraform

In questo articolo vedremo come creare un ruolo IAM. Prima di procedere, presumo che tu abbia familiarità con le basi di Terraform e dei ruoli AWS IAM. Se vuoi saperne di più sui ruoli IAM, fai clic qui. In questo articolo creeremo un ruolo e gli assegneremo le autorizzazioni di amministratore.

Prerequisiti

  1. Comprensione di base di Terraform.
  2. Terraform installato sul tuo sistema.
  3. Account AWS (crea se non ne hai uno).
  4. 'access_key' &'secret_key' di un utente AWS IAM. (Fai clic qui per imparare a creare un utente IAM con 'access_key' &'secret_key' su AWS, )

Cosa faremo

  1. Scrivi i file di configurazione di Terraform per creare un ruolo IAM.
  2. Crea un ruolo IAM usando i file di configurazione di Terraform.
  3. Elimina il ruolo IAM creato utilizzando Terraform.

Scrivere i file di configurazione di Terraform per il ruolo IAM

Crea una directory dedicata in cui puoi creare file di configurazione di terraform.

Usa il seguente comando per creare una directory e cambiarla nella tua attuale directory di lavoro.

mkdir terraform
cd terraforma/

 Sto usando "vim" come editor per scrivere nei file, puoi usare un editor a tua scelta e copiare e incollare le seguenti configurazioni per creare variable.tf, terraform.tfvars e main.tf

 

Crea 'main.tf' che è responsabile della creazione di un ruolo IAM su AWS. Questo main.tf leggerà i valori delle variabili da variabili.tf e terraform.tfvars.

vim main.tf

provider "aws" {
      region     = "${var.region}"
      access_key = "${var.access_key}"
      secret_key = "${var.secret_key}"
}
data "aws_iam_policy_document" "cross_account_assume_role_policy" {
  statement {
    effect = "Allow"

    principals {
      type        = "AWS"
      identifiers = var.principal_arns
    }

    actions = ["sts:AssumeRole"]
  }
}

resource "aws_iam_role" "cross_account_assume_role" {
  name               = var.name
  assume_role_policy = data.aws_iam_policy_document.cross_account_assume_role_policy.json
}

resource "aws_iam_role_policy_attachment" "cross_account_assume_role" {
  count = length(var.policy_arns)

  role       = aws_iam_role.cross_account_assume_role.name
  policy_arn = element(var.policy_arns, count.index)
}

Significato degli argomenti utilizzati nella configurazione precedente:

  • assume_role_policy - (Obbligatorio) Il criterio che concede a un'entità l'autorizzazione ad assumere il ruolo.
  • policy_arn (Obbligatorio) - L'ARN della norma che desideri applicare

Crea 'variables.tf' che contiene la dichiarazione e la definizione delle variabili.

Qui, 

La variabile

"principal_arns" contiene il numero di account AWS che deve essere autorizzato ad assumere questo ruolo. Puoi anche passare un elenco di numeri di conto qui.

La variabile

"policy_arns" contiene l'ARN della norma che dobbiamo allegare al ruolo che creeremo. Puoi anche passare un elenco di ARN delle norme qui.

variabili vim.tf

variable "access_key" {
     description = "Access key to AWS console"
}
variable "secret_key" {
     description = "Secret key to AWS console"
}
variable "region" {
     description = "Region of AWS VPC"
}
variable "name" {
  default = "myrole"
  type        = "string"
  description = "The name of the role. "
}
variable "principal_arns" {
  default = ["123456789012"]
  type        = list(string)
  description = "ARNs of accounts, groups, or users with the ability to assume this role."
}

variable "policy_arns" {
  default = ["arn:aws:iam::aws:policy/AdministratorAccess"]
  type        = list(string)
  description = "List of ARNs of policies to be associated with the created IAM role"
}

Una volta creato 'variables.tf', non dimenticare di modificare i valori assegnati alle variabili. Devi modificare i valori evidenziati poiché sono specifici del mio ambiente. Puoi mantenere le altre variabili così come sono. Se non desideri assegnare l'accesso come amministratore al ruolo che stai creando, puoi modificarlo definendo l'ARN delle norme di tua scelta.

Crea 'terraform.tfvars' che contiene la definizione delle variabili access_key e secret_key definite nel file sopra. Abbiamo mantenuto la dichiarazione di queste 2 variabili nel file 'terraform.tfvars' insieme alla regione.

Per creare un ruolo IAM non abbiamo bisogno in modo specifico di una regione particolare, ho appena tenuto questa variabile qui in modo che tu possa avere una comprensione di questa variabile regione e puoi usarla negli altri file di creazione delle risorse.

Le seguenti chiavi devono essere modificate con le chiavi del tuo utente IAM. Prima di specificare queste chiavi, devi crearle dalla Console AWS e non condividerle con nessuno.

vim terraform.tfvars

region = "eu-west-3"
access_key = "AKIAQ6GAIA5XFLXF6HOV"
secret_key = "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"

Ora dovresti avere 3 file, vale a dire, variabili.tf, terraform.tfvars e main.tf

Crea un ruolo IAM utilizzando i file di configurazione Terraform

Prima di eseguire i seguenti comandi, assicurati di aver configurato la chiave di accesso e la chiave segreta valide.

Il primo comando da utilizzare è 'terraform init'. Questo comando scarica e installa i plug-in per i provider utilizzati nella configurazione. Nel nostro caso è AWS.

  inizializzazione della piattaforma

Il secondo comando da usare è 'terraform plan'. Questo comando viene utilizzato per vedere le modifiche che avverranno sull'infrastruttura.

 piano della piattaforma

Il comando 'terraform apply' creerà le risorse su AWS menzionate nel file main.tf. Ti verrà chiesto di fornire il tuo input per creare le risorse.

Applicazione della piattaforma

Quando esegui il comando precedente, al completamento con successo, puoi vedere che è stata aggiunta una nuova risorsa e che 0 è stata distrutta.

Puoi accedere alla console AWS IAM in Ruolo per verificare se il ruolo IAM è stato creato o meno.

Elimina il ruolo IAM creato utilizzando Terraform

Se non hai più bisogno delle risorse che hai creato usando la configurazione menzionata nel file main.tf, puoi usare il comando "terraform destroy" per eliminare tutte quelle risorse.

Distruggi Terraform

Conclusione

In questo articolo abbiamo visto i passaggi per creare un ruolo IAM con privilegi di amministratore. Abbiamo anche visto come è possibile eliminare il ruolo IAM in un solo comando.


Linux
  1. Come avviare un'istanza AWS EC2 utilizzando Terraform

  2. Crea un Virtual Private Cloud (VPC) su AWS utilizzando Terraform

  3. Crea un'istanza EC2 su AWS utilizzando Terraform

  4. Come creare un'istanza RDS su AWS utilizzando Terraform

  5. Come creare un utente Linux usando Ansible

Come creare un'istanza Amazon AWS EC2 utilizzando Python Boto3

Come creare un'istanza RDS utilizzando Python Boto3 su AWS

Come creare un bucket S3 utilizzando Python Boto3 su AWS

Come creare una tabella DynamoDB in AWS

Come gestire lo stato di terraform in un bucket AWS S3

Come creare una partizione usando il comando "separato".