-
Notifications
You must be signed in to change notification settings - Fork 37
Update docs for coco GA release #365
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
base: main
Are you sure you want to change the base?
Changes from all commits
05a2e5a
37b511b
4a9168f
e47d01c
d0e2409
f7d1d65
a90d586
85ec42e
c4d12e3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| .. _attestation: | ||
|
|
||
| Attestation | ||
| =========== | ||
|
|
||
a-mccarthy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| The NVIDIA Reference Architecture for Confidential Containers has remote attestation support for the CPU and GPU built-in. | ||
| Attestation allows a workload owner to cryptographically validate the guest Trusted Computing Base (TCB). | ||
| This process is facilitated by components inside the guest root file system. | ||
| When a secret resource is required inside the confidential guest (to decrypt a container image, or to decrypt a model, for instance), the guest components detect which CPU and GPU enclaves are in use and collect hardware evidence from them. | ||
| This evidence is sent to a remote verifier/broker, for example Trustee, which evaluates the evidence and conditionally releases secrets. | ||
|
|
||
| Features that depend on secrets depend on attestation. | ||
a-mccarthy marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| These features include: | ||
|
|
||
| * Pulling encrypted images | ||
| * Authenticated container registry support | ||
| * Sealed secrets | ||
| * Direct workload requests for secrets | ||
|
|
||
| To use these features, a remote verifier/broker, like Trustee, must first be provisioned in some trusted environment. | ||
|
|
||
| Configure Remote Verifier/Broker (Trustee) | ||
| ------------------------------------------ | ||
|
|
||
| Follow the `upstream Trustee documentation <https://confidentialcontainers.org/docs/attestation/installation/>`_ to provision a Trustee instance in a trusted environment with one adjustment. | ||
| To enable the remote NVIDIA verifier, Trustee must be configured to use the remote NVIDIA verifier, which uses the NVIDIA Remote Attestation Service (NRAS) to evaluate the evidence. This is not enabled by default. | ||
|
|
||
| To enable the remote verifier, add the following lines to the Trustee configuration file:: | ||
|
|
||
| [attestation_service.verifier_config.nvidia_verifier] | ||
| type = "Remote" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is no longer needed. Remote verifier is set by default for docker compose. |
||
|
|
||
| If you are using the docker compose Trustee deployment, add the verifier type to ``kbs/config/as-config.json`` prior to starting Trustee. | ||
|
|
||
| Following the upstream Trustee documentation, add the following annotation to the workload to point the guest components to Trustee: | ||
|
|
||
| .. code-block:: yaml | ||
|
|
||
| io.katacontainers.config.hypervisor.kernel_params: "agent.aa_kbc_params=cc_kbc::http://<kbs-ip>:<kbs-port>" | ||
|
|
||
| Now, the guest can be used with attestation. For more information on how to provision Trustee with resources and policies, refer to the `Trustee documentation <https://confidentialcontainers.org/docs/attestation/>`_. | ||
|
|
||
| During attestation, the GPU will be set to ready. As such, when running a workload that does attestation, it is not necessary to set the ``nvrc.smi.srs=1`` kernel parameters. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is no longer true. You need to set |
||
|
|
||
| If attestation does not succeed, debugging is best done through the Trustee log. Debug mode can be enabled by setting the ``nvrc.smi.srs=1`` and ``RUST_LOG=debug`` kernel parameters in the Trustee environment. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit, here I would not mention This parameter transitions the GPU into ready state. This is done automatically during attestation. I don't think we need to set this to debug attestation failures There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, this has nothing to do with debugging, but note that we do need this to be set in general now. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think nvrc.smi.srs only applies to the pod / coco uvm - it's saying set ready state true for the GPU. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes. Also, |
||
Uh oh!
There was an error while loading. Please reload this page.