Dodawanie tożsamości zarządzanej do typu węzła klastra zarządzanego usługi Service Fabric
Każdy typ węzła w klastrze zarządzanym usługi Service Fabric jest wspierany przez zestaw skalowania maszyn wirtualnych. Aby umożliwić używanie tożsamości zarządzanych z typem węzła klastra zarządzanego, właściwość vmManagedIdentity
została dodana do definicji typów węzłów zawierających listę tożsamości, które mogą być używane: userAssignedIdentities
. Funkcje dubluje sposób używania tożsamości zarządzanych w klastrach niezarządzanych, takich jak używanie tożsamości zarządzanej z rozszerzeniem zestawu skalowania maszyn wirtualnych usługi Azure Key Vault.
Aby zapoznać się z przykładem wdrożenia klastra zarządzanego usługi Service Fabric, które korzysta z tożsamości zarządzanej w typie węzła, zobacz te szablony. W przykładzie istnieją dwa szablony:
Tożsamość zarządzana i przypisanie roli: szablon umożliwiający utworzenie tożsamości zarządzanej i przypisania roli w celu umożliwienia dostawcy usługi Service Fabric przypisywania tożsamości do zestawu skalowania maszyn wirtualnych klastra zarządzanego. Należy je wdrożyć tylko raz przed użyciem tożsamości zarządzanej w zasobie typu węzła.
Typ klastra zarządzanego i węzła: szablon dla klastra zarządzanego usługi Service Fabric i typu węzła przy użyciu tożsamości zarządzanej utworzonej wcześniej.
Uwaga
W tej funkcji są obecnie obsługiwane tylko tożsamości przypisane przez użytkownika.
Uwaga
Aby uzyskać informacje na temat konfiguracji aplikacji, zobacz Konfigurowanie i używanie aplikacji z tożsamością zarządzaną w klastrze zarządzanym usługi Service Fabric.
Wymagania wstępne
Przed rozpoczęciem:
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Jeśli planujesz używać programu PowerShell, zainstaluj interfejs wiersza polecenia platformy Azure, aby uruchomić polecenia referencyjne interfejsu wiersza polecenia.
1. Tworzenie tożsamości i przypisania roli
Tworzenie tożsamości zarządzanej przypisanej przez użytkownika
Tożsamość zarządzana przypisana przez użytkownika można zdefiniować w sekcji zasobów szablonu usługi Azure Resource Manager (ARM) na potrzeby tworzenia po wdrożeniu:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('userAssignedIdentityName')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
}
lub utworzony za pomocą programu PowerShell:
New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>
Dodawanie przypisania roli za pomocą dostawcy zasobów usługi Service Fabric
Dodaj przypisanie roli do tożsamości zarządzanej za pomocą aplikacji dostawcy zasobów usługi Service Fabric. To przypisanie umożliwia dostawcy zasobów usługi Service Fabric przypisanie tożsamości utworzonej w poprzednim kroku do zestawu skalowania maszyn wirtualnych klastra zarządzanego. Jest to jednorazowa akcja
Pobierz jednostkę usługi dla aplikacji dostawcy zasobów usługi Service Fabric:
Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Uwaga
Upewnij się, że jesteś w odpowiedniej subskrypcji, identyfikator podmiotu zabezpieczeń zmieni się, jeśli subskrypcja znajduje się w innej dzierżawie.
ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
ApplicationId : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
ObjectType : ServicePrincipal
DisplayName : Azure Service Fabric Resource Provider
Id : 00000000-0000-0000-0000-000000000000
Użyj identyfikatora poprzednich danych wyjściowych jako principalId i bellow identyfikator definicji roli jako roleDefinitionId, jeśli ma to zastosowanie w szablonie lub w poleceniu programu PowerShell:
Nazwa definicji roli | Identyfikator definicji roli |
---|---|
Operator tożsamości zarządzanej | f1a07417-d97a-45cb-824c-7a7467783830 |
To przypisanie roli można zdefiniować w szablonie sekcji zasobów przy użyciu identyfikatora podmiotu zabezpieczeń i identyfikatora definicji roli:
{
"type": "Microsoft.Authorization/roleAssignments",
"apiVersion": "2022-04-01",
"name": "[parameters('vmIdentityRoleNameGuid')]",
"scope": "[concat('Microsoft.ManagedIdentity/userAssignedIdentities', '/', parameters('userAssignedIdentityName'))]",
"dependsOn": [
"[concat('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
],
"properties": {
"roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', 'f1a07417-d97a-45cb-824c-7a7467783830')]",
"principalId": "<Service Fabric Resource Provider ID>"
}
}
Uwaga
vmIdentityRoleNameGuid powinien być prawidłowym identyfikatorem GUID. Jeśli ponownie wdrożysz ten sam szablon, w tym to przypisanie roli, upewnij się, że identyfikator GUID jest taki sam jak ten, który został pierwotnie użyty lub usuń ten zasób, ponieważ należy go utworzyć tylko raz.
lub utworzony za pomocą programu PowerShell przy użyciu identyfikatora podmiotu zabezpieczeń i nazwy definicji roli:
New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"
Wdrażanie tożsamości zarządzanej i przypisania roli.
Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby utworzyć tożsamość zarządzaną i dodać przypisanie roli:
New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose
2. Przypisywanie tożsamości do zasobu typu węzła
Dodawanie właściwości tożsamości zarządzanej do definicji typu węzła
Na koniec dodaj vmManagedIdentity
właściwości i userAssignedIdentities
do definicji typu węzła klastra zarządzanego z pełnym identyfikatorem zasobu tożsamości utworzonej w pierwszym kroku. Pamiętaj, aby użyć polecenia 2021-05-01 lub nowszego dla elementu apiVersion
.
{
"type": "Microsoft.ServiceFabric/managedClusters/nodeTypes",
"apiVersion": "2022-01-01",
"properties": {
"isPrimary": true,
"vmInstanceCount": 5,
"dataDiskSizeGB": 100,
"vmSize": "Standard_D2_v2",
"vmImagePublisher": "MicrosoftWindowsServer",
"vmImageOffer": "WindowsServer",
"vmImageSku": "2019-Datacenter",
"vmImageVersion": "latest",
"vmManagedIdentity": {
"userAssignedIdentities": [
"[parameters('userAssignedIdentityResourceId')]"
]
}
}
}
Wdrażanie zasobu typu węzła przypisania tożsamości
Uruchom polecenie cmdlet New-AzResourceGroupDeployment, aby wdrożyć szablon klastrów zarządzanych usługi Service Fabric, który przypisuje tożsamość zarządzaną do zasobu typu węzła.
New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose
Po wdrożeniu utworzona tożsamość zarządzana została dodana do zestawu skalowania maszyn wirtualnych wyznaczonego typu węzła i może być używana zgodnie z oczekiwaniami, podobnie jak w przypadku każdego klastra niezarządzanego.
Rozwiązywanie problemów
Niepowodzenie prawidłowego dodawania przypisania roli zostanie spełnione z powodu następującego błędu podczas wdrażania:
W takim przypadku upewnij się, że przypisanie roli zostało utworzone pomyślnie za pomocą roli "Operator tożsamości zarządzanej". Przypisanie roli można znaleźć w witrynie Azure Portal pod kontrolą dostępu do zasobu tożsamości zarządzanej, jak pokazano poniżej.