Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: Research and Understanding Confidential Containers #337

Open
SammyOina opened this issue Dec 16, 2024 · 2 comments
Open

Feature: Research and Understanding Confidential Containers #337

SammyOina opened this issue Dec 16, 2024 · 2 comments
Assignees

Comments

@SammyOina
Copy link
Contributor

Is your feature request related to a problem? Please describe.

Limited team knowledge about Confidential Containers (CC) and their core components, which is crucial for secure containerized deployments.

Describe the feature you are requesting, as well as the possible use case(s) for it.

Comprehensive research and team alignment on Confidential Containers:

  • Conduct in-depth review of CC documentation
  • Analyze whitepapers from Intel, AMD, and Arm on Confidential Computing
  • Prepare a team presentation to ensure shared understanding
  • Document key findings and potential implications for our projects

Indicate the importance of this feature to you.

Must-have

Anything else?

  • Prepare a summary document with key insights
  • Identify potential challenges and opportunities
@WashingtonKK
Copy link
Contributor

Confidential Containers Overview

Confidential containers provide cloud-native confidential computing by leveraging Trusted Execution Environments (TEEs). Their primary goal is to integrate existing TEE infrastructure with cloud-native technologies, creating a trust model that separates Cloud Service Providers (CSPs) from guest applications.

Kata Containers and Confidential Containers

Kata Containers utilize TEEs to ensure container isolation. Confidential containers build on this foundation to enable pod-level support for confidential computing in cloud-native architectures.

Cloud-Native Execution Environment

Confidential containers aim to:

  1. Prevent CSPs from accessing sensitive workloads by encrypting them.
  2. Enable secure orchestration of workloads within or across TEE boundaries.

image

Confidential Containers Stack

The Confidential Containers stack consists of:
• A Kubernetes pod configured with a Confidential Containers Runtime Class tailored to the hardware in use.
• Workloads executed inside the TEE, with access orchestrated securely.

image

Requirements

  1. Confidential Containers Operator: To install and manage Confidential Containers (CoCo) and runtime classes.
  2. Image Build Service: To build confidential containers or VM images for end users.
  3. Image Registry: To store encrypted container images.
  4. Key Management Service: To manage encryption keys.
  5. Key Broker Service: To facilitate secure key provisioning.
  6. Attestation Service: To validate the integrity of workloads.

Workflow

image

Pre-Workload Steps:

  1. Build and encrypt container images.
  2. Push encrypted images to a container registry.
  3. Install and provision the Confidential Containers Operator, including required runtime classes.
  4. Deploy workloads using Kubernetes (e.g., kubectl apply -f workload.yaml).
  5. Ensure Kubernetes schedules workloads on nodes capable of running CoCo.

Running the Workload:

  1. The runtime on the host starts the VM TEE.
  2. The enclave agent performs the following tasks:
    o Conducts remote attestation.
    o Retrieves keys to decrypt container images.
    o Downloads container images from the registry.
    o Decrypts container images.
    o Starts container workloads.

Flavours

  1. Peer Pods Approach:
    o Enables the creation of Kata Containers on any machine without requiring bare-metal worker nodes or nested virtualization.
    o Leverages Confidential Virtual Machines (CVMs).

image

  1. Kata Containers Runtime:
    o Provides seamless integration with Confidential Containers.

image

Integration with confidential containers

Key Participants:

  1. Admin:
    o Sets up the Confidential Containers Operator and provisions pods to isolate workloads within TEEs.
    o Configures the Key Broker and Key Management Service.
  2. UI/User:
    o Defines the computation and selects the required environment or provides a Dockerfile.
    o Optionally provides computation details, including the image location and encryption keys.
  3. Backend/Image Management:
    o Creates and encrypts Docker images based on user input.
    o Uploads encrypted images to the registry.
    o Supports using pre-existing Docker images provided by users.
  4. Agent/Manager/Orchestrator:
    o Operates inside the enclave.
    o Fetches container images from the registry.
    o Executes each computation as a separate container within the Kubernetes pod.

Sample integration architecture

image

@WashingtonKK
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants