Skip to content

Commit f8c436b

Browse files
Merge branch 'master' of https://github.com/MicrosoftDocs/azure-docs-pr into vminsights-maps
2 parents 1cd9dc2 + d372703 commit f8c436b

File tree

12 files changed

+409
-375
lines changed

12 files changed

+409
-375
lines changed

articles/app-service/containers/configure-language-php.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ Redeploy your app with the changes and restart it. If you deploy it with Kudu (f
164164

165165
As an alternative to using *.htaccess*, you can use [ini_set()](https://www.php.net/manual/function.ini-set.php) in your app to customize these non-PHP_INI_SYSTEM directives.
166166

167-
### Customize PHP_INI_SYSTEM directives
167+
### <a name="customize-php_ini_system-directives"></a>Customize PHP_INI_SYSTEM directives
168168

169169
To customize PHP_INI_SYSTEM directives (see [php.ini directives](https://www.php.net/manual/ini.list.php)), you can't use the *.htaccess* approach. App Service provides a separate mechanism using the `PHP_INI_SCAN_DIR` app setting.
170170

articles/app-service/containers/configure-language-ruby.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ However, this setting alone causes the Rails server to start in development mode
139139
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings APP_COMMAND_LINE="rails server -b 0.0.0.0"
140140
```
141141

142-
### Set secret_key_base manually
142+
### <a name="set-secret_key_base-manually"></a> Set secret_key_base manually
143143

144144
To use your own `secret_key_base` value instead of letting App Service generate one for you, set the `SECRET_KEY_BASE` [app setting](../configure-common.md?toc=%2fazure%2fapp-service%2fcontainers%2ftoc.json#configure-app-settings) with the value you want. For example:
145145

@@ -161,4 +161,4 @@ az webapp config appsettings set --name <app-name> --resource-group <resource-gr
161161
> [Tutorial: Rails app with PostgreSQL](tutorial-ruby-postgres-app.md)
162162
163163
> [!div class="nextstepaction"]
164-
> [App Service Linux FAQ](app-service-linux-faq.md)
164+
> [App Service Linux FAQ](app-service-linux-faq.md)
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Security recommendations for Azure App Service
3+
description: Security recommendations for the Azure App Service. Implementing these recommendations will help you fulfill your security obligations as described in our shared responsibility model and will improve the overall security for your web app solutions.
4+
services: app-service
5+
author: barclayn
6+
manager: barbkess
7+
8+
ms.service: app-service
9+
ms.topic: conceptual
10+
ms.date: 06/17/2019
11+
ms.author: barclayn
12+
13+
---
14+
15+
# Security recommendations for App Service
16+
17+
This article contains security recommendations for Azure App Service. Implementing these recommendations will help you fulfill your security obligations as described in our shared responsibility model and will improve the overall security for your Web App solutions. For more information on what Microsoft does to fulfill service provider responsibilities, read [Azure infrastructure security](../security/azure-security-infrastructure.md).
18+
19+
## General
20+
21+
| Recommendation | Comments |
22+
|-|-|----|
23+
| Stay up-to-date | Use the latest versions of supported platforms, programming languages, protocols, and frameworks. |
24+
25+
## Identity and access management
26+
27+
| Recommendation | Comments |
28+
|-|----|
29+
| Disable anonymous access | Unless you need to support anonymous requests, disable anonymous access. For more information on Azure App Service authentication options, see [Authentication and authorization in Azure App Service](overview-authentication-authorization.md).|
30+
| Require authentication | Whenever possible, use the App Service authentication module instead of writing code to handle authentication and authorization. See [Authentication and authorization in Azure App Service](overview-authentication-authorization.md). |
31+
| Protect back-end resources with authenticated access | You can either use the user's identity or use an application identity to authenticate to a back-end resource. When you choose to use an application identity use a [managed identity](overview-managed-identity.md).
32+
| Require client certificate authentication | Client certificate authentication improves security by only allowing connections from clients that can authenticate using certificates that you provide. |
33+
34+
## Data protection
35+
36+
| Recommendation | Comments |
37+
|-|-|
38+
| Redirect HTTP to HTTPs | By default, clients can connect to web apps by using both HTTP or HTTPS. We recommend redirecting HTTP to HTTPs because HTTPS uses the SSL/TLS protocol to provide a secure connection, which is both encrypted and authenticated. |
39+
| Encrypt communication to Azure resources | When your app connects to Azure resources, such as [SQL Database](https://azure.microsoft.com/services/sql-database/) or [Azure Storage](/azure/storage/), the connection stays in Azure. Since the connection goes through the shared networking in Azure, you should always encrypt all communication. |
40+
| Require the latest TLS version possible | Since 2018 new Azure App Service apps use TLS 1.2. Newer versions of TLS include security improvements over older protocol versions. |
41+
| Use FTPS | App Service supports both FTP and FTPS for deploying your files. Use FTPS instead of FTP when possible. When one or both of these protocols are not in use, you should [disable them](deploy-ftp.md#enforce-ftps). |
42+
| Secure application data | Don't store application secrets, such as database credentials, API tokens, or private keys in your code or configuration files. The commonly accepted approach is to access them as [environment variables](https://wikipedia.org/wiki/Environment_variable) using the standard pattern in your language of choice. In Azure App Service, you can define environment variables through [app settings](web-sites-configure.md) and [connection strings](web-sites-configure.md). App settings and connection strings are stored encrypted in Azure. The app settings are decrypted only before being injected into your app's process memory when the app starts. The encryption keys are rotated regularly. Alternatively, you can integrate your Azure App Service app with [Azure Key Vault](/azure/key-vault/) for advanced secrets management. By [accessing the Key Vault with a managed identity](../key-vault/tutorial-web-application-keyvault.md), your App Service app can securely access the secrets you need. |
43+
44+
## Networking
45+
46+
| Recommendation | Comments |
47+
|-|-|
48+
| Use static IP restrictions | Azure App Service on Windows lets you define a list of IP addresses that are allowed to access your app. The allowed list can include individual IP addresses or a range of IP addresses defined by a subnet mask. For more information, see [Azure App Service Static IP Restrictions](app-service-ip-restrictions.md). |
49+
| Use the isolated pricing tier | Except for the isolated pricing tier, all tiers run your apps on the shared network infrastructure in Azure App Service. The isolated tier gives you complete network isolation by running your apps inside a dedicated [App Service environment](environment/intro.md). An App Service environment runs in your own instance of [Azure Virtual Network](/azure/virtual-network/).|
50+
| Use secure connections when accessing on-premises resources | You can use [Hybrid connections](app-service-hybrid-connections.md), [Virtual Network integration](web-sites-integrate-with-vnet.md), or [App Service environment's](environment/intro.md) to connect to on-premises resources. |
51+
| Limit exposure to inbound network traffic | Network security groups allow you to restrict network access and control the number of exposed endpoints. For more information, see [How To Control Inbound Traffic to an App Service Environment](environment/app-service-app-service-environment-control-inbound-traffic.md). |
52+
53+
## Monitoring
54+
55+
| Recommendation | Comments |
56+
|-|-|
57+
|Use Azure Security Center standard tier | [Azure Security Center](../security-center/security-center-app-services.md) is natively integrated with Azure App Service. It can run assessments and provide security recommendations. |
58+
59+
## Next steps
60+
61+
Check with your application provider to see if there are additional security requirements. For more information on developing secure applications, see [Secure Development Documentation](../security/abstract-develop-secure-apps.md).

articles/app-service/toc.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,17 @@
7070
- name: OS functionality
7171
href: operating-system-functionality.md
7272
- name: Security
73-
href: overview-security.md
7473
items:
74+
- name: Recommendations
75+
href: security-recommendations.md
7576
- name: Authentication and authorization
7677
href: overview-authentication-authorization.md
7778
- name: OS and runtime patching
7879
href: overview-patch-os-runtime.md
7980
- name: Security attributes
8081
href: app-service-security-attributes.md
82+
- name: Security overview
83+
href: overview-security.md
8184
- name: Networking features
8285
href: networking-features.md
8386
- name: Inbound and outbound IPs

articles/automation/automation-update-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ The following diagram shows a conceptual view of the behavior and data flow with
3333

3434
Update Management can be used to natively onboard machines in multiple subscriptions in the same tenant.
3535

36-
Once a CVE is released, it takes 2-3 hours for the patch to show up for Linux machines for assessment. For Windows machines, it takes 12-15 hours for the patch to show up for assessment after it has been released.
36+
Once a package is released, it takes 2-3 hours for the patch to show up for Linux machines for assessment. For Windows machines, it takes 12-15 hours for the patch to show up for assessment after it has been released.
3737

3838
After a computer completes a scan for update compliance, the agent forwards the information in bulk to Azure Monitor logs. On a Windows computer, the compliance scan is run every 12 hours by default.
3939

articles/backup/backup-azure-microsoft-azure-backup.md

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,18 @@ Azure Backup Server inherits much of the workload backup functionality from Data
3737
The first step towards getting the Azure Backup Server up and running is to set up a Windows Server. Your server can be in Azure or on-premises.
3838

3939
### Using a server in Azure
40-
When choosing a server for running Azure Backup Server, it is recommended you start with a gallery image of Windows Server 2012 R2 Datacenter, Windows Server 2016 Datacenter or Windows Server 2019 Datacenter. The article, [Create your first Windows virtual machine in the Azure portal](../virtual-machines/virtual-machines-windows-hero-tutorial.md?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json), provides a tutorial for getting started with the recommended virtual machine in Azure, even if you've never used Azure before. The recommended minimum requirements for the server virtual machine (VM) should be: A2 Standard with two cores and 3.5 GB RAM.
40+
When choosing a server for running Azure Backup Server, it is recommended you start with a gallery image of Windows Server 2012 R2 Datacenter, Windows Server 2016 Datacenter or Windows Server 2019 Datacenter. The article, [Create your first Windows virtual machine in the Azure portal](../virtual-machines/virtual-machines-windows-hero-tutorial.md?toc=%2fazure%2fvirtual-machines%2fwindows%2ftoc.json), provides a tutorial for getting started with the recommended virtual machine in Azure, even if you've never used Azure before. The recommended minimum requirements for the server virtual machine (VM) should be: Standard_A4_v2 with four cores and 8 GB RAM.
4141

4242
Protecting workloads with Azure Backup Server has many nuances. The article, [Install DPM as an Azure virtual machine](https://technet.microsoft.com/library/jj852163.aspx), helps explain these nuances. Before deploying the machine, read this article completely.
4343

4444
### Using an on-premises server
45-
If you do not want to run the base server in Azure, you can run the server on a Hyper-V VM, a VMware VM, or a physical host. The recommended minimum requirements for the server hardware are two cores and 4 GB RAM. The supported operating systems are listed in the following table:
45+
If you do not want to run the base server in Azure, you can run the server on a Hyper-V VM, a VMware VM, or a physical host. The recommended minimum requirements for the server hardware are two cores and 8 GB RAM. The supported operating systems are listed in the following table:
4646

4747
| Operating System | Platform | SKU |
4848
|:--- | --- |:--- |
4949
| Windows Server 2019 |64 bit |Standard, Datacenter, Essentials (MABS V3 and later) |
5050
| Windows Server 2016 and latest SPs |64 bit |Standard, Datacenter, Essentials (MABS V2 and later) |
5151
| Windows Server 2012 R2 and latest SPs |64 bit |Standard, Datacenter, Foundation |
52-
| Windows Server 2012 and latest SPs |64 bit |Datacenter, Foundation, Standard |
5352
| Windows Storage Server 2012 R2 and latest SPs |64 bit |Standard, Workgroup |
5453
| Windows Storage Server 2012 and latest SPs |64 bit |Standard, Workgroup |
5554

@@ -137,7 +136,7 @@ To edit the storage replication setting:
137136
After you've downloaded all the files, click **MicrosoftAzureBackupInstaller.exe**. This will start the **Microsoft Azure Backup Setup Wizard** to extract the setup files to a location specified by you. Continue through the wizard and click on the **Extract** button to begin the extraction process.
138137

139138
> [!WARNING]
140-
> At least 4GB of free space is required to extract the setup files.
139+
> At least 4 GB of free space is required to extract the setup files.
141140
>
142141
>
143142
@@ -201,7 +200,7 @@ Once the extraction process complete, check the box to launch the freshly extrac
201200

202201
The next step is to configure the Microsoft Azure Recovery Services Agent. As a part of the configuration, you will have to provide your vault credentials to register the machine to the recovery services vault. You will also provide a passphrase to encrypt/decrypt the data sent between Azure and your premises. You can automatically generate a passphrase or provide your own minimum 16-character passphrase. Continue with the wizard until the agent has been configured.
203202

204-
![Azure Backup Serer PreReq2](./media/backup-azure-microsoft-azure-backup/mars/04.png)
203+
![Azure Backup Server PreReq2](./media/backup-azure-microsoft-azure-backup/mars/04.png)
205204
9. Once registration of the Microsoft Azure Backup server successfully completes, the overall setup wizard proceeds to the installation and configuration of SQL Server and the Azure Backup Server components. Once the SQL Server component installation completes, the Azure Backup Server components are installed.
206205

207206
![Azure Backup Server](./media/backup-azure-microsoft-azure-backup/final-install/venus-installation-screen.png)
@@ -258,7 +257,7 @@ Here are the steps if you need to move MABS to a new server, while retaining the
258257
10. From admin command line on new server cd to Microsoft Azure Backup install location and bin folder
259258

260259
Path example:
261-
C:\windows\system32>cd "c:\Program Files\Microsoft Azure Backup\DPM\DPM\bin\"
260+
C:\windows\system32>cd "c:\Program Files\Microsoft Azure Backup\DPM\DPM\bin\"
262261

263262
11. To Azure backup, Run DPMSYNC -SYNC
264263

@@ -267,7 +266,7 @@ Here are the steps if you need to move MABS to a new server, while retaining the
267266
## Network connectivity
268267
Azure Backup Server requires connectivity to the Azure Backup service for the product to work successfully. To validate whether the machine has the connectivity to Azure, use the ```Get-DPMCloudConnection``` cmdlet in the Azure Backup Server PowerShell console. If the output of the cmdlet is TRUE then connectivity exists, else there is no connectivity.
269268

270-
At the same time, the Azure subscription needs to be in a healthy state. To find out the state of your subscription and to manage it, log in to the [subscription portal](https://account.windowsazure.com/Subscriptions).
269+
At the same time, the Azure subscription needs to be in a healthy state. To find out the state of your subscription and to manage it, sign in to the [subscription portal](https://account.windowsazure.com/Subscriptions).
271270

272271
Once you know the state of the Azure connectivity and of the Azure subscription, you can use the table below to find out the impact on the backup/restore functionality offered.
273272

@@ -281,7 +280,7 @@ Once you know the state of the Azure connectivity and of the Azure subscription,
281280
| Lost connectivity > 15 days |Deprovisioned |Stopped |Stopped |Stopped and Azure recovery points deleted |Stopped |
282281

283282
### Recovering from loss of connectivity
284-
If you have a firewall or a proxy that is preventing access to Azure, you need to whitelist the following domain addresses in the firewall/proxy profile:
283+
If you have a firewall or a proxy that is preventing access to Azure, you need to allow the following domain addresses in the firewall/proxy profile:
285284

286285
* `http://www.msftncsi.com/ncsi.txt`
287286
* \*.Microsoft.com
@@ -303,7 +302,7 @@ Use the following procedures to upgrade MABS.
303302
### Upgrade from MABS V2 to V3
304303

305304
> [!NOTE]
306-
>
305+
>
307306
> MABS V2 is not a prerequisite for installing MABS V3. However, you can upgrade to MABS V3 only from MABS V2.
308307
309308
Use the following steps to upgrade MABS:
@@ -313,23 +312,23 @@ Use the following steps to upgrade MABS:
313312
2. Upgrade your server. The steps are similar to [installation](#install-and-upgrade-azure-backup-server). However, for SQL settings, you will get an option to upgrade your SQL instance to SQL 2017, or to use your own instance of SQL server 2017.
314313

315314
> [!NOTE]
316-
>
315+
>
317316
> Do not exit while your SQL instance is being upgraded, exiting will uninstall the SQL reporting instance and hence an attempt to re-upgrade MABS will fail.
318317
319318
Important things to note:
320319

321320
> [!IMPORTANT]
322-
>
321+
>
323322
> As part of SQL 2017 upgrade, we backup the SQL encryption keys and uninstall the reporting services. After SQL server upgrade, reporting service(14.0.6827.4788) is installed & encryption keys are restored.
324-
>
323+
>
325324
> When configuring SQL 2017 manually, refer to *SSRS configuration with SQL 2017* section under Install instructions.
326325
327326
3. Update the protection agents on the protected servers.
328327
4. Backups should continue without the need to restart your production servers.
329328
5. You can begin protecting your data now. If you are upgrading to Modern Backup Storage, while protecting, you can also choose the volumes you wish to store the backups in, and check for under provisioned space. [Learn more](backup-mabs-add-storage.md).
330329

331330
> [!NOTE]
332-
>
331+
>
333332
> If you are upgrading from MABS V1 to V2, make sure your OS is Windows Server 2016 or Windows Server 2012 R2. To take advantage of new features like System Center 2016 Data Protection Manager Modern Backup Storage, you must install Backup Server V2 on Windows Server 2016. Before you upgrade to or install Backup Server V2, read about the [installation prerequisites](https://docs.microsoft.com/system-center/dpm/install-dpm?view=sc-dpm-1807#setup-prerequisites) applicable for MABS.
334333
335334
## Troubleshooting

0 commit comments

Comments
 (0)