Ověření Terraformu v Azure
Terraform umožňuje definici, verzi Preview a nasazení cloudové infrastruktury. Pomocí Terraformu vytvoříte konfigurační soubory pomocí syntaxe HCL. Syntaxe seznamu HCL umožňuje zadat poskytovatele cloudu , například Azure, a prvky, které tvoří vaši cloudovou infrastrukturu. Po vytvoření konfiguračních souborů vytvoříte plán provádění, který vám umožní zobrazit náhled změn infrastruktury před jejich nasazením. Jakmile ověříte změny, použijete plán provádění k nasazení infrastruktury.
Pokud chcete použít příkazy Terraformu pro vaše předplatné Azure, musíte nejprve ověřit Terraform pro toto předplatné. Tento článek se zabývá některými běžnými scénáři ověřování v Azure.
V tomto článku získáte informace o těchto tématech:
- Vysvětlení běžných scénářů ověřování Terraformu a Azure
- Ověřování prostřednictvím účtu Microsoft z Cloud Shellu (pomocí Bash nebo PowerShellu)
- Ověřování pomocí účtu Microsoft z Windows (pomocí Bash nebo PowerShellu)
- Vytvoření instančního objektu pomocí Azure CLI
- Vytvoření instančního objektu s využitím Azure PowerShellu
- Zadání přihlašovacích údajů instančního objektu v proměnných prostředí
- Zadání přihlašovacích údajů instančního objektu v bloku zprostředkovatele Terraformu
1. Konfigurace prostředí
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
Nakonfigurujte Terraform: Pokud jste to ještě neudělali, nakonfigurujte Terraform pomocí jedné z následujících možností:
2. Ověření Terraformu v Azure
Scénáře ověřování Terraformu a Azure
Terraform podporuje ověřování pouze v Azure prostřednictvím Azure CLI. Ověřování pomocí Azure PowerShellu se nepodporuje. Modul Azure PowerShellu proto můžete použít při práci Terraformu, musíte se nejdřív ověřit v Azure pomocí Azure CLI.
Tento článek vysvětluje, jak ověřit Terraform v Azure pro následující scénáře. Další informace o možnostech ověřování Terraformu v Azure najdete v tématu Ověřování pomocí Azure CLI.
- Ověřování pomocí účtu Microsoft pomocí Cloud Shellu (pomocí Bash nebo PowerShellu)
- Ověřování pomocí účtu Microsoft pomocí Windows (pomocí Bash nebo PowerShellu)
- Ověřování pomocí instančního objektu:
- Pokud nemáte instanční objekt, vytvořte instanční objekt.
- Ověřování v Azure pomocí proměnných prostředí nebo ověřování v Azure pomocí bloku zprostředkovatele Terraformu
Ověřování v Azure pomocí účtu Microsoft
Účet Microsoft je uživatelské jméno (přidružené k e-mailu a jeho přihlašovacím údajům), které slouží k přihlášení k služby Microsoft , jako je Azure. Účet Microsoft může být přidružený k jednomu nebo několika předplatným Azure, přičemž jedno z těchto předplatných je výchozí.
Následující kroky ukazují, jak:
- Interaktivní přihlášení k Azure pomocí účtu Microsoft
- Výpis přidružených předplatných Azure účtu (včetně výchozího)
- Nastavte aktuální předplatné.
Otevřete příkazový řádek, který má přístup k Azure CLI.
Spusťte az login bez jakýchkoli parametrů a postupujte podle pokynů pro přihlášení k Azure.
az login
Klíčové body:
- Po úspěšném přihlášení
az login
se zobrazí seznam předplatných Azure přidružených k přihlášeným účtům Microsoft, včetně výchozího předplatného.
- Po úspěšném přihlášení
Pokud chcete potvrdit aktuální předplatné Azure, spusťte příkaz az account show.
az account show
Pokud chcete zobrazit všechny názvy a ID předplatných Azure pro konkrétní účet Microsoft, spusťte příkaz az account list.
az account list --query "[?user.name=='<microsoft_account_email>'].{Name:name, ID:id, Default:isDefault}" --output Table
Klíčové body:
<microsoft_account_email>
Zástupný symbol nahraďte e-mailovou adresou účtu Microsoft, jejíž předplatná Azure chcete vypsat.- U účtu Live , jako je hotmail nebo Outlook, možná budete muset zadat plně kvalifikovanou e-mailovou adresu. Pokud je
admin@hotmail.com
například vaše e-mailová adresa , možná budete muset zástupný symbol nahradit znakemlive.com#admin@hotmail.com
.
Pokud chcete použít konkrétní předplatné Azure, spusťte příkaz az account set.
az account set --subscription "<subscription_id_or_subscription_name>"
Klíčové body:
<subscription_id_or_subscription_name>
Zástupný symbol nahraďte ID nebo názvem předplatného, které chcete použít.- Volání
az account set
nezobrazuje výsledky přechodu na zadané předplatné Azure. Můžete ale použítaz account show
k potvrzení, že se aktuální předplatné Azure změnilo. - Pokud spustíte
az account list
příkaz z předchozího kroku, uvidíte, že se výchozí předplatné Azure změnilo na předplatné, kteréaz account set
jste zadali .
Vytvoření instančního objektu služby
Automatizované nástroje, které nasazují nebo používají služby Azure , jako je Terraform, by měly mít vždy omezená oprávnění. Místo toho, aby se aplikace přihlašovaly jako plně privilegovaný uživatel, Azure nabízí instanční objekty.
Nejběžnějším vzorem je interaktivní přihlášení k Azure, vytvoření instančního objektu, otestování instančního objektu a následné použití instančního objektu pro budoucí ověřování (interaktivně nebo z vašich skriptů).
Pokud chcete vytvořit instanční objekt, přihlaste se k Azure. Po ověření v Azure prostřednictvím účtu Microsoft se sem vraťte.
Pokud vytváříte instanční objekt z Git Bash, nastavte proměnnou
MSYS_NO_PATHCONV
prostředí. (Tento krok není nutný, pokud používáte Cloud Shell.)export MSYS_NO_PATHCONV=1
Klíčové body:
- Proměnnou
MSYS_NO_PATHCONV
prostředí můžete nastavit globálně (pro všechny terminálové relace) nebo místně (pouze pro aktuální relaci). Vzhledem k tomu, že vytvoření instančního objektu není něco, co často děláte, ukázka nastaví hodnotu pro aktuální relaci. Pokud chcete tuto proměnnou prostředí nastavit globálně, přidejte toto nastavení do~/.bashrc
souboru.
- Proměnnou
Pokud chcete vytvořit instanční objekt, spusťte příkaz az ad sp create-for-rbac.
az ad sp create-for-rbac --name <service_principal_name> --role Contributor --scopes /subscriptions/<subscription_id>
Klíčové body:
- Parametr můžete nahradit
<service-principal-name>
vlastním názvem vašeho prostředí nebo ho úplně vynechat. Pokud parametr vynecháte, vygeneruje se hlavní název služby na základě aktuálního data a času. - Po úspěšném dokončení se
az ad sp create-for-rbac
zobrazí několik hodnot. HodnotyappId
atenant
hodnotypassword
se používají v dalším kroku. - Heslo nelze načíst, pokud dojde ke ztrátě. Heslo byste proto měli uložit na bezpečném místě. Pokud heslo zapomenete, můžete resetovat přihlašovací údaje instančního objektu.
- V tomto článku se používá instanční objekt s rolí Přispěvatel . Další informace o rolích řízení přístupu na základě role (RBAC) najdete v tématu RBAC: Předdefinované role.
- Výstup z vytvoření instančního objektu zahrnuje citlivé přihlašovací údaje. Ujistěte se, že tyto přihlašovací údaje nezahrnete do kódu, nebo zkontrolujte přihlašovací údaje do správy zdrojového kódu.
- Další informace o možnostech při vytváření instančního objektu pomocí Azure CLI najdete v článku Vytvoření instančního objektu Azure pomocí Azure CLI.
- Parametr můžete nahradit
Zadání přihlašovacích údajů instančního objektu v proměnných prostředí
Po vytvoření instančního objektu můžete zadat jeho přihlašovací údaje k Terraformu prostřednictvím proměnných prostředí.
~/.bashrc
Upravte soubor přidáním následujících proměnných prostředí.export ARM_SUBSCRIPTION_ID="<azure_subscription_id>" export ARM_TENANT_ID="<azure_subscription_tenant_id>" export ARM_CLIENT_ID="<service_principal_appid>" export ARM_CLIENT_SECRET="<service_principal_password>"
Pokud chcete spustit
~/.bashrc
skript, spusťtesource ~/.bashrc
(nebo jeho zkrácený ekvivalent. ~/.bashrc
). Můžete také ukončit a znovu otevřít Cloud Shell, aby se skript spustil automaticky.. ~/.bashrc
Po nastavení proměnných prostředí můžete jejich hodnoty ověřit následujícím způsobem:
printenv | grep ^ARM*
Klíčové body:
- Stejně jako u jakékoli proměnné prostředí použijte pro přístup k hodnotě předplatného Azure z skriptu Terraformu následující syntaxi:
${env.<environment_variable>}
Pokud například chcete získat přístup k hodnotěARM_SUBSCRIPTION_ID
, zadejte${env.ARM_SUBSCRIPTION_ID}
. - Vytvoření a použití plánů provádění Terraformu provádí změny v předplatném Azure přidruženém k instančnímu objektu. Tento fakt může být někdy matoucí, pokud jste přihlášení k jednomu předplatnému Azure a proměnné prostředí odkazují na druhé předplatné Azure. Podívejme se na následující příklad, který vysvětlujeme. Řekněme, že máte dvě předplatná Azure: SubA a SubB. Pokud je aktuální předplatné Azure SubA (určeno prostřednictvím
az account show
), zatímco proměnné prostředí odkazují na SubB, všechny změny provedené Terraformem jsou v SubB. Proto byste se museli přihlásit ke svému předplatnému SubB, abyste mohli zobrazit změny spuštěním příkazů Azure CLI nebo příkazů Azure PowerShellu.
Zadání přihlašovacích údajů instančního objektu v bloku zprostředkovatele Terraformu
Blok zprostředkovatele Azure definuje syntaxi, která umožňuje zadat ověřovací informace vašeho předplatného Azure.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>2.0"
}
}
}
provider "azurerm" {
features {}
subscription_id = "<azure_subscription_id>"
tenant_id = "<azure_subscription_tenant_id>"
client_id = "<service_principal_appid>"
client_secret = "<service_principal_password>"
}
# Your code goes here
Upozornění
Možnost zadat přihlašovací údaje předplatného Azure v konfiguračním souboru Terraformu může být praktická – zejména při testování. Nedoporučuje se ale ukládat přihlašovací údaje do prostého textového souboru, který můžou zobrazit nevěrní jednotlivci.
3. Ověření výsledků
Ověřte, že jste se ověřili v předplatném Azure zobrazením aktuálního předplatného.
Pokud chcete ověřit aktuální předplatné Azure prostřednictvím Azure CLI, spusťte příkaz az account show.
az account show
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro