La configurazione dell'identità gestita per le funzioni di Azure comporta l'utilizzo dell'identità gestita del sistema o dell'identità gestita dell'utente. Ecco come è possibile impostare entrambi i tipi:
sistema abilitante assegnato Identità gestita
1. Passa al portale di Azure: vai all'app Funzione Azure nel portale Azure.
2. Selezionare l'opzione Identity: nel menu a sinistra, selezionare Impostazioni e quindi fare clic su Identity.
3. Abilita il sistema assegnato Identità: nella scheda Assegnata del sistema, attivare lo stato su On e fare clic su Salva. Questo crea un'identità gestita con lo stesso nome dell'app di funzione.
4. Assegna autorizzazioni: vai alla risorsa (ad es. Azure Storage o Database SQL) si desidera accedere alla tua funzione. Assegna i ruoli appropriati all'identità gestita andando a Access Control (IAM), quindi assegnazioni di ruolo e aggiungendo l'identità gestita ai ruoli richiesti [1] [3] [7].
Abilitazione dell'utente assegnato Identità gestita
1. Creare un'identità assegnata dall'utente: in primo luogo, crea una risorsa di identità gestita assegnata dall'utente in Azure. Questa identità può essere utilizzata su più risorse.
2. Assegna all'app Funzione: nel portale di Azure, vai alle impostazioni di identità dell'app della funzione. Passa alla scheda Assegnata dall'utente e fai clic su Aggiungi. Cerca e seleziona l'identità assegnata dall'utente che hai creato [1] [6].
3. Configurare le impostazioni dell'app: per alcuni servizi come il Vault Key, potrebbe essere necessario impostare ulteriori proprietà (ad esempio, `` keyvaultreferenceity`) tramite chiamate API REST, poiché queste impostazioni non sono disponibili nell'interfaccia utente [1].
4. Assegnare autorizzazioni: simile alle identità assegnate al sistema, assegnare i ruoli necessari all'identità assegnata dall'utente per le risorse target [6].
utilizzando l'identità gestita nel codice
Quando si utilizzano identità gestite, le funzioni di Azure possono sfruttare librerie come `Azure.Identity` per autenticarsi con i servizi di Azure senza gestire direttamente i segreti. Ad esempio, è possibile utilizzare `DefaultAzureCredential` per connettersi a Azure Storage o SQL Database [5] [9].
Vantaggi delle identità gestite
- Sicurezza: evita la necessità di archiviare i segreti nei file di codice o di configurazione.
- Flessibilità: consente una facile gestione delle autorizzazioni di accesso tramite Azure RBAC.
-Scalabilità: supporta identità sia assegnate al sistema che assegnate agli utenti per diversi scenari [4] [6].
Citazioni:
[1] https://www.red-gate.com/simple-lalk/cloud/azure/azure-function-and-user-assiged-managed-identities/
[2] https://codebankblog.wordpress.com/2020/06/27/azure-function-with-managed-identity-and-azure-sql-db
[3] https://kumarashwinhubert.com/secure-your-azure-functions-use-managed-identity-for-azurewebjobsstorage
[4] https://docs.azure.cn/en-us/azure-functions/functions-identy-fonnection--connections-dutorial
[5] https://www.linkedin.com/pulse/how-use-Managed-Identities-app-service-Azure-Aali-Khan-
[6] https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity
[7] https://docs.azure.cn/en-us/azure-functions/functions-identity-access-azure-sql-with-managed-identy
[8] https://learn.microsoft.com/en-us/azure/azure-functions/dureble/dureble-functions-configure-managed-identy
[9] https://www.transparity.com/app-innovation/azure-functions-with-managed-identity-storage-access/