Ensure managed identities are configured
Description
Managed identities from Microsoft Entra ID allow function apps to securely access other Azure services without the need to provision or rotate any secrets.
Rationale
Using managed identities with function apps eliminates the need to store and manage credentials to access Azure resources.
Impact
Minor administrative overhead to configure and manage role assignments for managed identities.
Audit Procedure
Using Azure Portal
- Go to
App ServicesorFunction App. - Click the name of a function app.
- Under
Settings, clickIdentity. - Ensure that in the
System assignedpane, theStatusis set toOn, and anObject (principal) IDis displayed, or that in theUser assignedpane, a managed identity is listed. - Repeat steps 1-4 for each function app.
Using Azure CLI
Run the following command to list function apps:
az functionapp list
For each function app, run the following command to get the identity setting:
az functionapp show --resource-group <resource-group-name> --name <function-app-name> --query "identity"
Ensure that type is set to SystemAssigned, UserAssigned, or both.
Expected Result
The identity type should be set to SystemAssigned, UserAssigned, or both.
Remediation
Using Azure Portal
- Go to
App ServicesorFunction App. - Click the name of a function app.
- Under
Settings, clickIdentity. - To add a system assigned managed identity:
- In the
System assignedpane, underStatus, clickOn. - Click
Save. - Click
Yes.
- In the
- To add a user assigned managed identity:
- In the
User assignedpane, clickAdd. - Use the filter box to search for a managed identity.
- Select the identity.
- Click
Add.
- In the
- Repeat steps 1-5 for each function app requiring remediation.
Using Azure CLI
For each function app requiring remediation, run the following command to assign a system-assigned managed identity:
az functionapp identity assign --resource-group <resource-group-name> --name <function-app-name>
Using Azure PowerShell
For each function app requiring remediation, run the following command to assign a system-assigned managed identity:
Update-AzFunctionApp -ResourceGroupName <resource-group-name> -Name <function-app-name> -IdentityType SystemAssigned -Force
Default Value
Managed identities are disabled by default for function apps.
References
- https://learn.microsoft.com/en-us/security/benchmark/azure/mcsb-identity-management#im-1-use-centralized-identity-and-authentication-system
- https://learn.microsoft.com/en-us/azure/app-service/overview-managed-identity
- https://learn.microsoft.com/en-us/cli/azure/functionapp
- https://learn.microsoft.com/en-us/powershell/module/az.functions/update-azfunctionapp
Profile
Level 1 | Automated