Share via


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:

  1. 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.

  2. 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.

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:

Azure Portal-implementatiefout met de client met de object-/toepassings-id van SFRP die geen machtiging heeft om identiteitsbeheeractiviteiten uit te voeren

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.

Eigenschappen van roltoewijzing voor Service Fabric-resourceprovider op de door de gebruiker toegewezen beheerde identiteit die wordt weergegeven in Azure Portal

Volgende stappen