Creare un'entità servizio di Azure con l'interfaccia della riga di comando Azure
Gli strumenti automatizzati che usano i servizi di Azure devono avere sempre autorizzazioni limitate per garantire che le risorse di Azure siano sicure. Pertanto, invece di avere applicazioni che accedono come utente con privilegi completi, Azure offre entità servizio. Un'entità servizio di Azure è un'identità creata per l'uso con applicazioni, servizi ospitati e strumenti automatizzati. Questa identità viene usata per accedere alle risorse.
In questa esercitazione apprenderai a:
- Creare un'entità servizio
- Accedere con un'entità servizio e una password
- Accedere con un'entità servizio e un certificato
- Gestire i ruoli delle entità servizio
- Creare una risorsa di Azure usando un'entità servizio
- Reimpostare le credenziali dell'entità servizio
Prerequisiti
- Per creare un'entità servizio, in una sottoscrizione è necessario avere
User Access Administrator
oRole Based Access Control Administrator
autorizzazioni o versioni successive. Per un elenco dei ruoli disponibili per il controllo degli accessi in base al ruolo di Azure, vedere Ruoli predefiniti di Azure.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Creare un'entità servizio
Usare il comando az ad sp create-for-rbac dell'interfaccia della riga di comando di Azure per creare un'entità servizio. Questo esempio non specifica un --name
parametro, quindi viene creato automaticamente un nome contenente un timestamp.
az ad sp create-for-rbac
Console di output:
{
"appId": "myAppId",
"displayName": "myServicePrincipalName",
"password": "myServicePrincipalPassword",
"tenant": "myTentantId"
}
Se non si accettano convenzioni di denominazione delle risorse e si prevede di creare un ruolo e un ambito per la nuova entità servizio in un secondo momento, il az ad sp create-for-rbac
comando senza parametri è una soluzione accettabile. Tuttavia, senza un ruolo e un ambito, la nuova entità servizio non ha accesso alle risorse. Esiste solo.
Quando si crea un'entità servizio senza parametri, completare anche questi passaggi:
- Registrare la password assegnata dal sistema perché non è possibile recuperarla di nuovo. Se si perde la password, reimpostarla usando az ad sp credential reset, come illustrato in Reimpostare le credenziali dell'entità servizio.
- Impostare l'assegnazione di ruolo per la nuova entità servizio usando az role assignment create come illustrato in Gestire i ruoli dell'entità servizio.
Nota
Se l'account non dispone dell'autorizzazione per creare un'entità servizio, az ad sp create-for-rbac
restituisce un messaggio di errore contenente "Privilegi insufficienti per completare l'operazione". Contattare l'amministratore di Microsoft Entra per creare un'entità servizio.
In una directory microsoft Entra ID in cui l'impostazione utente Users can register applications has been set to No, you must be a member of one of the following Microsoft Entra ID built-in roles (che hanno l'azione: microsoft.directory/applications/createAsOwner
o microsoft.directory/applications/create
):
- Sviluppatore di applicazioni
- Amministratore applicazione
- Amministratore di applicazioni cloud
- Amministratore globale
- Amministratore delle identità ibride
Per altre informazioni sulle impostazioni utente in Microsoft Entra ID, vedere Limitare chi può creare applicazioni.
Creare un'entità servizio con ruolo e ambito
Come procedura consigliata, assegnare sempre un'entità servizio specifica --role
e --scopes
quando si crea un'entità servizio. Seguire questa procedura:
Determinare il ruolo corretto.
Quando si determina il ruolo, usare sempre il principio dei privilegi minimi. Ad esempio, non concedere all'entità servizio le autorizzazioni per una sottoscrizione se l'entità
contributor
servizio deve accedere solo all'archiviazione di Azure all'interno di un gruppo di risorse. Prendere in considerazione un ruolo specializzato come collaboratore ai dati dei BLOB di archiviazione. Per un elenco completo dei ruoli disponibili nel controllo degli accessi in base al ruolo di Azure, vedere Ruoli predefiniti di Azure.Ottenere un valore per il parametro scopes.
Trovare e copiare l'ID risorsa della risorsa di Azure a cui deve accedere la nuova entità servizio. Queste informazioni si trovano in genere nella pagina Proprietà o endpoint della portale di Azure di ogni risorsa. Di seguito sono riportati esempi comuni
--scopes
, ma si basano sull'ID risorsa per un formato e un valore effettivi.Ambito Esempio Subscription /subscriptions/mySubscriptionID
Gruppo di risorse /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName
Macchina virtuale /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Compute/virtualMachines/myVMname
Archiviazione servizio file dell'account /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.Storage/storageAccounts/myStorageAccountName/fileServices/default
Data factory /subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName/providers/Microsoft.DataFactory/factories/myDataFactoryName
Per altri esempi di ambito, vedere Informazioni sull'ambito per il controllo degli accessi in base al ruolo di Azure.
Creare l'entità servizio.
In questo esempio viene creata una nuova entità servizio denominata myServicePrincipalName1 con autorizzazioni di lettura per tutte le risorse nel gruppo di risorse RG1.
# Bash script az ad sp create-for-rbac --name myServicePrincipalName1 \ --role reader \ --scopes /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRG1
Il
--scopes
parametro accetta un elenco delimitato da spazi di ambiti. In questo esempio viene creata una nuova entità servizio denominata myServicePrincipalName2 con autorizzazioni di lettura per tutte le risorse nel gruppo di risorse myRG1. Questa entità servizio ha anche le autorizzazioni di lettura per myVM che si trovano in 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
Se si decide di concedere troppe autorizzazioni o troppe autorizzazioni alla nuova entità servizio, modificare le autorizzazioni gestendo i ruoli dell'entità servizio.
Creare un'entità servizio usando le variabili
È anche possibile creare un'entità servizio usando le variabili:
# 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
Per un elenco completo delle proprietà dell'entità servizio, usare az ad sp list e vedere Ottenere un'entità servizio esistente.
Avviso
Quando si crea un'entità servizio di Azure usando il az ad sp create-for-rbac
comando , l'output include le credenziali che è necessario proteggere. Assicurarsi di non includere tali credenziali nel codice oppure archiviarle nel controllo del codice sorgente. In alternativa, è consigliabile usare le identità gestite, se disponibili, per evitare la necessità di usare le credenziali.
Passaggi successivi
Dopo aver appreso come creare un'entità servizio di Azure, procedere con il passaggio successivo per informazioni su come usare le entità servizio con l'autenticazione basata su password.