Ensure end-to-end TLS encryption is enabled
Description
End-to-end (E2E) TLS encryption ensures that front-end to worker communication within App Service deployment slots is encrypted using TLS. Without this feature, while incoming HTTPS requests are encrypted to the front ends, the traffic from front ends to workers running the application workloads would travel unencrypted inside Azure's infrastructure.
Rationale
E2E TLS helps ensure full encryption of traffic between:
- Clients and front ends
- Front ends and worker processes hosting the application
Impact
Enabling end-to-end TLS encryption may introduce minimal latency and require additional configuration of certificates and HTTPS settings to ensure compatibility.
Audit Procedure
Using Azure Portal
- Go to
App Services. - Click the name of an app.
- Under
Deployment, clickDeployment slots. - Click the name of a deployment slot.
- Under
Settings, clickConfiguration. - In the
General settingspane, underPlatform settings, ensure thatEnable end-to-end TLS encryptionis set toOn. - 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 endToEndEncryptionEnabled is set to true.
Expected Result
The endToEndEncryptionEnabled property should be set to true.
Remediation
Using Azure Portal
- Go to
App Services. - Click the name of an app.
- Under
Deployment, clickDeployment slots. - Click the name of a deployment slot.
- Under
Settings, clickConfiguration. - In the
General settingspane, underPlatform settings, next toEnable end-to-end TLS encryption, click the radio button next toOn. - Click
Save. - Click
Continue. - Repeat steps 1-8 for each app and deployment slot requiring remediation.
Using Azure CLI
For each deployment slot requiring remediation, run the following command to enable end-to-end TLS encryption:
az resource update --resource-group <resource-group-name> --name <app-name>/slots/<deployment-slot-name> --resource-type "Microsoft.Web/sites" --set properties.endToEndEncryptionEnabled=true
Default Value
By default, end-to-end TLS encryption is disabled.
References
- https://learn.microsoft.com/en-us/azure/app-service/overview-tls#end-to-end-tls-encryption
- https://learn.microsoft.com/en-us/cli/azure/webapp
- https://learn.microsoft.com/en-us/cli/azure/resource
Profile
Level 1 | Automated