From b31df102c5414fa2a5ba09c8f96bd69a902ae84c Mon Sep 17 00:00:00 2001 From: Tobin Feldman-Fitzthum Date: Thu, 14 Nov 2024 15:43:22 -0600 Subject: [PATCH] docs: add design overview This is mostly new content covering the design of CoCo. Signed-off-by: Tobin Feldman-Fitzthum --- .../en/docs/architecture/design-overview.md | 204 ++++++++++++++++++ static/img/coco-design-diagram-1.png | Bin 0 -> 90082 bytes styles/config/vocabularies/coco/accept.txt | 7 +- 3 files changed, 209 insertions(+), 2 deletions(-) create mode 100644 content/en/docs/architecture/design-overview.md create mode 100644 static/img/coco-design-diagram-1.png diff --git a/content/en/docs/architecture/design-overview.md b/content/en/docs/architecture/design-overview.md new file mode 100644 index 0000000..a8998cb --- /dev/null +++ b/content/en/docs/architecture/design-overview.md @@ -0,0 +1,204 @@ +--- +title: Design Overview +date: 2023-01-24 +description: The basic ideas behind Confidential Containers +categories: +- architecture +tags: +- design +weight: 10 +--- + +Confidential computing projects are largely defined by what is inside the enclave and what is not. +For Confidential Containers, the enclave contains the workload pod and helper processes and daemons +that facilitate the workload pod. +Everything else, including the hypervisor, other pods, and the control plane, is outside +of the enclave and untrusted. +This division is carefully considered to balance TCB size and sharing. + +{{< figure src="/img/coco-design-diagram-1.png" alt="A diagram showing container-centeric, pod-centric, and node-centric approaches" >}} + +When trying to combine confidential computing and cloud native computing, often the first thing that comes to mind +is either to put just one container inside of an enclave, or to put an entire worker node inside of the an enclave. +This is known as container-centeric virtualization or node-centric virtualization. +Confidential Containers opts for a compromise between these approaches which avoids some of their pitfalls. +Specifically, node-centric approaches tend to have a large TCB that includes components such as the Kubelet. +This makes the attack surface of the confidential guest significantly larger. +It is also difficult to implement managed clusters in node-centric approaches because the workload runs in the +same context as the rest of the cluster. +On the other hand, container-centric approaches can support very little sharing of resources. +Sharing is a loose term, but one example is two containers that need to share information over the network. +In a container-centric approach this traffic would leave the enclave. +Protecting the traffic would add overhead and complexity. + +Confidential Containers takes a pod-centric approach which balances TCB size and sharing. +While Confidential Containers does have some daemons and processes inside the enclave, +the API of the guest is relatively small. +Furthermore the guest image is static and generic across workloads and even platforms, +making it simpler to ensure security guarantees. +At the same time, sharing between containers in the same pod is easy. +For example, the pod network namespace doesn't leave the enclave, +so containers can communicate confidentially on it without additional overhead. +These are just a few of the reasons why pod-centric virtualization seems to be the best way +to provide confidential cloud native computing. + +### Kata Containers + +Confidential Containers and Kata Containers are closely linked, but the relationship might not be obvious at first. +Kata Containers is an existing open source project that encapsulates pods inside of VMs. +Given the pod-centric design of Confidential Containers this is a perfect match. +But if Kata runs pods inside of VM, why do we need the Confidential Containers project at all? +There are crucial changes needed on top of Kata Containers to preserve confidentiality. + +#### Image Pulling + +When using Kata Containers container images are pulled on the worker node with the help of a CRI runtime like `containerd`. +The images are exposed to the guest via filesystem passthrough. +This is not suitable for confidential workloads because the container images are exposed to the untrusted host. +With Confidential Containers images are pulled and unpacked inside of the guest. +This requires additional components such as `image-rs` to be part of the guest rootfs. +These components are beyond the scope of traditional Kata deployments and live in the Confidential Containers +[guest components](https://github.com/confidential-containers/guest-components) repository. + +On the host, we use a snapshotter to pre-empt image pull and divert control flow to `image-rs` inside the guest. + +```mermaid +sequenceDiagram + kubelet->>containerd: create container + containerd->>nydus snapshotter: load container snapshot + nydus snapshotter->>image-rs: download container + kubelet->>containerd: start container + containerd->>kata shim: start container + kata shim->>kata agent: start container +``` + +The above is a simplified diagram showing the interaction of containerd, the nydus snapshotter, and image-rs. +The diagram does not show the creation of the sandbox. + +#### Attestation + +Confidential Containers also provides components inside the guest and elsewhere to facilitate attestation. +Attestation is a crucial part of confidential computing and a direct requirement of many guest operations. +For example, to unpack an encrypted container image, the guest must retrieve a secret key. +Inside the guest the `confidential-data-hub` and `attestation-agent` handle operations involving +secrets and attestation. +Again, these components are beyond the scope of traditional Kata deployments and are located in the +[guest components](https://github.com/confidential-containers/guest-components) repository. + +The CDH and AA use the KBS Protocol to communicate with an external, trusted entity. +Confidential Containers provides [Trustee](https://github.com/confidential-containers/trustee) +as an attestation service and key management engine that validates the guest TCB and releases secret resources. + +```mermaid +sequenceDiagram + workload->>CDH: request secret + CDH->>AA: get attestation token + AA->>KBS: attestation request + KBS->>AA: challenge + AA->>KBS: attestation + KBS->>AA: attestation token + AA->>CDH: attestation token + CDH->>KBS: secret request + KBS->>CDH: encrypted secret + CDH->>workload: secret +``` +The above is a somewhat simplified diagram of the attestation process. +The diagram does not show the details of how the workload interacts with the CDH. + +### Clouds and Nesting + +Most confidential computing hardware does not support nesting. +More specifically, a confidential guest cannot be started inside of a confidential guest, +and with few exceptions a confidential guest cannot be started inside of a non-confidential guest. +This poses a challenge for those who do not have access to bare metal machines +or would like to have virtual worker nodes. + +To alleviate this, Confidential Containers supports a deployment mode known as Peer Pods, +where a component called the Cloud API Adaptor takes the place of a conventional hypervisor. +Rather than starting a confidential podvm locally, the CAA reaches out to a cloud API. +Since the podvm is no longer started locally the worker node can be virtualized. +This also allows confidential containers to integrate with cloud confidential VM offerings. + +Peer Pods deployments share most of the same properties that are described in this guide. + +### Process-based Isolation + +Confidential Containers also supports SGX with enclave-cc. +Because the Kata guest cannot be run as a single process, the design of enclave-cc +is significantly different. +In fact, enclave-cc doesn't use Kata at all, but it does still represent a pod-centric approach +with some sharing between containers even as they run in separate enclaves. +enclave-cc does use some of the guest components as crates. + +### Components + +Confidential Containers integrates many components. Here is a brief overview of most the components related to the project. + +| Component | Repository | Purpose | +| --------- | ---------- | ------- | +| Operator | operator | Installs Confidential Containers | +| Kata Shim | kata-containers/kata-containers | Starts PodVM and proxies requests to Kata Agent | +| Kata Agent | kata-containers/kata-containers | Sets up and runs the workload inside of a VM | +| image-rs | guest-componenents | Downloads and unpacks container images | +| ocicrypt-rs | guest-components | Decrypts encrypted container layers | +| confidential-data-hub | guest-components | Handles secret resources | +| attestation-agent | guest-components | Attests guest | +| key-broker-service | Trustee | Coordinates attestation and secret delivery (relying party) | +| attestation-service | Trustee | Validate hardware evidence (verifier) | +| reference-value-provider-service | Trustee | Manages reference values | +| Nydus Snapshotter | containerd/nydus-snapshotter | Triggers guest image pulling | +| cloud-api-adaptor | cloud-api-adaptor | Starts PodVM in the cloud | +| agent-protocol-forwarder | cloud-api-adaptor | Forwards Kata Agent API from cloud API | + +#### Component Dependencies + +Many of the above components depend on each other either directly in the source, +during packaging, or at runtime. +The basic premise is that the operator deploys a special configuration of Kata containers +that uses a rootfs (build by the Kata CI) that includes the guest components. +This diagram shows these relationships in more detail. +The diagram does not capture runtime interactions. + +```mermaid +flowchart LR + Trustee --> Versions.yaml + Guest-Components --> Versions.yaml + Kata --> kustomization.yaml + Guest-Components .-> Client-tool + Guest-Components --> enclave-agent + enclave-cc --> kustomization.yaml + Guest-Components --> versions.yaml + Trustee --> versions.yaml + Kata --> versions.yaml + + subgraph Kata + Versions.yaml + end + subgraph Guest-Components + end + subgraph Trustee + Client-tool + end + subgraph enclave-cc + enclave-agent + end + subgraph Operator + kustomization.yaml + reqs-deploy + end + subgraph cloud-api-adaptor + versions.yaml + end +``` + + +### Workloads + +Confidential Containers provides a set of primitives for building confidential Cloud Native applications. +For instance, it allows a pod to be run inside of a confidential VM, +it handles encrypted and signed container image, sealed secrets, +and other features described in the features section. +This does not guarantee that any application run with Confidential Containers is confidential or secure. +Users deploying applications with Confidential Containers should understand the attack surface +and security applications of their workloads, focusing especially on APIs that cross the confidential +trust boundary. diff --git a/static/img/coco-design-diagram-1.png b/static/img/coco-design-diagram-1.png new file mode 100644 index 0000000000000000000000000000000000000000..481af58db0a2469a3fe336c09261deecc8a03397 GIT binary patch literal 90082 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
M-=&Y#yAc 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

J4Ku5tkVLH5F~-jh%nWW$ZAb`(mdqCOe(? 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 z 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