-
Notifications
You must be signed in to change notification settings - Fork 10
Description
The Confidential Cluster Operator is responsible for configuring the trustee and ensuring that secrets are available following successful attestation.
On first boot, a node attests itself and, upon success, receives a password from Trustee. This password is used to encrypt the root disk. On subsequent boots, the node performs attestation again to retrieve the same password for disk decryption.
To ensure the trustee returns the correct secret, each node must present a unique identifier during attestation. This identifier is used to match the node to its corresponding password.
The password used for disk encryption can be generated at different stages:
Option 1: Password Generated at Machine Object Creation
In this approach, the password is created as soon as the operator detects a new Machine object. The operator extracts an identifier (e.g., IP address or hostname) from the object, generates the password, and associates it with that identifier. During attestation, the node must present the same identifier to retrieve the correct secret.
This option correspond to the RATS Background-Check model.
Pros:
- Simple design.
- Direct correlation between the Machine object and the identifier.
Cons:
- IP address or hostname is managed by the MCO (Machine Config Operator), not the Confidential Cluster Operator.
- This information may not be available early enough when needed.
Option 2: Password Generated After Successful First Attestation
In this approach, the password and identifier are generated and registered after a successful firstboot attestation. The node receives the identifier and password at that time, and reuses the identifier for future attestations to retrieve the same secret.
This model is described as a combination of the background-check model and the password model where we can use the attestation result to retrieve the resource from a separate rely party.
Pros:
- Decouples the operator from the MCO, reducing dependency on external timing or data.
Cons:
- More complex
- Slightly slower, since password generation occurs during attestation.
- If an external secret store is used, it may introduce latency.
- Requires a mechanism to associate the attesting node with its corresponding Kubernetes object (for deletion/update tracking and lifecycle management).
- we need a second url to contact the cluster operator service to generate the id and password