Skip to content

Commit dd927b8

Browse files
Merge pull request #271897 from madsd/cdskv
Access key vault privately
2 parents 48fa2ff + 27fffe4 commit dd927b8

File tree

1 file changed

+23
-24
lines changed

1 file changed

+23
-24
lines changed

articles/app-service/environment/how-to-custom-domain-suffix.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Configure a custom domain suffix for the Azure App Service Environm
44
author: seligj95
55
ms.topic: tutorial
66
ms.custom: devx-track-arm-template
7-
ms.date: 05/03/2023
7+
ms.date: 04/11/2023
88
ms.author: jordanselig
99
zone_pivot_groups: app-service-environment-portal-arm
1010
---
@@ -19,68 +19,67 @@ If you don't have an App Service Environment, see [How to Create an App Service
1919
> This article covers the features, benefits, and use cases of App Service Environment v3, which is used with App Service Isolated v2 plans.
2020
>
2121
22-
The custom domain suffix defines a root domain that can be used by the App Service Environment. In the public variation of Azure App Service, the default root domain for all web apps is *azurewebsites.net*. For ILB App Service Environments, the default root domain is *appserviceenvironment.net*. However, since an ILB App Service Environment is internal to a customer's virtual network, customers can use a root domain in addition to the default one that makes sense for use within a company's internal virtual network. For example, a hypothetical Contoso Corporation might use a default root domain of *internal.contoso.com* for apps that are intended to only be resolvable and accessible within Contoso's virtual network. An app in this virtual network could be reached by accessing *APP-NAME.internal.contoso.com*.
22+
The custom domain suffix defines a root domain used by the App Service Environment. In the public variation of Azure App Service, the default root domain for all web apps is *azurewebsites.net*. For ILB App Service Environments, the default root domain is *appserviceenvironment.net*. However, since an ILB App Service Environment is internal to a customer's virtual network, customers can use a root domain in addition to the default one that makes sense for use within a company's internal virtual network. For example, a hypothetical Contoso Corporation might use a default root domain of *internal.contoso.com* for apps that are intended to only be resolvable and accessible within Contoso's virtual network. An app in this virtual network could be reached by accessing *APP-NAME.internal.contoso.com*.
2323

2424
The custom domain suffix is for the App Service Environment. This feature is different from a custom domain binding on an App Service. For more information on custom domain bindings, see [Map an existing custom DNS name to Azure App Service](../app-service-web-tutorial-custom-domain.md).
2525

26-
If the certificate used for the custom domain suffix contains a Subject Alternate Name (SAN) entry for **.scm.CUSTOM-DOMAIN*, the scm site will then also be reachable from *APP-NAME.scm.CUSTOM-DOMAIN*. You can only access scm over custom domain using basic authentication. Single sign-on is only possible with the default root domain.
26+
If the certificate used for the custom domain suffix contains a Subject Alternate Name (SAN) entry for **.scm.CUSTOM-DOMAIN*, the scm site is also reachable from *APP-NAME.scm.CUSTOM-DOMAIN*. You can only access scm over custom domain using basic authentication. Single sign-on is only possible with the default root domain.
2727

2828
Unlike earlier versions, the FTPS endpoints for your App Services on your App Service Environment v3 can only be reached using the default domain suffix.
2929

30-
The connection to the custom domain suffix endpoint will need to use Server Name Indication (SNI) for TLS based connections.
30+
The connection to the custom domain suffix endpoint needs to use Server Name Indication (SNI) for TLS based connections.
3131

3232
## Prerequisites
3333

3434
- ILB variation of App Service Environment v3.
35-
- The Azure Key Vault that has the certificate must be publicly accessible to fetch the certificate.
3635
- Valid SSL/TLS certificate must be stored in an Azure Key Vault in .PFX format. For more information on using certificates with App Service, see [Add a TLS/SSL certificate in Azure App Service](../configure-ssl-certificate.md).
3736

3837
### Managed identity
3938

40-
A [managed identity](../../active-directory/managed-identities-azure-resources/overview.md) is used to authenticate against the Azure Key Vault where the SSL/TLS certificate is stored. If you don't currently have a managed identity associated with your App Service Environment, you'll need to configure one.
39+
A [managed identity](../../active-directory/managed-identities-azure-resources/overview.md) is used to authenticate against the Azure Key Vault where the SSL/TLS certificate is stored. If you don't currently have a managed identity associated with your App Service Environment, you need to configure one.
4140

42-
You can use either a system assigned or user assigned managed identity. To create a user assigned managed identity, see [manage user-assigned managed identities](../../active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities.md). If you'd like to use a system assigned managed identity and don't already have one assigned to your App Service Environment, the Custom domain suffix portal experience will guide you through the creation process. Alternatively, you can go to the **Identity** page for your App Service Environment and configure and assign your managed identities there.
41+
You can use either a system assigned or user assigned managed identity. To create a user assigned managed identity, see [manage user-assigned managed identities](../../active-directory/managed-identities-azure-resources/how-manage-user-assigned-managed-identities.md). If you'd like to use a system assigned managed identity and don't already have one assigned to your App Service Environment, the Custom domain suffix portal experience guides you through the creation process. Alternatively, you can go to the **Identity** page for your App Service Environment and configure and assign your managed identities there.
4342

4443
To enable a system assigned managed identity, set the Status to On.
4544

4645
:::image type="content" source="./media/custom-domain-suffix/ase-system-assigned-managed-identity.png" alt-text="Screenshot of a sample system assigned managed identity for App Service Environment.":::
4746

48-
To assign a user assigned managed identity, select "Add", and find the managed identity you want to use.
47+
To assign a user assigned managed identity, select "Add and find the managed identity you want to use.
4948

5049
:::image type="content" source="./media/custom-domain-suffix/ase-user-assigned-managed-identity.png" alt-text="Screenshot of a sample user assigned managed identity for App Service Environment.":::
5150

5251
Once you assign the managed identity to your App Service Environment, ensure the managed identity has sufficient permissions for the Azure Key Vault. You can either use a vault access policy or Azure role-based access control.
5352

54-
If you use a vault access policy, the managed identity will need at a minimum the "Get" secrets permission for the key vault.
53+
If you use a vault access policy, the managed identity needs at a minimum the "Get" secrets permission for the key vault.
5554

5655
:::image type="content" source="./media/custom-domain-suffix/key-vault-access-policy.png" alt-text="Screenshot of a sample key vault access policy for managed identity.":::
5756

58-
If you choose to use Azure role-based access control to manage access to your key vault, you'll need to give your managed identity at a minimum the "Key Vault Secrets User" role.
57+
If you choose to use Azure role-based access control to manage access to your key vault, you need to give your managed identity at a minimum the "Key Vault Secrets User" role.
5958

6059
:::image type="content" source="./media/custom-domain-suffix/key-vault-rbac.png" alt-text="Screenshot of a sample key vault role based access control for managed identity.":::
6160

6261
### Certificate
6362

64-
The certificate for custom domain suffix must be stored in an Azure Key Vault. The certificate must be uploaded in .PFX format. Certificates in .PEM format are not supported at this time. App Service Environment will use the managed identity you selected to get the certificate. The key vault must be publicly accessible, however you can lock down the key vault by restricting access to your App Service Environment's outbound IPs. You can find your App Service Environment's outbound IPs under "Default outbound addresses" on the **IP addresses** page for your App Service Environment. You'll need to add both IPs to your key vault's firewall rules. For more information on key vault network security and firewall rules, see [Configure Azure Key Vault firewalls and virtual networks](../../key-vault/general/network-security.md#key-vault-firewall-enabled-ipv4-addresses-and-ranges---static-ips). The key vault also must not have any [private endpoint connections](../../private-link/private-endpoint-overview.md).
63+
The certificate for custom domain suffix must be stored in an Azure Key Vault. The certificate must be uploaded in .PFX format. Certificates in .PEM format aren't supported at this time. App Service Environment uses the managed identity you selected to get the certificate. The key vault can be accessed publicly or through a [private endpoint](../../private-link/private-endpoint-overview.md) accessible from the subnet that the App Service Environment is deployed to. In the case of public access, you can secure your key vault to only accept traffic from the outbound IP addresses of the App Service Environment.
6564

6665
:::image type="content" source="./media/custom-domain-suffix/key-vault-networking.png" alt-text="Screenshot of a sample networking page for key vault to allow custom domain suffix feature.":::
6766

68-
Your certificate must be a wildcard certificate for the selected custom domain name. For example, *internal.contoso.com* would need a certificate covering **.internal.contoso.com*. If the certificate used by the custom domain suffix contains a Subject Alternate Name (SAN) entry for scm, for example **.scm.internal.contoso.com*, the scm site will also available using the custom domain suffix.
67+
Your certificate must be a wildcard certificate for the selected custom domain name. For example, *internal.contoso.com* would need a certificate covering **.internal.contoso.com*. If the certificate used by the custom domain suffix contains a Subject Alternate Name (SAN) entry for scm, for example **.scm.internal.contoso.com*, the scm site is also available using the custom domain suffix.
6968

70-
If you rotate your certificate in Azure Key Vault, the App Service Environment will pick up the change within 24 hours.
69+
If you rotate your certificate in Azure Key Vault, the App Service Environment picks up the change within 24 hours.
7170

7271
::: zone pivot="experience-azp"
7372

7473
## Use the Azure portal to configure custom domain suffix
7574

7675
1. From the [Azure portal](https://portal.azure.com), navigate to the **Custom domain suffix** page for your App Service Environment.
7776
1. Enter your custom domain name.
78-
1. Select the managed identity you've defined for your App Service Environment. You can use either a system assigned or user assigned managed identity. You'll be able to configure your managed identity if you haven't done so already directly from the custom domain suffix page using the "Add identity" option in the managed identity selection box.
77+
1. Select the managed identity you've defined for your App Service Environment. You can use either a system assigned or user assigned managed identity. You're able to configure your managed identity if you haven't done so already. You can configure the managed identity directly from the custom domain suffix page using the "Add identity" option in the managed identity selection box.
7978
:::image type="content" source="./media/custom-domain-suffix/managed-identity-selection.png" alt-text="Screenshot of a configuration pane to select and update the managed identity for the App Service Environment.":::
8079
1. Select the certificate for the custom domain suffix.
81-
1. Select "Save" at the top of the page. To see the latest configuration updates, you may need to refresh your browser page.
80+
1. Select "Save" at the top of the page. To see the latest configuration updates, refresh the page.
8281
:::image type="content" source="./media/custom-domain-suffix/custom-domain-suffix-portal-experience.png" alt-text="Screenshot of an overview of the custom domain suffix portal experience.":::
83-
1. It will take a few minutes for the custom domain suffix configuration to be set. Select "Refresh" at the top of the page to check the status. The banner will update with the latest progress. Once complete, the banner will state that the custom domain suffix is configured.
82+
1. It takes a few minutes for the custom domain suffix configuration to be set. Check the status by selecting "Refresh" at the top of the page. The banner updates with the latest progress. Once complete, the banner will state that the custom domain suffix is configured.
8483
:::image type="content" source="./media/custom-domain-suffix/custom-domain-suffix-success.png" alt-text="Screenshot of a sample custom domain suffix success page.":::
8584

8685
::: zone-end
@@ -89,9 +88,9 @@ If you rotate your certificate in Azure Key Vault, the App Service Environment w
8988

9089
## Use Azure Resource Manager to configure custom domain suffix
9190

92-
To configure a custom domain suffix for your App Service Environment using an Azure Resource Manager template, you'll need to include the below properties. Ensure that you've met the [prerequisites](#prerequisites) and that your managed identity and certificate are accessible and have the appropriate permissions for the Azure Key Vault.
91+
To configure a custom domain suffix for your App Service Environment using an Azure Resource Manager template, you need to include the below properties. Ensure that you've met the [prerequisites](#prerequisites) and that your managed identity and certificate are accessible and have the appropriate permissions for the Azure Key Vault.
9392

94-
You'll need to configure the managed identity and ensure it exists before assigning it in your template. For more information on managed identities, see the [managed identity overview](../../active-directory/managed-identities-azure-resources/overview.md).
93+
You need to configure the managed identity and ensure it exists before assigning it in your template. For more information on managed identities, see the [managed identity overview](../../active-directory/managed-identities-azure-resources/overview.md).
9594

9695
### Use a user assigned managed identity
9796

@@ -155,24 +154,24 @@ Alternatively, you can update your existing ILB App Service Environment using [A
155154
1. Enter your values for **dnsSuffix**, **certificateUrl**, and **keyVaultReferenceIdentity**.
156155
1. Navigate to the **identity** attribute and enter the details associated with the managed identity you're using.
157156
1. Select the **PUT** button that's located at the top to commit the change to the App Service Environment.
158-
1. The **provisioningState** under **customDnsSuffixConfiguration** will provide a status on the configuration update.
157+
1. The **provisioningState** under **customDnsSuffixConfiguration** provides a status on the configuration update.
159158

160159
::: zone-end
161160

162161
## DNS configuration
163162

164-
To access your apps in your App Service Environment using your custom domain suffix, you'll need to either configure your own DNS server or configure DNS in an Azure private DNS zone for your custom domain.
163+
To access your apps in your App Service Environment using your custom domain suffix, you need to either configure your own DNS server or configure DNS in an Azure private DNS zone for your custom domain.
165164

166165
If you want to use your own DNS server, add the following records:
167166

168167
1. Create a zone for your custom domain.
169168
1. Create an A record in that zone that points * to the inbound IP address used by your App Service Environment.
170169
1. Create an A record in that zone that points @ to the inbound IP address used by your App Service Environment.
171-
1. Optionally create a zone for scm sub-domain with a * A record that points to the inbound IP address used by your App Service Environment
170+
1. Optionally create a zone for scm subdomain with a * A record that points to the inbound IP address used by your App Service Environment
172171

173172
To configure DNS in Azure DNS private zones:
174173

175-
1. Create an Azure DNS private zone named for your custom domain. In the example below, the custom domain is *internal.contoso.com*.
174+
1. Create an Azure DNS private zone named for your custom domain. In the following example, the custom domain is *internal.contoso.com*.
176175
1. Create an A record in that zone that points * to the inbound IP address used by your App Service Environment.
177176
1. Create an A record in that zone that points @ to the inbound IP address used by your App Service Environment.
178177
:::image type="content" source="./media/custom-domain-suffix/custom-domain-suffix-dns-configuration.png" alt-text="Screenshot of a sample DNS configuration for your custom domain suffix.":::
@@ -190,11 +189,11 @@ After configuring the custom domain suffix and DNS for your App Service Environm
190189

191190
Apps on the ILB App Service Environment can be accessed securely over HTTPS by going to either the custom domain you configured or the default domain *appserviceenvironment.net* like in the previous image. The ability to access your apps using the default App Service Environment domain and your custom domain is a unique feature that is only supported on App Service Environment v3.
192191

193-
However, just like apps running on the public multi-tenant service, you can also configure custom host names for individual apps, and then configure unique SNI [TLS/SSL certificate bindings for individual apps](./overview-certificates.md#tls-settings).
192+
However, just like apps running on the public multitenant service, you can also configure custom host names for individual apps, and then configure unique SNI [TLS/SSL certificate bindings for individual apps](./overview-certificates.md#tls-settings).
194193

195194
## Troubleshooting
196195

197-
If your permissions or network settings for your managed identity, key vault, or App Service Environment aren't set appropriately, you won't be able to configure a custom domain suffix, and you'll receive an error similar to the example below. Review the [prerequisites](#prerequisites) to ensure you've set the needed permissions. You'll also see a similar error message if the App Service platform detects that your certificate is degraded or expired.
196+
If your permissions or network settings for your managed identity, key vault, or App Service Environment aren't set appropriately, you aren't able to configure a custom domain suffix, and you receive an error similar to the example shown in the screenshot. Review the [prerequisites](#prerequisites) to ensure you configured the needed permissions. You also see a similar error message if the App Service platform detects that your certificate is degraded or expired.
198197

199198
:::image type="content" source="./media/custom-domain-suffix/custom-domain-suffix-error.png" alt-text="Screenshot of a sample custom domain suffix error message.":::
200199

0 commit comments

Comments
 (0)