Hinzufügen einer verwalteten Identität zu einem verwalteten Service Fabric-Clusterknotentyp
Jeder Knotentyp in einem verwalteten Service Fabric-Cluster wird von einer VM-Skalierungsgruppe unterstützt. Damit verwaltete Identitäten mit einem verwalteten Clusterknotentyp verwendet werden können, wurde den Knotentypdefinitionen die vmManagedIdentity
-Eigenschaft hinzugefügt. Diese enthält eine Liste der Identitäten, die verwendet werden können (userAssignedIdentities
). Die Funktionalität ähnelt der, mit der verwaltete Identitäten in nicht verwalteten Clustern verwendet werden und die Sie z. B. bei der Verwendung einer verwalteten Identität mit der Azure Key Vault-Erweiterung für VM-Skalierungsgruppen finden.
Ein Beispiel für eine Bereitstellung eines verwalteten Service Fabric-Clusters, der eine verwaltete Identität für einen Knotentyp nutzt, finden Sie in diesen Vorlagen. Das Beispiel umfasst zwei Vorlagen:
Verwaltete Identität und Rollenzuweisung: Vorlage zum Erstellen der verwalteten Identität und der Rollenzuweisung, um Service Fabric RP die Zuweisung der Identität zur VM-Skalierungsgruppe des verwalteten Clusters zu ermöglichen. Diese sollte nur einmal bereitgestellt werden, bevor die verwaltete Identität für die Knotentypressource verwendet wird.
Verwalteter Cluster und Knotentyp: Vorlage für den verwalteten Service Fabric-Cluster und die Knotentypenressourcen, die die zuvor erstellte verwaltete Identität nutzen
Hinweis
Für dieses Feature werden derzeit nur vom Benutzer zugewiesene Identitäten unterstützt.
Hinweis
Weitere Informationen zur Anwendungskonfiguration finden Sie unter Konfigurieren und Verwenden von Anwendungen mit einer verwalteten Identität auf einem verwalteten Service Fabric-Cluster.
Voraussetzungen
Vorbereitungen
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Wenn Sie PowerShell verwenden möchten, installieren Sie die Azure-Befehlszeilenschnittstelle, um CLI-Verweisbefehle auszuführen.
1. Erstellen einer Identität und Rollenzuweisung
Erstellen einer benutzerseitig zugewiesenen verwalteten Identität
Eine vom Benutzer zugewiesene verwaltete Identität kann im Abschnitt „resources“ einer Azure Resource Manager-Vorlage (ARM) für die Erstellung bei der Bereitstellung definiert werden:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('userAssignedIdentityName')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
}
Sie kann auch mit PowerShell erstellt werden:
New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>
Hinzufügen einer Rollenzuweisung mit dem Service Fabric-Ressourcenanbieter
Fügen Sie der verwalteten Identität mit der Service Fabric-Ressourcenanbieteranwendung eine Rollenzuweisung hinzu. Diese Zuweisung ermöglicht dem Service Fabric-Ressourcenanbieter das Zuweisen der im vorherigen Schritt erstellten Identität zur VM-Skalierungsgruppe des verwalteten Clusters. Dies ist eine einmalige Aktion.
Abrufen des Dienstprinzipals für eine Service Fabric-Ressourcenanbieteranwendung:
Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Hinweis
Stellen Sie sicher, dass Sie sich im richtigen Abonnement befinden. Die Prinzipal-ID ändert sich, wenn sich das Abonnement in einem anderen Mandanten befindet.
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
Verwenden Sie die ID der vorherigen Ausgabe als principalId und ggf. die Rollendefinitions-ID unten als roleDefinitionId für die Vorlage oder den PowerShell-Befehl:
Name der Rollendefinition | Rollendefinitions-ID |
---|---|
Operator für verwaltete Identität | f1a07417-d97a-45cb-824c-7a7467783830 |
Diese Rollenzuweisung kann im Abschnitt „resources“ der Vorlage mithilfe der Prinzipal-ID und der Rollendefinitions-ID definiert werden:
{
"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>"
}
}
Hinweis
vmIdentityRoleNameGuid muss eine gültige GUID sein. Wenn Sie die gleiche Vorlage einschließlich dieser Rollenzuweisung erneut bereitstellen, stellen Sie sicher, dass die GUID mit der ursprünglich verwendeten identisch ist, oder entfernen Sie diese Ressource, da sie nur einmal erstellt werden muss.
Sie kann auch mithilfe der Prinzipal-ID und des Rollendefinitionsnamens über PowerShell erstellt werden:
New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"
Bereitstellen der verwalteten Identität und der Rollenzuweisung
Führen Sie das Cmdlet „New-AzResourceGroupDeployment“ aus, um die verwaltete Identität zu erstellen und die Rollenzuweisung hinzuzufügen:
New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose
2. Zuweisen der Identität zur Knotentypressource
Hinzufügen von Eigenschaften der verwalteten Identität zur Knotentypdefinition
Fügen Sie abschließend die Eigenschaften vmManagedIdentity
und userAssignedIdentities
zur Knotentypdefinition des verwalteten Clusters mit der vollständigen Ressourcen-ID der Identität hinzu, die im ersten Schritt erstellt wurde. Stellen Sie sicher, dass Sie als apiVersion
2021-05-01 oder höher verwenden.
{
"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')]"
]
}
}
}
Bereitstellen der Knotentypressource, die die Identität zu weist
Führen Sie das Cmdlet „New-AzResourceGroupDeployment“ aus, um die Vorlage für den verwalteten Service Fabric-Cluster bereitzustellen, mit der die verwaltete Identität der Knotentypressource zugewiesen wird.
New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose
Nach der Bereitstellung wurde die erstellte verwaltete Identität der VM-Skalierungsgruppe des angegebenen Knotentyps hinzugefügt und kann erwartungsgemäß wie in einem nicht verwalteten Cluster verwendet werden.
Problembehandlung
Wenn eine Rollenzuweisung nicht ordnungsgemäß ausgeführt werden kann, tritt bei der Bereitstellung der folgende Fehler auf:
Stellen Sie in diesem Fall sicher, dass die Rollenzuweisung mit der Rolle „Operator für verwaltete Identität“ erfolgreich erstellt wurde. Die Rollenzuweisung finden Sie im Azure-Portal in der Zugriffssteuerung für die Ressource der verwalteten Identität, wie nachfolgend gezeigt: