GNU/Linux >> Tutoriels Linux >  >> Linux

Comment créer un rôle IAM dans AWS à l'aide de Terraform

Dans cet article, nous verrons comment créer un rôle IAM. Avant de continuer, je suppose que vous connaissez les bases de Terraform et des rôles AWS IAM. Si vous souhaitez en savoir plus sur les rôles IAM, cliquez ici. Dans cet article, nous allons créer un rôle et lui attribuer les autorisations d'administrateur.

Prérequis

  1. Compréhension de base de Terraform.
  2. Terraform installé sur votre système.
  3. Compte AWS (créez-le si vous n'en avez pas).
  4. 'access_key' &'secret_key' d'un utilisateur AWS IAM. (Cliquez ici pour apprendre à créer un utilisateur IAM avec 'access_key' &'secret_key' sur AWS, )

Ce que nous allons faire

  1. Écrire des fichiers de configuration Terraform pour créer un rôle IAM.
  2. Créez un rôle IAM à l'aide des fichiers de configuration Terraform.
  3. Supprimez le rôle IAM créé à l'aide de Terraform.

Écrire des fichiers de configuration Terraform pour le rôle IAM

Créez un répertoire dédié dans lequel vous pouvez créer des fichiers de configuration terraform.

Utilisez la commande suivante pour créer un répertoire et y modifier votre répertoire de travail actuel.

mkdir terraform
cd terraform/

 J'utilise "vim" comme éditeur pour écrire dans des fichiers, vous pouvez utiliser un éditeur de votre choix et copier-coller les configurations suivantes pour créer variables.tf, terraform.tfvars et main.tf

 

Créez « main.tf » qui est responsable de la création d'un rôle IAM sur AWS. Ce main.tf lira les valeurs des variables de variables.tf et 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)
}

Signification des arguments utilisés dans la configuration ci-dessus :

  • assume_role_policy - (Obligatoire) La stratégie qui accorde à une entité l'autorisation d'assumer le rôle.
  • policy_arn (Obligatoire) :ARN de la règle que vous souhaitez appliquer

Créer 'variables.tf' qui contient la déclaration et la définition des variables.

Ici, 

La variable "principal_arns" contient le numéro de compte AWS qui doit être autorisé à assumer ce rôle. Vous pouvez même transmettre une liste de numéros de compte ici.

"policy_arns" variable contient l'ARN de la stratégie que nous devons attacher au rôle que nous allons créer. Vous pouvez même transmettre une liste d'ARN de stratégie ici.

variables 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"
}

Une fois que vous avez créé 'variables.tf', n'oubliez pas de modifier les valeurs attribuées aux variables. Vous devez modifier les valeurs mises en surbrillance car elles sont spécifiques à mon environnement. Vous pouvez conserver les autres variables telles quelles. Si vous ne souhaitez pas attribuer l'accès administrateur au rôle que vous créez, vous pouvez le modifier en définissant l'ARN de la stratégie de votre choix.

Créez 'terraform.tfvars' qui contient la définition des variables access_key et secret_key définies dans le fichier ci-dessus. Nous avons conservé la déclaration de ces 2 variables dans le fichier 'terraform.tfvars' avec la région.

Pour créer un rôle IAM, nous n'avons pas spécifiquement besoin d'une région particulière, je viens de conserver cette variable ici afin que vous puissiez comprendre cette variable de région et que vous puissiez l'utiliser dans vos autres fichiers de création de ressources.

Les clés suivantes doivent être modifiées avec les clés de votre utilisateur IAM. Avant de spécifier ces clés, vous devez les créer à partir de la console AWS et ne partager ces clés avec personne.

vim terraform.tfvars

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

Maintenant, vous devriez avoir 3 fichiers, à savoir, variables.tf, terraform.tfvars et main.tf

Créer un rôle IAM à l'aide des fichiers de configuration Terraform

Avant d'exécuter les commandes suivantes, assurez-vous d'avoir configuré la clé d'accès et la clé secrète valides.

La première commande à utiliser est "terraform init". Cette commande télécharge et installe les plug-ins pour les fournisseurs utilisés dans la configuration. Dans notre cas, il s'agit d'AWS.

  terraform init

La deuxième commande à utiliser est 'terraform plan'. Cette commande permet de voir les changements qui auront lieu sur l'infrastructure.

 plan de terraformation

La commande 'terraform apply' créera les ressources sur l'AWS mentionnées dans le fichier main.tf. Vous serez invité à fournir votre contribution pour créer les ressources.

appliquer terraform

Lorsque vous exécutez la commande ci-dessus, une fois l'exécution réussie, vous pouvez voir que de nouvelles ressources ont été ajoutées et 0 a été détruite.

Vous pouvez accéder à la console AWS IAM sous Rôle pour vérifier si le rôle IAM est créé ou non.

Supprimer le rôle IAM créé à l'aide de Terraform

Si vous n'avez plus besoin des ressources que vous avez créées à l'aide de la configuration mentionnée dans le fichier main.tf, vous pouvez utiliser la commande "terraform destroy" pour supprimer toutes ces ressources.

terraform détruire

Conclusion

Dans cet article, nous avons vu les étapes pour créer un rôle IAM avec des privilèges d'administrateur. Nous avons également vu comment le rôle IAM peut être supprimé en une seule commande.


Linux
  1. Comment lancer une instance AWS EC2 à l'aide de Terraform

  2. Créer un cloud privé virtuel (VPC) sur AWS à l'aide de Terraform

  3. Créer une instance EC2 sur AWS à l'aide de Terraform

  4. Comment créer une instance RDS sur AWS à l'aide de Terraform

  5. Comment créer un utilisateur Linux avec Ansible

Comment créer une instance Amazon AWS EC2 à l'aide de Python Boto3

Comment créer une instance RDS à l'aide de Python Boto3 sur AWS

Comment créer un compartiment S3 à l'aide de Python Boto3 sur AWS

Comment créer une table DynamoDB dans AWS

Comment gérer l'état de Terraform dans un compartiment AWS S3

Comment créer une partition à l'aide de la commande "parted"