Skip to content

Commit 3de2122

Browse files
authored
Merge pull request #269845 from dcurwin/wi-209061-multicloud-march21-2024
Threat detection Multi-Cloud GA Containers
2 parents 5507552 + 8b4ee41 commit 3de2122

14 files changed

+82
-19
lines changed

articles/defender-for-cloud/defender-for-containers-architecture.md

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
---
22
title: Container security architecture
3-
description: Learn about the architecture of Microsoft Defender for Containers for each container platform
3+
description: Learn about the architecture of Microsoft Defender for Containers for the Azure, AWS, GCP, and on-premises container platform
44
author: dcurwin
55
ms.author: dacurwin
6-
ms.topic: overview
6+
ms.topic: conceptual
77
ms.date: 01/10/2024
8+
# customer intent: As a developer, I want to understand the container security architecture of Microsoft Defender for Containers so that I can implement it effectively.
89
---
910

1011
# Defender for Containers architecture
@@ -78,6 +79,9 @@ When you enable the agentless discovery for Kubernetes extension, the following
7879
- **Discover**: Using the system assigned identity, Defender for Cloud performs a discovery of the AKS clusters in your environment using API calls to the API server of AKS.
7980
- **Bind**: Upon discovery of an AKS cluster, Defender for Cloud performs an AKS bind operation by creating a `ClusterRoleBinding` between the created identity and the Kubernetes `ClusterRole` *aks:trustedaccessrole:defender-containers:microsoft-defender-operator*. The `ClusterRole` is visible via API and gives Defender for Cloud data plane read permission inside the cluster.
8081

82+
> [!NOTE]
83+
> The copied snapshot remains in the same region as the cluster.
84+
8185
## [**On-premises / IaaS (Arc)**](#tab/defender-for-container-arch-arc)
8286

8387
### Architecture diagram of Defender for Cloud and Arc-enabled Kubernetes clusters
@@ -88,7 +92,7 @@ These components are required in order to receive the full protection offered by
8892

8993
- **Defender sensor**: The DaemonSet that is deployed on each node, collects host signals using [eBPF technology](https://ebpf.io/) and Kubernetes audit logs, to provide runtime protection. The sensor is registered with a Log Analytics workspace, and used as a data pipeline. However, the audit log data isn't stored in the Log Analytics workspace. The Defender sensor is deployed as an Arc-enabled Kubernetes extension.
9094

91-
- **Azure Policy for Kubernetes**: A pod that extends the open-source [Gatekeeper v3](https://github.com/open-policy-agent/gatekeeper) and registers as a web hook to Kubernetes admission control making it possible to apply at-scale enforcements, and safeguards on your clusters in a centralized, consistent manner. The Azure Policy for Kubernetes pod is deployed as an Arc-enabled Kubernetes extension. It's only installed on one node in the cluster. For more information, see [Protect your Kubernetes workloads](kubernetes-workload-protections.md) and [Understand Azure Policy for Kubernetes clusters](../governance/policy/concepts/policy-for-kubernetes.md).
95+
- **Azure Policy for Kubernetes**: A pod that extends the open-source [Gatekeeper v3](https://github.com/open-policy-agent/gatekeeper) and registers as a web hook to Kubernetes admission control making it possible to apply at-scale enforcements, and safeguards on your clusters in a centralized, consistent manner. It's only installed on one node in the cluster. For more information, see [Protect your Kubernetes workloads](kubernetes-workload-protections.md) and [Understand Azure Policy for Kubernetes clusters](../governance/policy/concepts/policy-for-kubernetes.md).
9296

9397
> [!NOTE]
9498
> Defender for Containers support for Arc-enabled Kubernetes clusters is a preview feature.
@@ -106,9 +110,6 @@ When Defender for Cloud protects a cluster hosted in Elastic Kubernetes Service,
106110
- **Defender sensor**: The DaemonSet that is deployed on each node, collects signals from hosts using [eBPF technology](https://ebpf.io/), and provides runtime protection. The sensor is registered with a Log Analytics workspace, and used as a data pipeline. However, the audit log data isn't stored in the Log Analytics workspace. The Defender sensor is deployed as an Arc-enabled Kubernetes extension.
107111
- **Azure Policy for Kubernetes**: A pod that extends the open-source [Gatekeeper v3](https://github.com/open-policy-agent/gatekeeper) and registers as a web hook to Kubernetes admission control making it possible to apply at-scale enforcements, and safeguards on your clusters in a centralized, consistent manner. The Azure Policy for Kubernetes pod is deployed as an Arc-enabled Kubernetes extension. It's only installed on one node in the cluster. For more information, see [Protect your Kubernetes workloads](kubernetes-workload-protections.md) and [Understand Azure Policy for Kubernetes clusters](../governance/policy/concepts/policy-for-kubernetes.md).
108112

109-
> [!NOTE]
110-
> Defender for Containers support for AWS EKS clusters is a preview feature.
111-
112113
:::image type="content" source="./media/defender-for-containers/architecture-eks-cluster.png" alt-text="Diagram of high-level architecture of the interaction between Microsoft Defender for Containers, Amazon Web Services' EKS clusters, Azure Arc-enabled Kubernetes, and Azure Policy." lightbox="./media/defender-for-containers/architecture-eks-cluster.png":::
113114

114115
### How does agentless discovery for Kubernetes in AWS work?
@@ -127,6 +128,9 @@ When you enable the agentless discovery for Kubernetes extension, the following
127128

128129
- **Discover**: Using the system assigned identity, Defender for Cloud performs a discovery of the EKS clusters in your environment using API calls to the API server of EKS.
129130

131+
> [!NOTE]
132+
> The copied snapshot remains in the same region as the cluster.
133+
130134
## [**GCP (GKE)**](#tab/defender-for-container-gke)
131135

132136
### Architecture diagram of Defender for Cloud and GKE clusters
@@ -135,13 +139,10 @@ When Defender for Cloud protects a cluster hosted in Google Kubernetes Engine, t
135139

136140
- **[Kubernetes audit logs](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/)**[GCP Cloud Logging](https://cloud.google.com/logging/) enables, and collects audit log data through an agentless collector, and sends the collected information to the Microsoft Defender for Cloud backend for further analysis.
137141

138-
- **[Azure Arc-enabled Kubernetes](../azure-arc/kubernetes/overview.md)** - Azure Arc-enabled Kubernetes - A sensor based solution, installed on one node in the cluster, that connects your clusters to Defender for Cloud. Defender for Cloud is then able to deploy the following two agents as [Arc extensions](../azure-arc/kubernetes/extensions.md):
139-
- **Defender sensor**: The DaemonSet that is deployed on each node, collects signals from hosts using [eBPF technology](https://ebpf.io/), and provides runtime protection. The sensor is registered with a Log Analytics workspace, and used as a data pipeline. However, the audit log data isn't stored in the Log Analytics workspace. The Defender sensor is deployed as an Arc-enabled Kubernetes extension.
142+
- **[Azure Arc-enabled Kubernetes](../azure-arc/kubernetes/overview.md)** - Azure Arc-enabled Kubernetes - A sensor based solution, installed on one node in the cluster, that enables your clusters to connect to Defender for Cloud. Defender for Cloud is then able to deploy the following two agents as [Arc extensions](../azure-arc/kubernetes/extensions.md):
143+
- **Defender sensor**: The DaemonSet that is deployed on each node, collects signals from hosts using [eBPF technology](https://ebpf.io/), and provides runtime protection. The sensor is registered with a Log Analytics workspace, and used as a data pipeline. However, the audit log data isn't stored in the Log Analytics workspace.
140144
- **Azure Policy for Kubernetes**: A pod that extends the open-source [Gatekeeper v3](https://github.com/open-policy-agent/gatekeeper) and registers as a web hook to Kubernetes admission control making it possible to apply at-scale enforcements, and safeguards on your clusters in a centralized, consistent manner. The Azure Policy for Kubernetes pod is deployed as an Arc-enabled Kubernetes extension. It only needs to be installed on one node in the cluster. For more information, see [Protect your Kubernetes workloads](kubernetes-workload-protections.md) and [Understand Azure Policy for Kubernetes clusters](../governance/policy/concepts/policy-for-kubernetes.md).
141145

142-
> [!NOTE]
143-
> Defender for Containers support for GCP GKE clusters is a preview feature.
144-
145146
:::image type="content" source="./media/defender-for-containers/architecture-gke.png" alt-text="Diagram of high-level architecture of the interaction between Microsoft Defender for Containers, Google GKE clusters, Azure Arc-enabled Kubernetes, and Azure Policy." lightbox="./media/defender-for-containers/architecture-gke.png":::
146147

147148
### How does agentless discovery for Kubernetes in GCP work?
@@ -160,6 +161,9 @@ When you enable the agentless discovery for Kubernetes extension, the following
160161

161162
- **Discover**: Using the system assigned identity, Defender for Cloud performs a discovery of the GKE clusters in your environment using API calls to the API server of GKE.
162163

164+
> [!NOTE]
165+
> The copied snapshot remains in the same region as the cluster.
166+
163167
---
164168

165169
## Next steps

articles/defender-for-cloud/defender-for-containers-enable.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ You can also learn more by watching these videos from the Defender for Cloud in
3737
- [Microsoft Defender for Containers in a multicloud environment](episode-nine.md)
3838
- [Protect Containers in GCP with Defender for Containers](episode-ten.md)
3939

40-
::: zone pivot="defender-for-container-arc,defender-for-container-eks,defender-for-container-gke"
40+
::: zone pivot="defender-for-container-arc"
4141
> [!NOTE]
42-
> Defender for Containers' support for Arc-enabled Kubernetes clusters, AWS EKS, and GCP GKE is a preview feature. The preview feature is available on a self-service, opt-in basis.
42+
> Defender for Containers' support for Arc-enabled Kubernetes clusters is a preview feature. The preview feature is available on a self-service, opt-in basis.
4343
>
4444
> Previews are provided "as is" and "as available" and are excluded from the service level agreements and limited warranty.
4545
>

articles/defender-for-cloud/includes/defender-for-containers-enable-plan-eks.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,28 @@ To protect your EKS clusters, enable the Containers plan on the relevant account
8383
To view the alerts and recommendations for your EKS clusters, use the filters on the alerts, recommendations, and inventory pages to filter by resource type **AWS EKS cluster**.
8484
8585
:::image type="content" source="../media/defender-for-kubernetes-intro/view-alerts-for-aws-eks-clusters.png" alt-text="Screenshot of how to use filters on Microsoft Defender for Cloud's security alerts page to view alerts related to AWS EKS clusters." lightbox="../media/defender-for-kubernetes-intro/view-alerts-for-aws-eks-clusters.png":::
86+
87+
## Deploying the Defender sensor
88+
89+
To deploy the Defender sensor on your AWS clusters, follow these steps:
90+
91+
1. Go to **Microsoft Defender for Cloud** -> **Environment settings** -> **Add environment** -> **Amazon Web Services**.
92+
93+
:::image type="content" source="../media/defender-for-kubernetes-intro/add-aws-environment.png" alt-text="Screenshot of how to add an AWS environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/add-aws-environment.png":::
94+
95+
1. Fill in the account details.
96+
97+
:::image type="content" source="../media/defender-for-kubernetes-intro/add-aws-account-details.png" alt-text="Screenshot of the form to fill in the account details for an AWS environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/add-aws-account-details.png":::
98+
99+
1. Go to **Select plans**, open the Containers plan and make sure **Auto provision Defender's sensor for Azure Arc** is set to on.
100+
101+
:::image type="content" source="../media/defender-for-kubernetes-intro/enable-sensor-for-azure-arc.png" alt-text="Screenshot of how to enable the Defender sensor for Azure Arc in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/enable-sensor-for-azure-arc.png":::
102+
103+
1. Go to **Configure access** and follow the steps there.
104+
105+
:::image type="content" source="../media/defender-for-kubernetes-intro/configure-access.png" alt-text="Screenshot of how to configure access for an AWS environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/configure-access.png":::
106+
107+
1. Once the Cloud Formation template was deployed successfully, select **Create**.
108+
109+
> [!NOTE]
110+
> You can exclude a specific AWS cluster from autoprovisioning. For sensor deployment, apply the `ms_defender_container_exclude_agents` tag on the resource with the value `true`. For agentless deployment, apply the `ms_defender_container_exclude_agentless` tag on the resource with the value `true`.

articles/defender-for-cloud/includes/defender-for-containers-enable-plan-gke.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,3 +117,28 @@ There are 2 dedicated Defender for Cloud recommendations you can use to install
117117
1. In the Value dropdown menu, select **GCP GKE Cluster**.
118118

119119
1. Select **Ok**.
120+
121+
## Deploying the Defender sensor
122+
123+
To deploy the Defender sensor on your GCP clusters, follow these steps:
124+
125+
1. Go to **Microsoft Defender for Cloud** -> **Environment settings** -> **Add environment** -> **Google Cloud Platform**.
126+
127+
:::image type="content" source="../media/defender-for-kubernetes-intro/add-gcp-environment.png" alt-text="Screenshot of how to add a GCP environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/add-gcp-environment.png":::
128+
129+
1. Fill in the account details.
130+
131+
:::image type="content" source="../media/defender-for-kubernetes-intro/add-gcp-account-details.png" alt-text="Screenshot of the form to fill in the account details for a GCP environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/add-gcp-account-details.png":::
132+
133+
1. Go to **Select plans**, open the Containers plan, and make sure **Auto provision Defender's sensor for Azure Arc** is set to on.
134+
135+
:::image type="content" source="../media/defender-for-kubernetes-intro/enable-sensor-for-azure-arc-gcp.png" alt-text="Screenshot of how to enable the Defender sensor for Azure Arc in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/enable-sensor-for-azure-arc-gcp.png":::
136+
137+
1. Go to **Configure access** and follow the steps there.
138+
139+
:::image type="content" source="../media/defender-for-kubernetes-intro/configure-access-gcp.png" alt-text="Screenshot of how to configure access for a GCP environment in Microsoft Defender for Cloud." lightbox="../media/defender-for-kubernetes-intro/configure-access-gcp.png":::
140+
141+
1. After the gcloud script ran successfully, select **Create**.
142+
143+
> [!NOTE]
144+
> You can exclude a specific GCP cluster from autoprovisioning. For sensor deployment, apply the `ms_defender_container_exclude_agents` label on the resource with the value `true`. For agentless deployment, apply the `ms_defender_container_exclude_agentless` label on the resource with the value `true`.
42.8 KB
Loading
104 KB
Loading
108 KB
Loading
266 KB
Loading
225 KB
Loading
229 KB
Loading

0 commit comments

Comments
 (0)