Een beheerde identiteit toevoegen aan een door Service Fabric beheerd clusterknooppunttype
Elk knooppunttype in een beheerd Service Fabric-cluster wordt ondersteund door een virtuele-machineschaalset. Als u wilt toestaan dat beheerde identiteiten worden gebruikt met een beheerd clusterknooppunttype, is een eigenschap vmManagedIdentity
toegevoegd aan knooppunttypedefinities met een lijst met identiteiten die kunnen worden gebruikt, userAssignedIdentities
. Functionaliteit weerspiegelt hoe beheerde identiteiten kunnen worden gebruikt in niet-beheerde clusters, zoals het gebruik van een beheerde identiteit met de virtuele-machineschaalsetextensie van Azure Key Vault.
Zie deze sjablonen voor een voorbeeld van een door Service Fabric beheerde clusterimplementatie die gebruikmaakt van beheerde identiteit op een knooppunttype. Het voorbeeld heeft twee sjablonen:
Beheerde identiteit en roltoewijzing: sjabloon voor het maken van de beheerde identiteit en de roltoewijzing zodat Service Fabric RP de identiteit kan toewijzen aan de virtuele-machineschaalset van het beheerde cluster. Dit mag slechts eenmaal worden geïmplementeerd voordat u de beheerde identiteit op de resource van het knooppunttype gebruikt.
Beheerd cluster en knooppunttype: Sjabloon voor de beheerde cluster- en knooppuntresources van Service Fabric met behulp van de beheerde identiteit die u eerder hebt gemaakt.
Notitie
Alleen door de gebruiker toegewezen identiteiten worden momenteel ondersteund voor deze functie.
Notitie
Zie Toepassingen configureren en gebruiken met beheerde identiteit in een beheerd Service Fabric-cluster voor toepassingsconfiguratie.
Vereisten
Voordat u begint:
- Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
- Als u Van plan bent PowerShell te gebruiken, installeert u de Azure CLI om CLI-referentieopdrachten uit te voeren.
1. Identiteit en roltoewijzing maken
Een door de gebruiker toegewezen beheerde identiteit maken
Een door de gebruiker toegewezen beheerde identiteit kan worden gedefinieerd in de sectie Resources van een ARM-sjabloon (Azure Resource Manager) voor het maken bij de implementatie:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('userAssignedIdentityName')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
}
of gemaakt via PowerShell:
New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>
Een roltoewijzing toevoegen met Service Fabric-resourceprovider
Voeg een roltoewijzing toe aan de beheerde identiteit met de Service Fabric Resource Provider-toepassing. Met deze toewijzing kan Service Fabric Resource Provider de identiteit, die in de vorige stap is gemaakt, toewijzen aan de virtuele-machineschaalset van het beheerde cluster. Dit is een eenmalige actie
Service-principal ophalen voor de Service Fabric Resource Provider-toepassing:
Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Notitie
Zorg ervoor dat u zich in het juiste abonnement bevindt. De principal-id wordt gewijzigd als het abonnement zich in een andere tenant bevindt.
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
Gebruik de id van de vorige uitvoer als principalId en de roldefinitie-id als roleDefinitionId , indien van toepassing op de sjabloon- of PowerShell-opdracht:
Naam van roldefinitie | Roldefinitie-id |
---|---|
Operator voor beheerde identiteit | f1a07417-d97a-45cb-824c-7a7467783830 |
Deze roltoewijzing kan worden gedefinieerd in de sectiesjabloon resources met behulp van de principal-id en roldefinitie-id:
{
"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>"
}
}
Notitie
vmIdentityRoleNameGuid moet een geldige GUID zijn. Als u dezelfde sjabloon met deze roltoewijzing opnieuw implementeert, moet u ervoor zorgen dat de GUID hetzelfde is als de sjabloon die oorspronkelijk is gebruikt of deze resource verwijdert, omdat deze slechts eenmaal moet worden gemaakt.
of gemaakt via PowerShell met behulp van de principal-id en de naam van de roldefinitie:
New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"
Implementeer beheerde identiteit en roltoewijzing.
Voer de cmdlet New-AzResourceGroupDeployment uit om de beheerde identiteit te maken en voeg de roltoewijzing toe:
New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose
2. Identiteit toewijzen aan de resource van het knooppunttype
Eigenschappen van beheerde identiteit toevoegen aan definitie van knooppunttype
Voeg ten slotte de vmManagedIdentity
en userAssignedIdentities
eigenschappen toe aan de definitie van het knooppunttype van het beheerde cluster met de volledige resource-id van de identiteit die in de eerste stap is gemaakt. Zorg ervoor dat u 2021-05-01 of hoger gebruikt voor de 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')]"
]
}
}
}
De resource van het knooppunttype implementeren die de identiteit toewijst
Voer de cmdlet New-AzResourceGroupDeployment uit om de sjabloon voor beheerde Service Fabric-clusters te implementeren waarmee de beheerde identiteit wordt toegewezen aan de resource van het knooppunttype.
New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose
Na de implementatie is de gemaakte beheerde identiteit toegevoegd aan de virtuele-machineschaalset van het toegewezen knooppunttype en kan deze worden gebruikt zoals verwacht, net als in een niet-beheerd cluster.
Probleemoplossing
Als u een roltoewijzing niet goed toevoegt, wordt aan de volgende fout bij de implementatie voldaan:
In dit geval moet u ervoor zorgen dat de roltoewijzing is gemaakt met de rol 'Operator voor beheerde identiteit'. De roltoewijzing vindt u in Azure Portal onder toegangsbeheer van de beheerde identiteitsresource, zoals hieronder wordt weergegeven.