Créer un principal du service Azure avec Azure CLI
Les outils automatisés qui utilisent les services Azure doivent toujours disposer d’autorisations restreintes pour garantir la sécurité des ressources Azure. Par conséquent, au lieu de permettre aux applications de se connecter en tant qu’utilisateur pleinement privilégié, Azure propose des principaux de service. Un principal de service Azure est une identité créée pour être utilisée avec des applications, des services hébergés et des outils automatisés. Cette identité est utilisée pour accéder aux ressources.
Dans ce tutoriel, vous allez apprendre à :
- Créer un principal du service
- Connectez-vous à l'aide d'un principal de service et d'un mot de passe
- Connectez-vous à l’aide d’un principal de service et d’un certificat
- Gérer les rôles du principal de service
- Créer une ressource Azure à l'aide d'un principal de service
- Réinitialiser les informations d’identification du principal de service
Prérequis
- Dans un abonnement, vous devez disposer d'autorisations
User Access Administrator
ouRole Based Access Control Administrator
, ou supérieures, pour créer un principal de service. Pour obtenir la liste des rôles disponibles pour le contrôle d’accès en fonction du rôle Azure (Azure RBAC), consultez Rôles intégrés Azure.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Créer un principal du service
Utilisez la commande de référence az ad sp créer-pour-rbac Azure CLI pour créer un principal de service. Cet exemple ne spécifie pas de paramètre --name
, donc un nom contenant un horodatage est automatiquement créé.
az ad sp create-for-rbac
Console de sortie :
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Si vous n’adhérez pas aux conventions de dénomination des ressources et envisagez de créer ultérieurement un rôle et une portée pour votre nouveau principal de service, la commande az ad sp create-for-rbac
sans paramètres est une solution acceptable. Cependant, sans rôle ni portée, le nouveau principal de service n’a pas accès aux ressources. Cela existe simplement.
Lorsque vous créez un principal de service sans paramètres, procédez également comme suit :
- Enregistrez votre mot de passe attribué par le système, car vous ne pourrez plus le récupérer. Si vous perdez le mot de passe, réinitialisez-le à l’aide de réinitialisation des informations d'identification az ad sp comme expliqué dans Réinitialiser les informations d’identification du principal du service.
- Définissez l’attribution de rôle pour votre nouveau principal de service à l’aide de az attribution de rôle créer comme expliqué dans Gérer les rôles de principal de service.
Remarque
Si votre compte n’a pas l’autorisation de créer un principal de service, az ad sp create-for-rbac
retourne un message d’erreur contenant « Privilèges insuffisants pour effectuer l’opération ». Contactez votre administrateur Microsoft Entra pour créer un principal de service.
Dans un annuaire Microsoft Entra ID où le paramètre utilisateur Les utilisateurs peut inscrire des applications a été défini sur Non, vous devez être membre de l’un des rôles intégrés Microsoft Entra ID suivants (qui ont l’action : microsoft.directory/applications/createAsOwner
ou microsoft.directory/applications/create
) :
- Développeur d’applications
- Administrateur d’application
- Administrateur d’application cloud
- Administrateur général
- Administrateur d’identité hybride
Pour plus d’informations sur les paramètres utilisateur dans Microsoft Entra ID, consultez Restreindre qui peut créer des applications.
Créer un principal de service avec un rôle et une portée
Il est recommandé d'attribuer toujours un identifiant spécifique --role
et --scopes
lorsque vous créez un principal de service. Suivez ces étapes :
Déterminez le rôle correct.
Lors de la détermination du rôle, utilisez toujours le principe du moindre privilège. Par exemple, n’accordez pas à votre principal de service les autorisations
contributor
sur un abonnement si le principal de service doit uniquement accéder au stockage Azure au sein d’un groupe de ressources. Envisagez un rôle spécialisé tel que contributeur de données d'objets de stockage. Pour obtenir la liste complète des rôles disponibles dans Azure RBAC, consultez Rôles intégrés Azure.Obtenez une valeur pour le paramètre scopes.
Recherchez et copiez l’ID de ressource de la ressource Azure à laquelle le nouveau principal de service doit accéder. Ces informations se trouvent généralement dans la page Propriétés ou Points de terminaison du portail Azure de chaque ressource. Voici des exemples
--scopes
courants, mais comptez sur votre ID de ressource pour un format et une valeur réels.Portée Exemple Abonnement /subscriptions/mySubscriptionID
Resource group /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Machine virtuelle /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Service de fichiers de compte de stockage /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Fabrique de données /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Pour plus d’exemples de portée, consultez Comprendre la portée d’Azure RBAC.
Créez le principal de service.
Dans cet exemple, un nouveau principal de service nommé myServicePrincipalName1 est créé avec des autorisations de lecteur sur toutes les ressources du groupe de ressources RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Le paramètre
--scopes
accepte une liste de portées délimitées par des espaces. Dans cet exemple, un nouveau principal de service nommé myServicePrincipalName2 est créé avec des autorisations de lecteur sur toutes les ressources du groupe de ressources myRG1. Ce principal de service reçoit également des autorisations de lecteur sur myVM située dans myRG2.# Bash script az ad sp create-for-rbac --name myServicePrincipalName2 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG2/providers/Microsoft.Compute/virtualMachines/myVM
Si vous décidez que vous avez accordé trop peu ou trop d'autorisations à votre nouveau principal de service, modifiez les autorisations en gérant les rôles de principal de service.
Créer un principal de service à l'aide de variables
Vous pouvez également créer un principal de service à l'aide de variables :
# Bash script
let "randomIdentifier=$RANDOM*$RANDOM"
servicePrincipalName="msdocs-sp-$randomIdentifier"
roleName="azureRoleName"
subscriptionID=$(az account show --query id --output tsv)
# Verify the ID of the active subscription
echo "Using subscription ID $subscriptionID"
resourceGroup="myResourceGroupName"
echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup"
az ad sp create-for-rbac --name $servicePrincipalName \
--role $roleName \
--scopes /subscriptions/$subscriptionID/resourceGroups/$resourceGroup
Pour obtenir la liste complète des propriétés du principal de service, utilisez az ad sp liste et consultez Obtenir un principal de service existant.
Avertissement
Lorsque vous créez un principal de service Azure avec la commande az ad sp create-for-rbac
, la sortie contient les informations d’identification que vous devez protéger. Veillez à ne pas inclure ces informations d’identification dans votre code ou vérifiez les informations d’identification dans votre contrôle de code source. Vous pouvez aussi utiliser des identités managées, si elles sont disponibles, pour éviter d’avoir à utiliser les informations d’identification.
Étapes suivantes
Maintenant que vous avez appris à créer un principal de service Azure, passez à l’étape suivante pour savoir comment utiliser les principaux de service avec l’authentification par mot de passe.