Øvelse – Opret en arbejdsbelastningsidentitet
Før du kan udrulle dit legetøjsfirmas websted ved hjælp af en arbejdsproces, skal du aktivere din arbejdsproces for at godkende i Azure. I denne øvelse skal du:
- Opret en ressourcegruppe til dit websted.
- Opret et Microsoft Entra-arbejdsbelastnings-id, og giv det adgang til ressourcegruppen.
- Opret GitHub-hemmeligheder for at forberede din arbejdsproces til at bruge arbejdsbelastningsidentiteten.
Denne øvelse kræver, at du har tilladelse til at oprette programmer i din Microsoft Entra-mappe. Hvis du ikke kan opfylde dette krav med din aktuelle Azure-konto, kan du få en gratis prøveversion og oprette et nyt Azure-abonnement og en ny lejer.
Vigtig
Den sidste øvelse i dette modul indeholder vigtige oprydningstrin. Sørg for at følge oprydningstrinnene, selvom du ikke fuldfører dette modul.
Log på Azure
Hvis du vil arbejde med arbejdsbelastningsidentiteter i Azure, skal du logge på din Azure-konto fra Visual Studio Code-terminalen. Sørg for, at du har installeret værktøjerne til Azure CLI.
I menuen Terminal skal du vælge Ny terminal. Terminalvinduet åbnes normalt i den nederste halvdel af skærmen.
Standardskallen er typisk pwsh-, som vist i højre side af terminalvinduet.
Vælg rullelisten Start profil , og vælg derefter Azure Cloud Shell (Bash).
Der åbnes en ny shell.
Log på Azure ved hjælp af kommandolinjegrænsefladen i Azure
Kør følgende kommando i Visual Studio Code-terminalen for at logge på Azure:
az login
Log på din Azure-konto i den browser, der åbnes.
Hvis du vil installere denne skabelon på Azure, skal du logge på din Azure-konto fra Visual Studio Code-terminalen. Sørg for, at du har installeret Azure PowerShell, og log på den samme konto, som du brugte til at aktivere sandkassen.
I menuen Terminal skal du vælge Ny terminal. Terminalvinduet åbnes normalt i den nederste halvdel af skærmen.
Standardskallen er typisk pwsh-, som vist i højre side af terminalvinduet.
Vælg rullelisten Start profil , og vælg derefter Azure Cloud Shell (PowerShell).
Der åbnes en ny shell.
Log på Azure ved hjælp af Azure PowerShell
Kør følgende kommando i Visual Studio Code-terminalen for at logge på Azure:
Connect-AzAccount
Log på din Azure-konto i den browser, der åbnes.
Opret en arbejdsbelastningsidentitet
Drikkepenge
I dette modul skal du oprette en arbejdsbelastningsidentitet, som din arbejdsproces kan bruge. Modulet Godkend din Azure-udrulningsarbejdsproces ved hjælp af arbejdsbelastningsidentiteter giver en mere detaljeret beskrivelse af arbejdsbelastningsidentiteter, herunder hvordan de fungerer, samt hvordan du opretter dem, tildeler dem roller og administrerer dem.
Hvis du vil oprette arbejdsbelastningsidentiteten, bruger Azure CLI-kommandoerne jq
til at fortolke data fra JSON-output. Hvis du ikke har jq
installeret, kan du bruge Bash i Azure Cloud Shell- til at oprette arbejdsbelastningsidentitet, ressourcegruppe og rolletildeling og forberede GitHub-hemmelighederne.
Kør følgende kode for at definere variabler for dit GitHub-brugernavn og dit lagernavn. Sørg for, at du erstatter
mygithubuser
med dit GitHub-brugernavn, som du bemærkede i den forrige øvelsesenhed.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-workflow'
Kør følgende kode, som opretter en arbejdsbelastningsidentitet og knytter den til dit GitHub-lager:
applicationRegistrationDetails=$(az ad app create --display-name 'toy-website-workflow') applicationRegistrationObjectId=$(echo $applicationRegistrationDetails | jq -r '.id') applicationRegistrationAppId=$(echo $applicationRegistrationDetails | jq -r '.appId') az ad app federated-credential create \ --id $applicationRegistrationObjectId \ --parameters "{\"name\":\"toy-website-workflow\",\"issuer\":\"https://token.actions.githubusercontent.com\",\"subject\":\"repo:${githubOrganizationName}/${githubRepositoryName}:ref:refs/heads/main\",\"audiences\":[\"api://AzureADTokenExchange\"]}"
Kør følgende kode for at definere variabler for dit GitHub-brugernavn og dit lagernavn. Sørg for, at du erstatter
mygithubuser
med dit GitHub-brugernavn, som du bemærkede i den forrige øvelsesenhed.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-workflow'
Kør følgende kode, som opretter en arbejdsbelastningsidentitet og knytter den til dit GitHub-lager:
$applicationRegistration = New-AzADApplication -DisplayName 'toy-website-workflow' New-AzADAppFederatedCredential ` -Name 'toy-website-workflow' ` -ApplicationObjectId $applicationRegistration.Id ` -Issuer 'https://token.actions.githubusercontent.com' ` -Audience 'api://AzureADTokenExchange' ` -Subject "repo:$($githubOrganizationName)/$($githubRepositoryName):ref:refs/heads/main"
Opret en ressourcegruppe i Azure, og tildel adgang til arbejdsbelastningens identitet
Hvis du vil oprette en ny ressourcegruppe og give din arbejdsbelastningsidentitet adgang til den, skal du køre denne Kommandolinjegrænseflade i Azure i Visual Studio Code-terminalen:
resourceGroupResourceId=$(az group create --name ToyWebsite --location westus3 --query id --output tsv)
az ad sp create --id $applicationRegistrationObjectId
az role assignment create \
--assignee $applicationRegistrationAppId \
--role Contributor \
--scope $resourceGroupResourceId
Hvis du vil oprette en ressourcegruppe og give din arbejdsbelastningsidentitet adgang til den, skal du køre denne Azure PowerShell-kommando i Visual Studio Code-terminalen:
$resourceGroup = New-AzResourceGroup -Name ToyWebsite -Location westus3
New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
-ApplicationId $($applicationRegistration.AppId) `
-RoleDefinitionName Contributor `
-Scope $resourceGroup.ResourceId
Forbered GitHub-hemmeligheder
Kør følgende kode for at vise dig de værdier, du skal oprette som GitHub-hemmeligheder:
echo "AZURE_CLIENT_ID: $applicationRegistrationAppId"
echo "AZURE_TENANT_ID: $(az account show --query tenantId --output tsv)"
echo "AZURE_SUBSCRIPTION_ID: $(az account show --query id --output tsv)"
$azureContext = Get-AzContext
Write-Host "AZURE_CLIENT_ID: $($applicationRegistration.AppId)"
Write-Host "AZURE_TENANT_ID: $($azureContext.Tenant.Id)"
Write-Host "AZURE_SUBSCRIPTION_ID: $($azureContext.Subscription.Id)"
Opret GitHub-hemmeligheder
Du har oprettet en ressourcegruppe og en arbejdsbelastningsidentitet. Opret derefter nogle hemmeligheder i GitHub-handlinger, så din arbejdsproces kan logge på ved hjælp af arbejdsbelastningsidentiteten.
Gå til dit GitHub-lager i din browser.
Vælg Indstillinger>Hemmeligheder og variabler>Handlinger.
Vælg Ny lagerhemmelighed.
Navngiv hemmeligheden AZURE_CLIENT_ID.
I feltet Value skal du indsætte GUID'et fra den første linje i terminaloutputtet. Medtag ikke
AZURE_CLIENT_ID
, kolon eller mellemrum i værdien.Vælg Tilføj hemmelighed.
Gentag processen for at oprette hemmelighederne for AZURE_TENANT_ID og AZURE_SUBSCRIPTION_ID, og kopiér værdierne fra de tilsvarende felter i terminaloutputtet.
Kontrollér, at listen over hemmeligheder nu viser alle tre hemmeligheder.