You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/aks/security-hardened-vm-host-image.md
+15-16Lines changed: 15 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,37 +2,36 @@
2
2
title: Security hardening in AKS virtual machine hosts
3
3
description: Learn about the security hardening in AKS VM host OS
4
4
services: container-service
5
-
author: saudas
5
+
author: mlearned
6
6
ms.topic: article
7
7
ms.date: 09/11/2019
8
-
ms.author: saudas
8
+
ms.author: mlearned
9
9
ms.custom: mvc
10
10
---
11
11
12
-
# Security hardening in AKS virtual machine hosts
12
+
# Security hardening for AKS agent node host OS
13
13
14
14
Azure Kubernetes Service (AKS) is a secure service compliant with SOC, ISO, PCI DSS, and HIPAA standards. This article covers the security hardening applied to AKS virtual machine hosts. For more information about AKS security, see [Security concepts for applications and clusters in Azure Kubernetes Service (AKS)](https://docs.microsoft.com/azure/aks/concepts-security).
15
15
16
-
AKS clusters are deployed on host virtual machines, which run a security optimized OS. This host OS is currently based on an Ubuntu 16.04.LTS image with a set of additional security hardening steps applied (see Security hardening details).
16
+
> [!Note]
17
+
> This document is scoped to Linux agents in AKS only.
17
18
18
-
The goal of the security hardened host OS is to reduce the surface area of attack and allow the deployment of containers in a secure fashion.
19
+
AKS clusters are deployed on host virtual machines, which run a security optimized OS which is utilized for containers running on AKS. This host OS is based on an **Ubuntu 16.04.LTS** image with additional security hardening and optimizations applied (see Security hardening details).
20
+
21
+
The goal of the security hardened host OS is to reduce the surface area of attack and optimize for the deployment of containers in a secure manner.
19
22
20
23
> [!Important]
21
-
> The security hardened OS is NOT CIS benchmarked. While there are overlaps with CIS benchmarks, the goal is not to be CIS-compliant. The goal for host OS hardening is to converge on a level of security consistent with Microsoft’s own internal host security standards.
24
+
> The security hardened OS is NOT CIS benchmarked. While there are overlaps with CIS benchmarks, the goal is not to be CIS-compliant. The goal for host OS hardening is to converge on a level of security consistent with Microsoft's own internal host security standards.
22
25
23
-
## Security hardening features
26
+
## Security hardening features
24
27
25
-
* AKS provides a security optimized host OS by default. There is no current option to select an alternate operating system.
28
+
* AKS provides a security optimized host OS by default. There is no option to select an alternate operating system.
26
29
27
30
* Azure applies daily patches (including security patches) to AKS virtual machine hosts. Some of these patches will require a reboot, while others will not. You are responsible for scheduling AKS VM host reboots as needed. For guidance on how to automate AKS patching see [patching AKS nodes](https://docs.microsoft.com/azure/aks/node-updates-kured).
28
31
29
-
Below is a summary of image hardening work that is implemented in AKS-Engine to produce the security optimized host OS. The work was implemented [in this GitHub project](https://github.com/Azure/aks-engine/projects/7).
30
-
31
-
AKS-Engine does not promote or adhere to any specific security standard at this time, but CIS (Center for Internet Security) audit IDs are provided for convenience where applicable.
32
-
33
-
## What's configured?
32
+
## What is configured
34
33
35
-
| CIS | Audit description|
34
+
| CIS | Audit description|
36
35
|---|---|
37
36
| 1.1.1.1 |Ensure mounting of cramfs filesystems is disabled|
38
37
| 1.1.1.2 |Ensure mounting of freevxfs filesystems is disabled|
@@ -73,9 +72,9 @@ AKS-Engine does not promote or adhere to any specific security standard at this
73
72
74
73
## Additional notes
75
74
76
-
* To further reduce the attack surface area, some unnecessary kernel module drivers have been disabled in the OS.
75
+
* To further reduce the attack surface area, some unnecessary kernel module drivers have been disabled in the OS.
77
76
78
-
* The security hardened OS is NOT supported outside of the AKS platform.
77
+
* The security hardened OS is built and maintained specifically for AKS and is NOT supported outside of the AKS platform.
Copy file name to clipboardExpand all lines: articles/aks/use-multiple-node-pools.md
+32-5Lines changed: 32 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,8 +29,8 @@ The following limitations apply when you create and manage AKS clusters that sup
29
29
* The AKS cluster must use the Standard SKU load balancer to use multiple node pools, the feature is not supported with Basic SKU load balancers.
30
30
* The AKS cluster must use virtual machine scale sets for the nodes.
31
31
* The name of a node pool may only contain lowercase alphanumeric characters and must begin with a lowercase letter. For Linux node pools the length must be between 1 and 12 characters, for Windows node pools the length must be between 1 and 6 characters.
32
-
* All node pools must reside in the same virtual network and subnet.
33
-
* When creating multiple node pools at cluster create time, all Kubernetes versions used by node pools must match the version set for the control plane. This version can be updated after the cluster has been provisioned by using per node pool operations.
32
+
* All node pools must reside in the same virtual network.
33
+
* When creating multiple node pools at cluster create time, all Kubernetes versions used by node pools must match the version set for the control plane. This can be updated after the cluster has been provisioned by using per node pool operations.
34
34
35
35
## Create an AKS cluster
36
36
@@ -117,6 +117,29 @@ The following example output shows that *mynodepool* has been successfully creat
117
117
> [!TIP]
118
118
> If no *VmSize* is specified when you add a node pool, the default size is *Standard_DS2_v3* for Windows node pools and *Standard_DS2_v2* for Linux node pools. If no *OrchestratorVersion* is specified, it defaults to the same version as the control plane.
119
119
120
+
### Add a node pool with a unique subnet (preview)
121
+
122
+
A workload may require splitting a cluster's nodes into separate pools for logical isolation. This isolation can be supported with separate subnets dedicated to each node pool in the cluster. This can address requirements such as having non-contiguous virtual network address space to split across node pools.
123
+
124
+
#### Limitations
125
+
126
+
* All subnets assigned to nodepools must belong to the same virtual network.
127
+
* System pods must have access to all nodes in the cluster to provide critical functionality such as DNS resolution via coreDNS.
128
+
* Assignment of a unique subnet per node pool is limited to Azure CNI during preview.
129
+
* Using network policies with a unique subnet per node pool is not supported during preview.
130
+
131
+
To create a node pool with a dedicated subnet, pass the subnet resource ID as an additional parameter when creating a node pool.
132
+
133
+
```azurecli-interactive
134
+
az aks nodepool add \
135
+
--resource-group myResourceGroup \
136
+
--cluster-name myAKSCluster \
137
+
--name mynodepool \
138
+
--node-count 3 \
139
+
--kubernetes-version 1.15.5
140
+
--vnet-subnet-id <YOUR_SUBNET_RESOURCE_ID>
141
+
```
142
+
120
143
## Upgrade a node pool
121
144
122
145
> [!NOTE]
@@ -691,18 +714,22 @@ az group deployment create \
691
714
692
715
It may take a few minutes to update your AKS cluster depending on the node pool settings and operations you define in your Resource Manager template.
693
716
694
-
## Assign a public IP per node in a node pool
717
+
## Assign a public IP per node for a node pool (preview)
695
718
696
719
> [!WARNING]
697
720
> During the preview of assigning a public IP per node, it cannot be used with the *Standard Load Balancer SKU in AKS* due to possible load balancer rules conflicting with VM provisioning. As a result of this limitation, Windows agent pools are not supported with this preview feature. While in preview you must use the *Basic Load Balancer SKU* if you need to assign a public IP per node.
698
721
699
-
AKS nodes do not require their own public IP addresses for communication. However, some scenarios may require nodes in a node pool to have their own public IP addresses. An example is gaming, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. This scenario can be achieved by registering for a separate preview feature, Node Public IP (preview).
722
+
AKS nodes do not require their own public IP addresses for communication. However, scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. An common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. This scenario can be achieved on AKS by registering for a preview feature, Node Public IP (preview).
723
+
724
+
Register for the Node Public IP feature by issuing the following Azure CLI command.
700
725
701
726
```azurecli-interactive
702
727
az feature register --name NodePublicIPPreview --namespace Microsoft.ContainerService
703
728
```
704
729
705
-
After successful registration, deploy an Azure Resource Manager template following the same instructions as [above](#manage-node-pools-using-a-resource-manager-template) and add the boolean value property `enableNodePublicIP` to agentPoolProfiles. Set the value to `true` as by default it is set as `false` if not specified. This property is a create-time only property and requires a minimum API version of 2019-06-01. This can be applied to both Linux and Windows node pools.
730
+
After successful registration, deploy an Azure Resource Manager template following the same instructions as [above](#manage-node-pools-using-a-resource-manager-template) and add the boolean property `enableNodePublicIP` to agentPoolProfiles. Set the value to `true` as by default it is set as `false` if not specified.
731
+
732
+
This property is a create-time only property and requires a minimum API version of 2019-06-01. This can be applied to both Linux and Windows node pools.
Copy file name to clipboardExpand all lines: articles/cosmos-db/audit-control-plane-logs.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -42,7 +42,7 @@ You can also store the logs in a storage account or stream to an event hub. This
42
42
After you turn on logging, use the following steps to track down operations for a specific account:
43
43
44
44
1. Sign into [Azure portal](https://portal.azure.com).
45
-
1. Open the **Monitor** tab from the lefthand navigation and then select the **Logs** pane. It opens a UI where you can easily run queries with that specific account in scope. Run the following query to view control plane logs:
45
+
1. Open the **Monitor** tab from the left-hand navigation and then select the **Logs** pane. It opens a UI where you can easily run queries with that specific account in scope. Run the following query to view control plane logs:
46
46
47
47
```kusto
48
48
AzureDiagnostics
@@ -60,7 +60,7 @@ The following screenshots capture logs when throughput of a Cassandra table is u
60
60
61
61
## Identify the identity associated to a specific operation
62
62
63
-
If you want to debug further, you can identify a specific operation in the **Activity log** by using the Activity ID or by the timestamp of the operation. Timestamp is used for some Resource Manager clients where the activity ID is not explicitly passed. The Activity log gives details about the identity with which the operation was initiated. The following screenshot shows ho to use the activity ID and find the operations associated with it in the Activity log:
63
+
If you want to debug further, you can identify a specific operation in the **Activity log** by using the Activity ID or by the timestamp of the operation. Timestamp is used for some Resource Manager clients where the activity ID is not explicitly passed. The Activity log gives details about the identity with which the operation was initiated. The following screenshot shows how to use the activity ID and find the operations associated with it in the Activity log:
64
64
65
65

Copy file name to clipboardExpand all lines: articles/iot-edge/tutorial-deploy-function.md
-3Lines changed: 0 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,9 +28,6 @@ You can use Azure Functions to deploy code that implements your business logic d
28
28

29
29
</center>
30
30
31
-
>[!NOTE]
32
-
>Azure Function modules on Azure IoT Edge are in [public preview](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
33
-
34
31
The Azure function that you create in this tutorial filters the temperature data that's generated by your device. The function only sends messages upstream to Azure IoT Hub when the temperature is above a specified threshold.
0 commit comments