Skip to content

Commit d7aaa82

Browse files
authored
Merge pull request #185063 from agowdamsft/patch-10
AKS related doc changes to bring clarity
2 parents 94a5435 + 3302779 commit d7aaa82

File tree

3 files changed

+52
-10
lines changed

3 files changed

+52
-10
lines changed

articles/confidential-computing/confidential-enclave-nodes-aks-get-started.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,40 @@ spec:
167167
restartPolicy: Never
168168
backoffLimit: 0
169169
```
170+
Alternatively you can also do a node pool selection deployment for your container deployments as shown below
171+
172+
```yaml
173+
apiVersion: batch/v1
174+
kind: Job
175+
metadata:
176+
name: sgx-test
177+
spec:
178+
template:
179+
metadata:
180+
labels:
181+
app: sgx-test
182+
spec:
183+
affinity:
184+
nodeAffinity:
185+
requiredDuringSchedulingIgnoredDuringExecution:
186+
nodeSelectorTerms:
187+
- matchExpressions:
188+
- key: agentpool
189+
operator: In
190+
values:
191+
- acc # this is the name of your confidential computing nodel pool
192+
- acc_second # this is the name of your confidential computing nodel pool
193+
containers:
194+
- name: sgx-test
195+
image: oeciteam/oe-helloworld:1.0
196+
resources:
197+
limits:
198+
kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
199+
requests:
200+
kubernetes.azure.com/sgx_epc_mem_in_MiB: 10
201+
restartPolicy: "Never"
202+
backoffLimit: 0
203+
```
170204
171205
Now use the `kubectl apply` command to create a sample job that will open in a secure enclave, as shown in the following example output:
172206

articles/confidential-computing/confidential-nodes-aks-addon.md

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Azure Kubernetes Service (AKS) provides a plugin for Azure confidential computin
1919

2020
The SGX Device plugin implements the Kubernetes device plugin interface for Enclave Page Cache (EPC) memory. In effect, this plugin makes EPC memory another resource type in Kubernetes. Users can specify limits on EPC just like other resources. Apart from the scheduling function, the device plugin helps assign SGX device driver permissions to confidential workload containers. [A sample implementation of the EPC memory-based deployment](https://github.com/Azure-Samples/confidential-computing/blob/main/containersamples/helloworld/helm/templates/helloworld.yaml) (`kubernetes.azure.com/sgx_epc_mem_in_MiB`) is available.
2121

22-
## PSM with SGX quote helper
22+
## PSW with SGX quote helper
2323

2424
Enclave applications that do remote attestation need to generate a quote. The quote provides cryptographic proof of the identity and the state of the application, along with the enclave's host environment. Quote generation relies on certain trusted software components from Intel, which are part of the SGX Platform Software Components (PSW/DCAP). This PSW is packaged as a daemon set that runs per node. You can use the PSW when requesting attestation quote from enclave apps. Using the AKS provided service helps better maintain the compatibility between the PSW and other SW components in the host. Read the feature details below.
2525

@@ -32,9 +32,9 @@ Enclave applications that do remote attestation need to generate a quote. The qu
3232
3333
Intel supports two attestation modes to run the quote generation. For how to choose which type, see the [attestation type differences](#attestation-type-differences).
3434

35-
- **in-proc**: hosts the trusted software components inside the enclave application process
35+
- **in-proc**: hosts the trusted software components inside the enclave application process. This method is useful when you are performing local attestation (between 2 enclave apps in a single VM node)
3636

37-
- **out-of-proc**: hosts the trusted software components outside of the enclave application.
37+
- **out-of-proc**: hosts the trusted software components outside of the enclave application. This is a preferred method when performing remote attestation.
3838

3939
SGX applications built using Open Enclave SDK by default use in-proc attestation mode. SGX-based applications allow out-of-proc and require extra hosting. These applications expose the required components such as Architectural Enclave Service Manager (AESM), external to the application.
4040

@@ -56,7 +56,7 @@ You don't have to check for backward compatibility with PSW and DCAP. The provid
5656

5757
### Out-of-proc attestation for confidential workloads
5858

59-
The out-of-proc attestation model works for confidential workloads. The quote requestor and quote generation are executed separately, but on the same physical machine. The quote generation happens in a centralized manner and serves requests for QUOTES from all entities. Properly define the interface, and make the interface discoverable for any entity to request quotes.
59+
The out-of-proc attestation model works for confidential workloads. The quote requestor and quote generation are executed separately, but on the same physical machine. The quote generation happens in a centralized manner and serves requests for QUOTES from all entities. Properly define the interface and make the interface discoverable for any entity to request quotes.
6060

6161
![Diagram of quote requestor and quote generation interface.](./media/confidential-nodes-out-of-proc-attestation/aesmmanager.png)
6262

@@ -66,6 +66,9 @@ Each container needs to opt in to use out-of-proc quote generation by setting th
6666

6767
An application can still use the in-proc attestation as before. However, you can't simultaneously use both in-proc and out-of-proc within an application. The out-of-proc infrastructure is available by default and consumes resources.
6868

69+
> [!NOTE]
70+
> If you are using a Intel SGX wrapper software(OSS/ISV) to run you unmodified containers the attestation interaction with hardware is typically handled for your higher level apps. Please refer to the attestation implementation per provider.
71+
6972
### Sample implementation
7073

7174
The below docker file is a sample for an Open Enclave-based application. Set the `SGX_AESM_ADDR=1` environment variable in the Docker file. Or, set the variable in the deployment file. Follow this sample for the Docker file and deployment YAML details.

articles/confidential-computing/confidential-nodes-aks-overview.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ ms.custom: ignite-fall-2021
1313

1414
# Confidential computing nodes on Azure Kubernetes Service
1515

16-
[Azure confidential computing](overview.md) allows you to protect your sensitive data while it's in use. The underlying confidential computing infrastructure protects this data from other applications, administrators, and cloud providers with a hardware backed trusted execution container environments. Adding confidential computing nodes allow you to target container application to run in an isolated, hardware protected and attestable environment.
16+
[Azure confidential computing](overview.md) allows you to protect your sensitive data while it's in use. The underlying confidential computing infrastructure protects this data from other applications, administrators, and cloud providers with a hardware backed trusted execution container environments. Adding confidential computing nodes allow you to target container application to run in an isolated, hardware protected, integrity protected in an attestable environment.
1717

1818
## Overview
1919

20-
Azure Kubernetes Service (AKS) supports adding [DCsv2 confidential computing nodes](confidential-computing-enclaves.md) powered by Intel SGX. These nodes allow you to run sensitive workloads within a hardware-based trusted execution environment (TEE). TEE’s allow user-level code from containers to allocate private regions of memory to execute the code with CPU directly. These private memory regions that execute directly with CPU are called enclaves. Enclaves help protect the data confidentiality, data integrity and code integrity from other processes running on the same nodes. The Intel SGX execution model also removes the intermediate layers of Guest OS, Host OS and Hypervisor thus reducing the attack surface area. The *hardware based per container isolated execution* model in a node allows applications to directly execute with the CPU, while keeping the special block of memory encrypted per container. Confidential computing nodes with confidential containers are a great addition to your zero trust security planning and defense-in-depth container strategy.
20+
Azure Kubernetes Service (AKS) supports adding [DCsv2 confidential computing nodes](confidential-computing-enclaves.md) powered by Intel SGX. These nodes allow you to run sensitive workloads within a hardware-based trusted execution environment (TEE). TEEs allow user-level code from containers to allocate private regions of memory to execute the code with CPU directly. These private memory regions that execute directly with CPU are called enclaves. Enclaves help protect the data confidentiality, data integrity and code integrity from other processes running on the same nodes, as well as Azure operator. The Intel SGX execution model also removes the intermediate layers of Guest OS, Host OS and Hypervisor thus reducing the attack surface area. The *hardware based per container isolated execution* model in a node allows applications to directly execute with the CPU, while keeping the special block of memory encrypted per container. Confidential computing nodes with confidential containers are a great addition to your zero-trust security planning and defense-in-depth container strategy.
2121

2222
:::image type="content" source="./media/confidential-nodes-aks-overview/sgx-aks-node.png" alt-text="Graphic of AKS Confidential Compute Node, showing confidential containers with code and data secured inside.":::
2323

@@ -31,12 +31,17 @@ Azure Kubernetes Service (AKS) supports adding [DCsv2 confidential computing nod
3131
- Linux Containers support through Ubuntu 18.04 Gen 2 VM worker nodes
3232

3333
## Confidential Computing add-on for AKS
34-
The add-on feature enables extra capability on AKS when running confidential computing node pools on the cluster. This add-on enables the features below.
34+
The add-on feature enables extra capability on AKS when running confidential computing Intel SGX capable node pools on the cluster. "Confcon" add-on on AKS enables the features below.
3535

3636
#### Azure Device Plugin for Intel SGX <a id="sgx-plugin"></a>
3737

38-
The device plugin implements the Kubernetes device plugin interface for Encrypted Page Cache (EPC) memory and exposes the device drivers from the nodes. Effectively, this plugin makes EPC memory as another resource type in Kubernetes. Users can specify limits on this resource just as other resources. Apart from the scheduling function, the device plugin helps assign Intel SGX device driver permissions to confidential workload containers. With this plugin developer can avoid mounting the Intel SGX driver volumes in the deployment files. A sample implementation of the EPC memory-based deployment (`kubernetes.azure.com/sgx_epc_mem_in_MiB`) sample is [here](https://github.com/Azure-Samples/confidential-computing/blob/main/containersamples/helloworld/helm/templates/helloworld.yaml)
38+
The device plugin implements the Kubernetes device plugin interface for Encrypted Page Cache (EPC) memory and exposes the device drivers from the nodes. Effectively, this plugin makes EPC memory as another resource type in Kubernetes. Users can specify limits on this resource just as other resources. Apart from the scheduling function, the device plugin helps assign Intel SGX device driver permissions to confidential container deployments. With this plugin developer can avoid mounting the Intel SGX driver volumes in the deployment files. This add-on on AKS clusters run as a daemonset per VM node that is of Intel SGX capable. A sample implementation of the EPC memory-based deployment (`kubernetes.azure.com/sgx_epc_mem_in_MiB`) sample is [here](https://github.com/Azure-Samples/confidential-computing/blob/main/containersamples/helloworld/helm/templates/helloworld.yaml)
3939

40+
#### Intel SGX Quote Helper with Platform Software Components <a id="sgx-plugin"></a>
41+
42+
As part of the plugin another daemonset is deployed per VM node that are of Intel SGX capable on the AKS cluster. This daemonset helps your confidential container apps when a remote out-of-proc attestation request is invoked.
43+
44+
Enclave applications that do remote attestation need to generate a quote. The quote provides cryptographic proof of the identity and the state of the application, along with the enclave's host environment. Quote generation relies on certain trusted software components from Intel, which are part of the SGX Platform Software Components (PSW/DCAP). This PSW is packaged as a daemon set that runs per node. You can use the PSW when requesting attestation quote from enclave apps. Using the AKS provided service helps better maintain the compatibility between the PSW and other SW components in the host with Intel SGX drivers that are part of the AKS VM nodes. Read more on how your apps can use this daemonset without having to package the attestation primitives as part of your container deployments [More here](confidential-nodes-aks-addon.md#psw-with-sgx-quote-helper)
4045

4146
## Programming models
4247

@@ -53,9 +58,9 @@ Confidential computing nodes on AKS also support containers that are programmed
5358

5459
[Quick starter confidential container samples](https://github.com/Azure-Samples/confidential-container-samples)
5560

56-
[Intel SGX Confidential VM's - DCsv2 SKU List](../virtual-machines/dcv2-series.md)
61+
[Intel SGX Confidential VMs - DCsv2 SKU List](../virtual-machines/dcv2-series.md)
5762

58-
[Intel SGX Confidential VM's - DCsv3 SKU List](../virtual-machines/dcv3-series.md)
63+
[Intel SGX Confidential VMs - DCsv3 SKU List](../virtual-machines/dcv3-series.md)
5964

6065
[Defense-in-depth with confidential containers webinar session](https://www.youtube.com/watch?reload=9&v=FYZxtHI_Or0&feature=youtu.be)
6166

0 commit comments

Comments
 (0)