Skip to content

Commit 076c882

Browse files
authored
Merge pull request #291295 from MicrosoftDocs/main
Publish to live, Tuesday 4 AM PST, 12/3
2 parents 20848c5 + ac02f61 commit 076c882

File tree

16 files changed

+160
-24
lines changed

16 files changed

+160
-24
lines changed

articles/automation/automation-security-guidelines.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Azure Automation security guidelines, security best practices Automation
33
description: This article helps you with the guidelines that Azure Automation offers to ensure a secured configuration of Automation account, Hybrid Runbook worker role, authentication certificate and identities, network isolation and policies.
44
services: automation
55
ms.subservice: shared-capabilities
6-
ms.date: 09/09/2024
6+
ms.date: 12/03/2024
77
ms.topic: overview
88
ms.service: azure-automation
99
---
@@ -48,6 +48,8 @@ This section guides you in configuring your Automation account securely.
4848

4949
1. [Unregister](./extension-based-hybrid-runbook-worker-install.md?tabs=windows#delete-a-hybrid-runbook-worker) any unused or non-responsive hybrid workers.
5050

51+
1. We strongly recommend that you never configure Hybrid Worker extension on a Virtual machine hosting domain controller. Security best practices don't advise such a setup due to the high-risk nature of exposing domain controllers to potential attack vectors via Azure Automation jobs. Domain controllers should be highly secured and isolated from non-essential services to prevent unauthorized access and maintain the integrity of the Active Directory Domain Services (ADDS) environment.
52+
5153
### Authentication certificate and identities
5254

5355
1. For runbook authentication, we recommend that you use [Managed identities](./automation-security-overview.md#managed-identities) instead of Run As accounts. The Run As accounts are an administrative overhead and we plan to deprecate them. A managed identity from Microsoft Entra ID allows your runbook to easily access other Microsoft Entra protected resources such as Azure Key Vault. The identity is managed by the Azure platform and does not require you to provision or rotate any secrets. For more information about managed identities in Azure Automation, see [Managed identities for Azure Automation](./automation-security-overview.md#managed-identities)

articles/automation/extension-based-hybrid-runbook-worker-install.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: This article provides information about deploying the extension-bas
44
services: automation
55
ms.subservice: process-automation
66
ms.custom: devx-track-azurepowershell, devx-track-azurecli, devx-track-bicep, linux-related-content
7-
ms.date: 11/29/2024
7+
ms.date: 12/03/2024
88
ms.topic: how-to
99
#Customer intent: As a developer, I want to learn about extension so that I can efficiently deploy Hybrid Runbook Workers.
1010
ms.service: azure-automation
@@ -62,7 +62,9 @@ Azure Automation stores and manages runbooks and then delivers them to one or mo
6262
| PowerShell Core | To run PowerShell runbooks, PowerShell Core needs to be installed. For instructions, see [Installing PowerShell Core on Linux](/powershell/scripting/install/installing-powershell-core-on-linux) | 6.0.0 |
6363

6464
> [!NOTE]
65-
> Hybrid Runbook Worker is currently not supported for Virtual Machine Scale Sets (VMSS).
65+
> - Hybrid Runbook Worker is currently not supported for Virtual Machine Scale Sets (VMSS).
66+
>
67+
> - We strongly recommend that you never configure Hybrid Worker extension on a Virtual machine hosting domain controller. Security best practices don't advise such a setup due to the high-risk nature of exposing domain controllers to potential attack vectors via Azure Automation jobs. Domain controllers should be highly secured and isolated from non-essential services to prevent unauthorized access and maintain the integrity of the Active Directory Domain Services (ADDS) environment.
6668
6769

6870
### Permissions for Hybrid worker credentials

articles/batch/TOC.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@
238238
- name: Job preparation and completion tasks
239239
displayName: release, job release
240240
href: batch-job-prep-release.md
241+
- name: Configure Container Data Isolation Task
242+
href: batch-container-isolation-task.md
241243
- name: Concurrent node tasks
242244
displayName: variable, maximize
243245
href: batch-parallel-node-tasks.md
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
title: Configure container isolation in Azure Batch task
3+
description: Learn how to configure isolation at task level in Azure Batch.
4+
ms.topic: how-to
5+
ms.date: 12/02/2024
6+
ms.devlang: csharp
7+
ms.custom: batch
8+
---
9+
10+
# Batch Container Isolation Task
11+
12+
Azure Batch offers an isolation configuration at the task level, allowing tasks to avoid mounting the entire ephemeral disk or the entire `AZ_BATCH_NODE_ROOT_DIR`. Instead, you can customize the specific Azure Batch data paths you want to attach to the container task.
13+
14+
> [!Note]
15+
> **Azure Batch Data Path** refers to the specific paths on an Azure Batch node designated for tasks and applications. All these paths are located under `AZ_BATCH_NODE_ROOT_DIR`.
16+
17+
## Why we need isolation feature in container task
18+
19+
In a Windows container task workload, the entire ephemeral disk (D:) is attached to the task's container. For a Linux container task workload, Azure Batch attaches the entire `AZ_BATCH_NODE_ROOT_DIR` to the task's container, both in ReadWrite mode. However, if you want to customize your container volumes, this setup may cause some data to be shared across all containers running on the node. To address the same, we support the ability to customize the Azure Batch data paths that you want to attach to the task container.
20+
21+
- **Security**: Prevents the container task data from leaking into the host machine or altering data on the host machine.
22+
- **Customize**: You can customize your container task volumes as needed.
23+
24+
> [!Note]
25+
> To use this feature, please ensure that your node agent version is greater than 1.11.11.
26+
27+
## Configuring host data path attachments for containers
28+
29+
* For Linux node: We can just attach the same path into container.
30+
* For Windows node: Since Windows containers don't have a D: disk, we need to mount the path. Refer to the listed paths that you can choose to mount.
31+
32+
| Azure Batch Data Path | Path in Host Machine | Path in Container |
33+
|-----------------------------------|--------------------------------------------------------------------------|--------------|
34+
|**AZ_BATCH_APP_PACKAGE_**| D:\\batch\\tasks\\applications | C:\\batch\\tasks\\applications |
35+
|**AZ_BATCH_NODE_SHARED_DIR**| D:\\batch\\tasks\\shared | C:\\batch\\tasks\\shared |
36+
|**AZ_BATCH_NODE_STARTUP_DIR**| D:\\batch\\tasks\\startup | C:\\batch\\tasks\\startup |
37+
|**AZ_BATCH_NODE_MOUNTS_DIR**|D:\\batch\\tasks\\fsmounts|C:\\batch\\tasks\\fsmounts|
38+
|**AZ_BATCH_NODE_STARTUP_WORKING_DIR**| D:\\batch\\tasks\\startup\\wd | C:\\batch\\tasks\\startup\\wd |
39+
|**AZ_BATCH_JOB_PREP_DIR** | C:\\batch\\tasks\\workitems\\{workitemname}\\{jobname}\\{jobpreptaskname} | D:\\batch\tasks\workitems\\{workitemname}\\{jobname}\\{jobpreptaskname} |
40+
|**AZ_BATCH_JOB_PREP_WORKING_DIR** | C:\\batch\\tasks\\workitems\\{workitemname}\\{jobname}\\{jobpreptaskname}\\wd | D:\\batch\tasks\workitems\\{workitemname}\\{jobname}\\{jobpreptaskname}\\wd |
41+
|**AZ_BATCH_TASK_DIR**| D:\\batch\\tasks\\workitems\\{workitemname}\\{jobname}\\{taskname} | C:\batch\tasks\workitems\\{workitemname}\\{jobname}\\{taskname} |
42+
|**AZ_BATCH_TASK_WORKING_DIR** | D:\\batch\\tasks\\workitems\\{workitemname}\\{jobname}\\{taskname}\\wd | C:\\batch\\tasks\\workitems\\{workitemname}\\{jobname}\\{taskname}\\wd |
43+
44+
45+
Refer to the listed data paths that you can choose to attach to the container. Any unselected data paths have their associated environment variables removed.
46+
47+
|Data Path Enum|Data Path with be attached to container|
48+
|:--------:|------------|
49+
|**Shared**| AZ_BATCH_NODE_SHARED_DIR |
50+
|**Applications**| AZ_BATCH_APP_PACKAGE_* |
51+
|**Startup**| AZ_BATCH_NODE_STARTUP_DIR, AZ_BATCH_NODE_STARTUP_WORKING_DIR |
52+
|**Vfsmounts**|AZ_BATCH_NODE_MOUNTS_DIR|
53+
|**JobPrep**| AZ_BATCH_JOB_PREP_DIR, AZ_BATCH_JOB_PREP_WORKING_DIR |
54+
|**Task**| AZ_BATCH_TASK_DIR, AZ_BATCH_TASK_WORKING_DIR |
55+
56+
## Run a container isolation task
57+
58+
> [!Note]
59+
> * If you use an empty list, the NodeAgent will not mount any data paths into the task's container. If you use null, the NodeAgent will mount the entire ephemeral disk (in Windows) or `AZ_BATCH_NODE_ROOT_DIR` (in Linux).
60+
> * If you don't mount the task data path into the container, you must set the task's property [workingDirectory](/rest/api/batchservice/task/add?tabs=HTTP#containerworkingdirectory) to containerImageDefault.
61+
62+
Before running a container isolation task, you must create a pool with a container. For more information on how to create it, see this guide [Docker container workload](batch-docker-container-workloads.md).
63+
64+
# [REST API](#tab/restapi)
65+
66+
The following example describes how to create a container task with data isolation using REST API:
67+
```http
68+
POST {batchUrl}/jobs/{jobId}/tasks?api-version=2024-07-01.20.0
69+
```
70+
71+
```json
72+
{
73+
"id": "taskId",
74+
"commandLine": "bash -c 'echo hello'",
75+
"containerSettings": {
76+
"imageName": "ubuntu",
77+
"containerHostBatchBindMounts": [
78+
{
79+
"source": "Task",
80+
"isReadOnly": true
81+
}
82+
]
83+
},
84+
"userIdentity": {
85+
"autoUser": {
86+
"scope": "task",
87+
"elevationLevel": "nonadmin"
88+
}
89+
}
90+
}
91+
```
92+
93+
# [SDK / C#](#tab/csharp)
94+
95+
The following code snippet shows an example of how to use the [Batch .NET](https://www.nuget.org/packages/Microsoft.Azure.Batch/) client library to create a container data isolation task using C#. For more details about Batch .NET, see the [reference documentation](/dotnet/api/microsoft.azure.batch).
96+
97+
```csharp
98+
private async Task CreateExampleContainerIsolationTask(BatchServiceClient client, string jobId)
99+
{
100+
var containerIsolationTask = new CloudTask("test-container-isolation", "printenv")
101+
{
102+
ContainerSettings = new TaskContainerSettings("docker.io/ubuntu:22.04")
103+
{
104+
ContainerHostBatchBindMounts = new List<ContainerHostBatchBindMountEntry>()
105+
{
106+
new()
107+
{
108+
Source = Microsoft.Azure.Batch.Protocol.Models.ContainerHostDataPath.Task,
109+
}
110+
}
111+
}
112+
};
113+
await client.JobOperations.AddTaskAsync(jobId, containerIsolationTask);
114+
}
115+
```

articles/hdinsight/hdinsight-use-availability-zones.md

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to create an Azure HDInsight cluster that uses Availabili
44
ms.service: azure-hdinsight
55
ms.topic: how-to
66
ms.custom: references_regions
7-
ms.date: 06/15/2024
7+
ms.date: 12/03/2024
88
---
99

1010
# Create an HDInsight cluster that uses Availability Zones
@@ -28,23 +28,38 @@ Prerequisites:
2828

2929
HDInsight clusters can currently be created using availability zones in the following regions:
3030

31-
- Australia East
32-
- Brazil South
33-
- Canada Central
34-
- Central US
35-
- East US
36-
- East US 2
37-
- France Central
38-
- Germany West Central
39-
- Japan East
40-
- Korea Central
41-
- North Europe
42-
- Southeast Asia
43-
- South Central US
44-
- UK South
45-
- US Gov Virginia
46-
- West Europe
47-
- West US 2
31+
* Australia East
32+
* Brazil South
33+
* Canada Central
34+
* Central India
35+
* Central US
36+
* East Asia
37+
* East US
38+
* East US 2
39+
* France Central
40+
* Germany West Central
41+
* Israel Central
42+
* Italy North
43+
* Japan East
44+
* Korea Central
45+
* Mexico Central
46+
* New Zealand North
47+
* North Europe
48+
* Norway East
49+
* Poland Central
50+
* Qatar Central
51+
* South Africa North
52+
* South Central US
53+
* Southeast Asia
54+
* Spain Central
55+
* Sweden Central
56+
* Switzerland North
57+
* UAE North
58+
* UK South
59+
* US Gov Virginia
60+
* West Europe
61+
* West US 2
62+
* West US 3
4863

4964
## Overview of availability zones for HDInsight clusters
5065

@@ -79,7 +94,7 @@ In the resources section, you need to add a section of ‘zones’ and provide w
7994
## Verify nodes within one Availability Zone across zones
8095
When the HDInsight cluster is ready, you can check the location to see which availability zone they're deployed in.
8196

82-
:::image type="content" source="./media/hdinsight-use-availability-zones/cluster-availability-zone-info.png" alt-text="Screenshot sthat hows availability zone info in cluster overview." border="true":::
97+
:::image type="content" source="./media/hdinsight-use-availability-zones/cluster-availability-zone-info.png" alt-text="Screenshot shows the availability zone info in cluster overview." border="true":::
8398

8499
**Get API response**:
85100

-6.51 KB
Loading
-13.1 KB
Loading
2.19 KB
Loading
-27 KB
Loading
-67.5 KB
Loading

0 commit comments

Comments
 (0)