Ajouter une identité managée à un type de nœud de cluster managé Service Fabric
Chaque type de nœud d’un cluster managé Service Fabric est adossé à un groupe de machines virtuelles identiques. Pour permettre l’utilisation des identités managées avec un type de nœud de cluster géré, une propriété vmManagedIdentity
a été ajoutée aux définitions de type de nœud contenant une liste d’identités qui peuvent être utilisées, userAssignedIdentities
. La fonctionnalité reflète la manière dont les identités managées peuvent être utilisées dans les clusters non gérés, par exemple l’utilisation d’une identité managée avec l’extension de groupe de machines virtuelles identiques Azure Key Vault.
Pour obtenir un exemple de déploiement de cluster managé par Service Fabric qui utilise l’identité managée sur un type de nœud, consultez ces modèles. L’exemple comprend deux modèles :
Identité managée et attribution de rôle : modèle permettant de créer l’identité managée et l’attribution de rôle afin de permettre à Service Fabric RP d’attribuer l’identité au groupe de machines virtuelles identiques du cluster managé. Celui-ci ne doit être déployé qu’une seule fois avant l’utilisation de l’identité managée sur la ressource de type de nœud.
Cluster managé et type de nœud : modèle pour le cluster managé Service Fabric et les ressources de type de nœud qui utilise l’identité managée créée précédemment.
Notes
Seules les identités affectées par l’utilisateur sont actuellement prises en charge pour cette fonctionnalité.
Notes
Pour plus d’informations sur la configuration des applications, consultez Configurer et utiliser des applications avec identité managée sur un cluster managé Service Fabric.
Prérequis
Avant de commencer :
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Si vous prévoyez d’utiliser PowerShell, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.
1. Créer une identité et une attribution de rôle
Créer une identité managée attribuée par l’utilisateur
Une identité managée affectée par l’utilisateur peut être définie dans la section des ressources d’un modèle Azure Resource Manager (ARM) à des fins de création lors du déploiement :
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('userAssignedIdentityName')]",
"apiVersion": "2023-01-31",
"location": "[resourceGroup().location]"
}
ou créée via PowerShell :
New-AzResourceGroup -Name <managedIdentityRGName> -Location <location>
New-AzUserAssignedIdentity -ResourceGroupName <managedIdentityRGName> -Name <userAssignedIdentityName>
Ajouter une attribution de rôle au fournisseur de ressources Service Fabric
Ajoutez une attribution de rôle à l’identité managée avec l’application de fournisseur de ressources Service Fabric. Cette attribution permet au fournisseur de ressources Service Fabric d’attribuer l’identité créée à l’étape précédente au groupe de machines virtuelles identiques du cluster managé. Il s’agit d’une action unique.
Obtenir le principal du service pour une application de fournisseur de ressources Service Fabric :
Login-AzAccount
Select-AzSubscription -SubscriptionId <SubId>
Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
Notes
Vérifiez que vous êtes bien dans le bon abonnement. L’ID du principal ne sera pas le même si l’abonnement se trouve dans un autre locataire.
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
Utilisez l’Id de la sortie précédente comme principalId et l’ID de définition de rôle ci-dessous comme roleDefinitionId, le cas échéant, dans le modèle ou la commande PowerShell :
Nom de la définition de rôle | ID de définition de rôle |
---|---|
Opérateur d’identités gérées | f1a07417-d97a-45cb-824c-7a7467783830 |
Cette attribution de rôle peut être définie dans le modèle de la section Ressources à l’aide de l’ID de principal et de l’ID de définition de rôle :
{
"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>"
}
}
Notes
vmIdentityRoleNameGuid doit être un GUID valide. Si vous redéployez le même modèle, dont cette attribution de rôle, vérifiez que le GUID est identique à celui utilisé à l’origine, ou supprimez cette ressource car elle doit être créée une seule fois.
ou créée par le biais de PowerShell à l’aide de l’ID de principal et du nom de définition de rôle :
New-AzRoleAssignment -PrincipalId "<Service Fabric Resource Provider ID>" -RoleDefinitionName "Managed Identity Operator" -Scope "/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>"
Déployer l’identité managée et l’attribution de rôle
Exécutez l’applet de commande New-AzResourceGroupDeployment pour créer l’identité managée et ajouter l’attribution de rôle :
New-AzResourceGroupDeployment -ResourceGroupName <managedIdentityRGName> -TemplateFile ".\MangedIdentityAndSfrpRoleAssignment.json" -TemplateParameterFile ".\MangedIdentityAndSfrpRoleAssignment.Parameters.json" -Verbose
2. Attribuer une identité à la ressource de type de nœud
Ajouter les propriétés d’identité managée à la définition de type de nœud
Enfin, ajoutez les propriétés vmManagedIdentity
et userAssignedIdentities
à la définition du type de nœud du cluster managé avec l’ID de ressource complet de l’identité créée à la première étape. Veillez à utiliser 2021-05-01 ou une version ultérieure pour 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')]"
]
}
}
}
Déployer la ressource de type de nœud en lui attribuant une identité
Exécutez l’applet de commande New-AzResourceGroupDeployment pour déployer le modèle de cluster managé Service Fabric qui attribue l’identité managée à la ressource de type de nœud.
New-AzResourceGroupDeployment -ResourceGroupName <sfmcRGName> -TemplateFile ".\SfmcVmMangedIdentity.json" -TemplateParameterFile ".\SfmcVmMangedIdentity.Parameters.json" -Verbose
Après le déploiement, l’identité managée créée a été ajoutée au groupe de machines virtuelles identiques du type de nœud désigné et peut être utilisée comme prévu, comme dans n’importe quel cluster non géré.
Dépannage
Si vous n’ajoutez pas correctement une attribution de rôle, l’erreur suivante se produira lors du déploiement :
Dans ce cas, vérifiez que l’attribution de rôle a bien été effectuée pour le rôle « Opérateur d’identité managée ». L’attribution de rôle se trouve sur le portail Azure sous le contrôle d’accès de la ressource d’identité managée, comme indiqué ci-dessous.