Cvičení – vytvoření identity úlohy
Než budete moct nasadit web vaší toy společnosti pomocí pracovního postupu, musíte povolit ověření pracovního postupu v Azure. V tomto cvičení:
- Vytvořte pro svůj web skupinu prostředků.
- Vytvořte ID úloh Microsoft Entra a udělte mu přístup ke skupině prostředků.
- Vytvořte tajné kódy GitHubu pro přípravu pracovního postupu na používání identity úlohy.
Toto cvičení vyžaduje, abyste měli oprávnění k vytváření aplikací v adresáři Microsoft Entra. Pokud tento požadavek nemůžete splnit s aktuálním účtem Azure, můžete získat bezplatnou zkušební verzi a vytvořit nové předplatné a tenanta Azure.
Důležité
Poslední cvičení v tomto modulu obsahuje důležité kroky čištění. Nezapomeňte postupovat podle kroků čištění, i když tento modul nedokončíte.
Přihlášení k Azure
Pokud chcete pracovat s identitami úloh v Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali nástroje Azure CLI .
V nabídce Terminál vyberte Nový terminál. Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Výchozí prostředí je obvykle pwsh, jak je znázorněno na pravé straně okna terminálu.
Vyberte rozevírací seznam Spustit profil a pak vyberte Azure Cloud Shell (Bash).
Otevře se nové prostředí.
Přihlášení k Azure pomocí Azure CLI
V terminálu editoru Visual Studio Code spusťte následující příkaz pro přihlášení k Azure:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Pokud chcete tuto šablonu nasadit do Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure PowerShell, a přihlaste se ke stejnému účtu, který jste použili k aktivaci sandboxu.
V nabídce Terminál vyberte Nový terminál. Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Výchozí prostředí je obvykle pwsh, jak je znázorněno na pravé straně okna terminálu.
Vyberte rozevírací seznam Spustit profil a pak vyberte Azure Cloud Shell (PowerShell).
Otevře se nové prostředí.
Přihlášení k Azure přes Azure PowerShell
V terminálu editoru Visual Studio Code spusťte následující příkaz pro přihlášení k Azure:
Connect-AzAccount
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Vytvoření identity úlohy
Tip
V tomto modulu vytvoříte identitu úlohy, kterou bude váš pracovní postup používat. Modul Ověření pracovního postupu nasazení Azure pomocí identit úloh poskytuje podrobnější vysvětlení identit úloh, včetně toho, jak fungují, a také jejich vytváření, přiřazování rolí a jejich správě.
Pokud chcete vytvořit identitu úlohy, příkazy Azure CLI slouží jq
k analýze dat z výstupu JSON. Pokud nemáte jq
nainstalovaný, můžete pomocí bashe v Azure Cloud Shellu vytvořit identitu úlohy, skupinu prostředků a přiřazení role a připravit tajné kódy GitHubu.
Spuštěním následujícího kódu definujte proměnné pro uživatelské jméno GitHubu a název úložiště. Ujistěte se, že nahradíte
mygithubuser
uživatelské jméno GitHubu, které jste si poznamenali v předchozí lekci cvičení.githubOrganizationName='mygithubuser' githubRepositoryName='toy-website-workflow'
Spusťte následující kód, který vytvoří identitu úlohy a přidruží ji k úložišti GitHub:
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\"]}"
Spuštěním následujícího kódu definujte proměnné pro uživatelské jméno GitHubu a název úložiště. Ujistěte se, že nahradíte
mygithubuser
uživatelské jméno GitHubu, které jste si poznamenali v předchozí lekci cvičení.$githubOrganizationName = 'mygithubuser' $githubRepositoryName = 'toy-website-workflow'
Spusťte následující kód, který vytvoří identitu úlohy a přidruží ji k úložišti GitHub:
$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"
Vytvoření skupiny prostředků v Azure a udělení přístupu k identitě úloh
Pokud chcete vytvořit novou skupinu prostředků a udělit jí přístup k identitě úloh, spusťte tento příkaz Azure CLI v terminálu editoru Visual Studio Code:
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
Pokud chcete vytvořit skupinu prostředků a udělit jí přístup k identitě úlohy, spusťte tento příkaz Azure PowerShellu v terminálu editoru Visual Studio Code:
$resourceGroup = New-AzResourceGroup -Name ToyWebsite -Location westus3
New-AzADServicePrincipal -AppId $applicationRegistration.AppId
New-AzRoleAssignment `
-ApplicationId $($applicationRegistration.AppId) `
-RoleDefinitionName Contributor `
-Scope $resourceGroup.ResourceId
Příprava tajných kódů GitHubu
Spuštěním následujícího kódu zobrazte hodnoty, které potřebujete vytvořit jako tajné kódy GitHubu:
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)"
Vytvoření tajných kódů GitHubu
Vytvořili jste skupinu prostředků a identitu úlohy. Dále vytvořte v GitHub Actions nějaké tajné kódy, aby se váš pracovní postup mohl přihlásit pomocí identity úlohy.
V prohlížeči přejděte do úložiště GitHub.
Vyberte Nastavení>tajných kódů a proměnných>Akce.
Vyberte Nový tajný klíč úložiště.
Pojmenujte tajný AZURE_CLIENT_ID.
Do pole Hodnota vložte identifikátor GUID z prvního řádku výstupu terminálu. Nezahrnujte
AZURE_CLIENT_ID
do hodnoty dvojtečku ani mezery.Vyberte Add secret (Přidat tajný kód).
Opakujte proces a vytvořte tajné kódy pro AZURE_TENANT_ID a AZURE_SUBSCRIPTION_ID a zkopírujte hodnoty z odpovídajících polí ve výstupu terminálu.
Ověřte, že seznam tajných kódů teď zobrazuje všechny tři tajné kódy.