Cvičení – Autorizujte svůj služební principál pro nasazení
V předchozím cvičení jste vytvořili služební účet pro nasazovací kanál vašeho webu a otestovali jste, že jste se mohli přihlásit pomocí jeho klíče. Nyní jste připraveni udělit představiteli služby přístup k vašemu prostředí Azure. V tomto cvičení vytvoříte přiřazení role pro instanční objekt a pak pomocí instančního objektu nasadíte soubor Bicep.
Během tohoto procesu:
- Přihlaste se jako vlastní uživatelský účet.
- Vytvořte skupinu prostředků pro web vaší společnosti.
- Vytvořte přiřazení role, které principálu služby umožní nasadit prostředky do skupiny prostředků.
- Přihlaste se jako aplikační objekt a nasaďte soubor Bicep, který vytvoří zdroje pro webové stránky vaší společnosti.
- Ověřte nasazení.
- Vyčistěte skupinu prostředků a služební identitu.
Přihlásit se jako uživatelský účet
V předchozím cvičení jste se přihlásili pomocí služebního principálu a poté se odhlásili. Nyní se musíte znovu přihlásit ke svému vlastnímu uživatelskému účtu, abyste mohli pokračovat v dalších krocích tohoto cvičení.
V terminálu Azure Cloud Shellu (Bash) editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
V terminálu Azure Cloud Shellu (PowerShell) editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
Connect-AzAccount
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Vytvoření skupiny prostředků
Teď vytvoříte skupinu prostředků, která bude obsahovat prostředky webu společnosti toy.
Spuštěním tohoto příkazu Azure CLI v terminálu editoru Visual Studio Code vytvořte skupinu prostředků:
az group create --name ToyWebsite --location eastus
Podívejte se na výstup JSON z předchozího příkazu. Obsahuje vlastnost nazývanou
id
, což je ID skupiny prostředků. Zkopírujte to někde v bezpečí. Brzy ho použijete.
Spuštěním tohoto příkazu Azure PowerShellu v terminálu editoru Visual Studio Code vytvořte skupinu prostředků:
New-AzResourceGroup -Name ToyWebsite -Location eastus
Podívejte se na výstup z předchozího příkazu. Obsahuje vlastnost nazvanou
ResourceId
, které je ID skupiny prostředků. Zkopírujte to někde v bezpečí. Brzy ho použijete.
Vytvořte přiřazení role
U implementačního kanálu pro váš web se rozhodnete vytvořit přiřazení role s následujícími podrobnostmi:
- assignee: Instanční objekt, který jste vytvořili v předchozím cvičení.
- Role: Předdefinovaná role Přispěvatel.
- Rozsah: Skupina prostředků, kterou jste vytvořili v předchozím kroku.
Spuštěním následujícího příkazu Azure CLI v terminálu editoru Visual Studio Code vytvořte přiřazení role. Zástupné symboly nahraďte hodnotami, které jste zkopírovali dříve.
az role assignment create \
--assignee APPLICATION_ID \
--role Contributor \
--scope RESOURCE_GROUP_ID \
--description "The deployment pipeline for the company's website needs to be able to create resources within the resource group."
Spuštěním následujícího příkazu Azure CLI v terminálu editoru Visual Studio Code vytvořte přiřazení role. Zástupné symboly nahraďte hodnotami, které jste zkopírovali dříve.
New-AzRoleAssignment `
-ApplicationId APPLICATION_ID `
-RoleDefinitionName Contributor `
-Scope RESOURCE_GROUP_ID `
-Description "The deployment pipeline for the company's website needs to be able to create resources within the resource group."
Vytvořte soubor Bicep
Dříve jste vytvořili soubor Bicep, který nasazuje prostředky vašeho webu. Soubor uložíte zde, abyste jej mohli otestovat pomocí servisního principálu.
Vytvořte nový soubor s názvem main.bicep.
Do souboru main.bicep přidejte následující obsah. Šablonu nasadíte brzy.
@description('The Azure region into which the resources should be deployed.') param location string = resourceGroup().location @description('The name of the App Service app.') param appServiceAppName string = 'toywebsite${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-website-plan' var applicationInsightsInstanceName = 'toy-website-insights' resource appServicePlan 'Microsoft.Web/serverFarms@2020-06-01' = { name: appServicePlanName location: location sku: { name: appServicePlanSkuName } } resource applicationInsightsInstance 'Microsoft.Insights/components@2018-05-01-preview' = { name: applicationInsightsInstanceName location: location kind: 'web' properties: { Application_Type: 'web' } } resource appServiceApp 'Microsoft.Web/sites@2020-06-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' value: applicationInsightsInstance.properties.InstrumentationKey } { name: 'APPLICATIONINSIGHTS_CONNECTION_STRING' value: applicationInsightsInstance.properties.ConnectionString } ] } } }
Uložte změny souboru. Můžete buď vybrat Soubor>Uložit jako, nebo vybrat Ctrl+S ve Windows (⌘+S v macOS). Nezapomeňte si zapamatovat, kam jste soubor uložili. Můžete například chtít vytvořit skripty složku, do které ji uložíte.
Nasaďte soubor Bicep pomocí služebního principálu
V současné době nemáte kanál nasazení, takže budete simulovat, co kanál provádí pro nasazení souboru Bicep.
Spusťte následující příkaz Azure CLI v terminálu editoru Visual Studio Code a přihlaste se pomocí přihlašovacích údajů služebního principála. Zástupné symboly nahraďte hodnotami, které jste zkopírovali v předchozím cvičení.
az login --service-principal \ --username APPLICATION_ID \ --password SERVICE_PRINCIPAL_KEY \ --tenant TENANT_ID
Nasaďte soubor Bicep spuštěním následujícího příkazu Azure CLI:
az deployment group create \ --resource-group ToyWebsite \ --template-file main.bicep
Dokončení nasazení může trvat minutu nebo dvě, a poté uvidíte, že nasazení proběhlo úspěšně.
V terminálu Visual Studio Code spusťte následující příkaz Azure PowerShellu, který vás bezpečně vyzve k zadání přihlašovacích údajů služebního principálu. Pro uživatelské jméno a heslo použijte ID a klíč aplikace instančního objektu z předchozího cvičení.
$credential = Get-Credential
Spusťte následující příkaz Azure PowerShell v terminálu Visual Studio Code, abyste se přihlásili pomocí přihlašovacích údajů služebního objektu. Zástupný symbol
TENANT_ID
nahraďte hodnotou, kterou jste zkopírovali dříve.Connect-AzAccount -ServicePrincipal ` -Credential $credential ` -Tenant TENANT_ID
Nasaďte soubor Bicep spuštěním následujícího příkazu Azure PowerShellu:
New-AzResourceGroupDeployment -ResourceGroupName ToyWebsite -TemplateFile main.bicep
Dokončení nasazení může trvat minutu či dvě, poté uvidíte úspěšné nasazení.
Ověření nasazení
Pomocí webu Azure Portal zkontrolujte prostředky, které jste nasadili, a zkontrolujte výsledky nasazení.
Přejděte na portál Azure.
V levém podokně vyberte skupiny prostředků.
Vyberte ToyWebsite.
Výběrem možnosti Nasazení zobrazíte úspěšné nasazení.
Může se také zobrazit nasazení pojmenované Failure-Anomalies-Alert-Rule-Deployment. Application Insights toto nasazení vytvoří automaticky.
Vyberte hlavní nasazení pro zobrazení nasazených prostředků, a poté rozbalte Podrobnosti o nasazení.
V tomto případě se zobrazí plán služby App Service, aplikace a instance Application Insights.
Všimněte si, že pro toto nasazení není nic neobvyklého. I když to inicioval služební principal, je to jako jakékoli jiné nasazení Bicep.
Vyčištění skupiny prostředků a služebního hlavního objektu
Úspěšně jste vytvořili aplikační objekt a přiřadili jste roli a nasadili jste prostředky vašeho webu pomocí souboru Bicep. Teď můžete odebrat prostředky, které jste vytvořili.
Odhlaste se z účtu služby principal pomocí následujícího příkazu:
az logout
Přihlaste se zpět do Azure pomocí vlastního uživatelského účtu spuštěním následujícího příkazu:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Spuštěním následujícího příkazu Azure CLI odstraňte skupinu prostředků, její obsah a přiřazení role:
az group delete --name ToyWebsite
Po zobrazení výzvy k potvrzení zadejte
y
.Pro spuštění následujícího příkazu odstraňte objekt hlavní služby. Zástupný symbol
APPLICATION_ID
nahraďte ID aplikace, které jste zkopírovali v předchozím cvičení:az ad sp delete --id APPLICATION_ID
Odhlaste se z účtu služebního principálu pomocí následujícího příkazu:
Logout-AzAccount
Přihlaste se zpět do Azure pomocí vlastního uživatelského účtu spuštěním následujícího příkazu:
Connect-AzAccount
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Spuštěním následujícího příkazu Azure PowerShellu odstraňte skupinu prostředků, její obsah a přiřazení role:
Remove-AzResourceGroup -Name ToyWebsite
Po zobrazení výzvy k potvrzení zadejte
y
.Spuštěním následujícího příkazu odstraňte instanční objekt. Zástupný symbol
APPLICATION_ID
nahraďte ID aplikace, které jste zkopírovali v předchozím cvičení:Remove-AzADServicePrincipal -ApplicationId APPLICATION_ID
Po zobrazení výzvy k potvrzení zadejte
y
.