Skip to content

Commit 899d6b8

Browse files
Merge pull request #106998 from Blackmist/private-link
writing
2 parents b128a16 + 1612531 commit 899d6b8

11 files changed

+1397
-40
lines changed

articles/machine-learning/concept-enterprise-security.md

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.topic: conceptual
99
ms.author: aashishb
1010
author: aashishb
1111
ms.reviewer: larryfr
12-
ms.date: 01/09/2020
12+
ms.date: 03/13/2020
1313
---
1414

1515
# Enterprise security for Azure Machine Learning
@@ -102,6 +102,28 @@ Azure Machine Learning relies on other Azure services for compute resources. Com
102102

103103
For more information, see [How to run experiments and inference in a virtual network](how-to-enable-virtual-network.md).
104104

105+
You can also enable Azure Private Link for your workspace. Private Link allows you to restrict communications to your workspace from an Azure Virtual Network. For more information, see [How to configure Private Link](how-to-configure-private-link.md).
106+
107+
> [!TIP]
108+
> You can combine virtual network and Private Link together to protect communication between your workspace and other Azure resources. However, some combinations require an Enterprise edition workspace. Use the following table to understand what scenarios require Enterprise edition:
109+
>
110+
> | Scenario | Enterprise</br>edition | Basic</br>edition |
111+
> | ----- |:-----:|:-----:|
112+
> | No virtual network or Private Link |||
113+
> | Workspace without Private Link. Other resources (except Azure Container Registry) in a virtual network |||
114+
> | Workspace without Private Link. Other resources with Private Link || |
115+
> | Workspace with Private Link. Other resources (except Azure Container Registry) in a virtual network |||
116+
> | Workspace and any other resource with Private Link || |
117+
> | Workspace with Private Link. Other resources without Private Link or virtual network |||
118+
> | Azure Container Registry in a virtual network || |
119+
> | Customer Managed Keys for workspace || |
120+
>
121+
122+
> [!WARNING]
123+
> Azure Machine Learning compute instances preview is not supported in a workspace where Private Link is enabled.
124+
>
125+
> Azure Machine Learning does not support using an Azure Kubernetes Service that has private link enabled. Instead, you can use Azure Kubernetes Service in a virtual network. For more information, see [Secure Azure ML experimentation and inference jobs within an Azure Virtual Network](how-to-enable-virtual-network.md).
126+
105127
## Data encryption
106128

107129
### Encryption at rest
@@ -119,6 +141,8 @@ For information on how to use your own keys for data stored in Azure Blob storag
119141

120142
Training data is typically also stored in Azure Blob storage so that it's accessible to training compute targets. This storage isn't managed by Azure Machine Learning but mounted to compute targets as a remote file system.
121143

144+
If you need to __rotate or revoke__ your key, you can do so at any time. When rotating a key, the storage account will start using the new key (latest version) to encrypt data at rest. When revoking (disabling) a key, the storage account takes care of failing requests. It usually takes an hour for the rotation or revocation to be effective.
145+
122146
For information on regenerating the access keys, see [Regenerate storage access keys](how-to-change-storage-access-key.md).
123147

124148
#### Azure Cosmos DB
@@ -152,6 +176,8 @@ This Cosmos DB instance is created in a Microsoft-managed resource group in your
152176
> * If you need to delete this Cosmos DB instance, you must delete the Azure Machine Learning workspace that uses it.
153177
> * The default [__Request Units__](../cosmos-db/request-units.md) for this Cosmos DB account is set at __8000__. Changing this value is unsupported.
154178
179+
If you need to __rotate or revoke__ your key, you can do so at any time. When rotating a key, Cosmos DB will start using the new key (latest version) to encrypt data at rest. When revoking (disabling) a key, Cosmos DB takes care of failing requests. It usually takes an hour for the rotation or revocation to be effective.
180+
155181
For more information on customer-managed keys with Cosmos DB, see [Configure customer-managed keys for your Azure Cosmos DB account](../cosmos-db/how-to-setup-cmk.md).
156182

157183
#### Azure Container Registry
@@ -167,7 +193,21 @@ For an example of creating a workspace using an existing Azure Container Registr
167193

168194
#### Azure Container Instance
169195

170-
Azure Container Instance does not support disk encryption. If you need disk encryption, we recommend [deploying to an Azure Kubernetes Service instance](how-to-deploy-azure-kubernetes-service.md) instead. In this case, you may also want to use Azure Machine Learning’s support for role-based access controls to prevent deployments to an Azure Container Instance in your subscription.
196+
You may encrypt a deployed Azure Container Instance (ACI) resource using customer-managed keys. The customer-managed key used for ACI can be stored in the Azure Key Vault for your workspace. For information on generating a key, see [Encrypt data with a customer-managed key](../container-instances/container-instances-encrypt-data.md#generate-a-new-key).
197+
198+
To use the key when deploying a model to Azure Container Instance, create a new deployment configuration using `AciWebservice.deploy_configuration()`. Provide the key information using the following parameters:
199+
200+
* `cmk_vault_base_url`: The URL of the key vault that contains the key.
201+
* `cmk_key_name`: The name of the key.
202+
* `cmk_key_version`: The version of the key.
203+
204+
For more information on creating and using a deployment configuration, see the following articles:
205+
206+
* [AciWebservice.deploy_configuration()](https://docs.microsoft.com/python/api/azureml-core/azureml.core.webservice.aci.aciwebservice?view=azure-ml-py#deploy-configuration-cpu-cores-none--memory-gb-none--tags-none--properties-none--description-none--location-none--auth-enabled-none--ssl-enabled-none--enable-app-insights-none--ssl-cert-pem-file-none--ssl-key-pem-file-none--ssl-cname-none--dns-name-label-none--primary-key-none--secondary-key-none--collect-model-data-none--cmk-vault-base-url-none--cmk-key-name-none--cmk-key-version-none-) reference
207+
* [Where and how to deploy](how-to-deploy-and-where.md)
208+
* [Deploy a model to Azure Container Instances](how-to-deploy-azure-container-instance.md)
209+
210+
For more information on using a customer-managed key with ACI, see [Encrypt data with a customer-managed key](../container-instances/container-instances-encrypt-data.md#encrypt-data-with-a-customer-managed-key).
171211

172212
#### Azure Kubernetes Service
173213

@@ -210,7 +250,7 @@ Each workspace has an associated system-assigned managed identity that has the s
210250

211251
### Microsoft collected data
212252

213-
Microsoft may collect non-user identifying information like resource names (for example the dataset name, or the machine learning experiment name), or job environment variables for diagnostic purposes. All such data is stored using Microsoft-managed keys in storage hosted in Microsoft owned subscriptions and follows [Microsofts standard Privacy policy and data handling standards](https://privacy.microsoft.com/privacystatement).
253+
Microsoft may collect non-user identifying information like resource names (for example the dataset name, or the machine learning experiment name), or job environment variables for diagnostic purposes. All such data is stored using Microsoft-managed keys in storage hosted in Microsoft owned subscriptions and follows [Microsoft's standard Privacy policy and data handling standards](https://privacy.microsoft.com/privacystatement).
214254

215255
Microsoft also recommends not storing sensitive information (such as account key secrets) in environment variables. Environment variables are logged, encrypted, and stored by us. Similarly when naming [runid](https://docs.microsoft.com/python/api/azureml-core/azureml.core.run%28class%29?view=azure-ml-py), avoid including sensitive information such as user names or secret project names. This information may appear in telemetry logs accessible to Microsoft Support engineers.
216256

@@ -323,7 +363,7 @@ Here are the details:
323363
* The user creates an image by using a model, a score file, and other model dependencies.
324364
* The Docker image is created and stored in Azure Container Registry.
325365
* The web service is deployed to the compute target (Container Instances/AKS) using the image created in the previous step.
326-
* Scoring request details are stored in Application Insights, which is in the users subscription.
366+
* Scoring request details are stored in Application Insights, which is in the user's subscription.
327367
* Telemetry is also pushed to the Microsoft/Azure subscription.
328368

329369
[![Inference workflow](media/concept-enterprise-security/inferencing.png)](media/concept-enterprise-security/inferencing-expanded.png#lightbox)

0 commit comments

Comments
 (0)