GNU/Linux >> Znalost Linux >  >> Linux

Jak vytvořit roli IAM v AWS pomocí Terraform

V tomto článku uvidíme, jak vytvořit roli IAM. Než budete pokračovat, předpokládám, že jste obeznámeni se základy rolí Terraform a AWS IAM. Pokud se chcete o rolích IAM dozvědět více, klikněte sem. V tomto článku vytvoříme roli a přidělíme jí administrátorská oprávnění.

Předpoklady

  1. Základní porozumění Terraformu.
  2. Terraform nainstalovaný ve vašem systému.
  3. Účet AWS (vytvořte si jej, pokud jej nemáte).
  4. 'access_key' &'secret_key' uživatele AWS IAM. (Kliknutím sem se dozvíte, jak vytvořit uživatele IAM pomocí 'access_key' a 'secret_key' na AWS, )

Co uděláme

  1. Zapište konfigurační soubory Terraform pro vytvoření role IAM.
  2. Vytvořte roli IAM pomocí konfiguračních souborů Terraform.
  3. Smažte vytvořenou roli IAM pomocí Terraform.

Zápis konfiguračních souborů Terraform pro roli IAM

Vytvořte vyhrazený adresář, kde můžete vytvářet konfigurační soubory terraform.

Použijte následující příkaz k vytvoření adresáře a změňte na něj svůj současný pracovní adresář.

mkdir terraform
cd terraform/

 Používám „vim“ jako editor k zápisu do souborů, můžete použít editor podle svého výběru a zkopírovat a vložit následující konfigurace, abyste vytvořili proměnné.tf, terraform.tfvars a  main.tf

 

Vytvořte soubor 'main.tf', který je zodpovědný za vytvoření role IAM  na AWS. Tento main.tf bude číst hodnoty proměnných z variables.tf a 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)
}

Význam argumentů použitých ve výše uvedené konfiguraci:

  • assume_role_policy – (Povinné) Zásady, které udělují entitě oprávnění převzít roli.
  • policy_arn (Povinné) – ARN zásady, kterou chcete použít

Vytvořte soubor 'variables.tf', který obsahuje deklaraci a definici proměnných.

Tady 

Proměnná "principal_arns" obsahuje číslo účtu AWS, které má mít povoleno používat tuto roli. Zde můžete dokonce předat seznam čísel účtů.

Proměnná "policy_arns" obsahuje ARN zásady, kterou musíme přiřadit k roli, kterou budeme vytvářet. Zde můžete dokonce předat seznam zásad ARN.

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

Jakmile vytvoříte 'variables.tf', nezapomeňte změnit hodnoty přiřazené proměnným. Zvýrazněné hodnoty musíte změnit, protože jsou specifické pro mé prostředí. Zbývající proměnné můžete ponechat tak, jak jsou. Pokud nechcete přidělovat přístup správce k roli, kterou vytváříte, můžete to změnit definováním ARN zásad podle vaší volby.

Vytvořte 'terraform.tfvars', který obsahuje definici proměnných access_key a secret_key definovaných ve výše uvedeném souboru. Uchovali jsme deklaraci těchto 2 proměnných v souboru 'terraform.tfvars' spolu s regionem.

Pro vytvoření role IAM nepotřebujeme konkrétně konkrétní oblast,  tuto proměnnou jsem uložil zde, abyste mohli porozumět této proměnné oblasti a mohli ji použít ve vašich dalších souborech pro vytváření zdrojů.

Následující klíče je třeba změnit pomocí klíčů vašeho uživatele IAM. Před zadáním těchto klíčů je musíte vytvořit z konzoly AWS a s nikým tyto klíče nesdílet.

vim terraform.tfvars

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

Nyní byste měli mít 3 soubory, viz, variables.tf, terraform.tfvars a  main.tf

Vytvořte roli IAM pomocí konfiguračních souborů Terraform

Před spuštěním následujících příkazů se ujistěte, že jste nakonfigurovali platný access_key a secret_key.

Prvním příkazem, který se má použít, je 'terraform init'. Tento příkaz stáhne a nainstaluje pluginy pro poskytovatele používané v rámci konfigurace. V našem případě je to AWS.

  terraform init

Druhý příkaz, který se má použít, je 'terraform plan'. Tento příkaz se používá k zobrazení změn, ke kterým dojde v infrastruktuře.

 plán terraform

příkaz 'terraform apply' vytvoří prostředky na AWS uvedené v souboru main.tf. Budete vyzváni, abyste poskytli svůj vstup pro vytvoření zdrojů.

platí Terraform

Když provedete výše uvedený příkaz, po úspěšném dokončení uvidíte, že byl přidán nový zdroj a 0 byl zničen.

Můžete přejít do konzole AWS IAM v části Role a ověřit, zda je role IAM vytvořena či nikoli.

Odstranit vytvořenou roli IAM pomocí Terraform

Pokud již nepotřebujete prostředky, které jste vytvořili pomocí konfigurace uvedené v souboru main.tf, můžete všechny tyto prostředky smazat pomocí příkazu "terraform zničit".

ničit terraform

Závěr

V tomto článku jsme viděli kroky k vytvoření role IAM s oprávněními správce. Také jsme viděli, jak lze roli IAM odstranit jediným příkazem.


Linux
  1. Vytvořte virtuální privátní cloud (VPC) na AWS pomocí Terraform

  2. Jak vytvořit instanci RDS na AWS pomocí Terraform

  3. Jak vytvořit uživatele Linuxu pomocí Ansible

  1. Jak spustit instanci AWS EC2 pomocí Terraform

  2. Jak vytvořit modul Terraform

  3. Vytvořte instanci EC2 na AWS pomocí Terraform

  1. Jak spravovat instance AWS EC2 pomocí aws-cli

  2. Jak spravovat AWS Cloudwatch pomocí aws-cli

  3. Jak vytvořit statický web na AWS S3 Bucket