| name | cis-azure-compute-2.2.12 |
| description | Ensure managed identities are configured |
| category | cis-azure-compute |
| version | 2.0.0 |
| author | cyberstrike-official |
| tags | ["cis","azure","app-service","deployment-slots","managed-identity","entra-id","credential-management"] |
| cis_id | 2.2.12 |
| cis_benchmark | CIS Microsoft Azure Compute Services Benchmark v2.0.0 |
| tech_stack | ["azure"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
Ensure managed identities are configured
Description
Managed identities from Microsoft Entra ID allow App Service deployment slots to securely access other Azure services without the need to provision or rotate any secrets.
Rationale
Using managed identities with App Service deployment slots 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
Deployment, click Deployment slots.
- Click the name of a deployment slot.
- Under
Settings, click Identity.
- Ensure that in the
System assigned pane, the Status is set to On, and an Object (principal) ID is displayed, or that in the User assigned pane, a managed identity is listed.
- Repeat steps 1-6 for each app and deployment slot.
Using Azure CLI
Run the following command to list apps:
az webapp list
For each app, run the following command to list deployment slots:
az webapp deployment slot list --resource-group <resource-group-name> --name <app-name>
For each deployment slot, ensure that identity contains type set to SystemAssigned, UserAssigned, or both.
Using Azure PowerShell
Run the following command to list apps:
Get-AzWebApp
Run the following command to list deployment slots for an app:
Get-AzWebAppSlot -ResourceGroupName <resource-group-name> -Name <app-name>
Run the following command to get the deployment slot with a given name:
$slot = Get-AzWebAppSlot -ResourceGroupName <resource-group-name> -Name <app-name> -Slot <deployment-slot-name>
Run the following command to get the identity type setting for the deployment slot:
$slot.identity.Type
Ensure the command returns , , or both. Repeat for each app and deployment slot.