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
- Základní porozumění Terraformu.
- Terraform nainstalovaný ve vašem systému.
- Účet AWS (vytvořte si jej, pokud jej nemáte).
- '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
- Zapište konfigurační soubory Terraform pro vytvoření role IAM.
- Vytvořte roli IAM pomocí konfiguračních souborů Terraform.
- 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.