Ensure managed identities are configured
Description
Managed identities from Microsoft Entra ID allow App Service apps to securely access other Azure services without the need to provision or rotate any secrets.
Rationale
Using managed identities with App Service 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 Services. - Click the name of an 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 app.
Using Azure CLI
Run the following command to list web apps:
az webapp list
For each web app, run the following command:
az webapp identity show --resource-group <resource-group-name> --name <app-name> --query type
Ensure the command returns SystemAssigned, UserAssigned, or both.
Using Azure PowerShell
Run the following command to list web apps:
Get-AzWebApp
Run the following command to get the web app in a resource group with a given name:
Get-AzWebapp -ResourceGroupName <resource-group-name> -Name <app-name>
Run the following command to get the assigned identity type for a web app:
$webapp.Identity.Type
Ensure the command returns SystemAssigned, UserAssigned, or both.
Expected Result
The identity type should return SystemAssigned, UserAssigned, or both.
Remediation
Using Azure Portal
- Go to
App Services. - Click the name of an 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 app requiring remediation.
Using Azure CLI
For each web app requiring remediation, run the following command to assign a managed identity:
az webapp identity assign --resource-group <resource-group-name> --name <app-name>
Using Azure PowerShell
For each web app requiring remediation, run the following command to assign a managed identity:
Set-AzWebApp -AssignIdentity $True -ResourceGroupName <resource-group-name> -Name <app-name>
Default Value
Managed identities are disabled by default for App Service 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/webapp
- https://learn.microsoft.com/en-us/powershell/module/az.websites/get-azwebapp
- https://learn.microsoft.com/en-us/powershell/module/az.websites/set-azwebapp
Profile
Level 1 | Automated