Skip to content

coco docs: clarify platforms page and agent policy - #479

Open
mikemckiernan wants to merge 1 commit into
NVIDIA:mainfrom
manuelh-dev:mahuber/coco-agent-policy-and-platforms
Open

coco docs: clarify platforms page and agent policy#479
mikemckiernan wants to merge 1 commit into
NVIDIA:mainfrom
manuelh-dev:mahuber/coco-agent-policy-and-platforms

Conversation

@mikemckiernan

Copy link
Copy Markdown
Member

Rename the supported platforms page to include software components, and document attaching a Kata agent security policy for attested production workloads.

@github-actions

Copy link
Copy Markdown

Documentation preview

https://nvidia.github.io/cloud-native-docs/review/pr-479

@mikemckiernan mikemckiernan left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few nits, PLMK if I'm within horseshoe and hand-grenade distance.

The Kata agent runs inside the guest virtual machine and manages the container lifecycle.
Because the Kata shim on the host is outside the TEE, the host can still issue Agent API calls
into the guest unless you restrict them.
An agent security policy is a Rego policy that the agent enforces so that only the operations

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sugg: newly introduced or defined terms are italicized on first use--that's the "hey, this bit is important" signal.

Suggested change
An agent security policy is a Rego policy that the agent enforces so that only the operations
An _agent security policy_ is a Rego policy that the agent enforces so that only the operations

`Agent Policy generation tool <https://github.com/kata-containers/kata-containers/blob/main/src/tools/genpolicy/README.md>`_
documentation.

#. Run ``genpolicy`` against the manifest you will deploy, for example:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Use present tense whenever possible. It's usually clearest. In this case the loss of the second-person "you" is OK because the instructional text is imperative anyway.

Suggested change
#. Run ``genpolicy`` against the manifest you will deploy, for example:
#. Run ``genpolicy`` against the manifest to deploy:

The Kata Containers ``genpolicy`` tool reads your Kubernetes YAML, infers the intended Agent API
calls, encodes the policy in base64, and appends it as an annotation on the same file.

#. Obtain ``genpolicy`` from the latest Kata Containers release that is compatible with this

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe? Obtain feels a little wordy. Not critical.

Suggested change
#. Obtain ``genpolicy`` from the latest Kata Containers release that is compatible with this
#. Download ``genpolicy`` from the latest Kata Containers release that is compatible with this

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mikemckiernan - yes. @fidencio, to me, download seems right here as genpolicy is published as part of kata releases - do you want to get a bit more specific here?


$ genpolicy -y cuda-vectoradd-kata.yaml

#. Review the generated policy before you apply the manifest.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: This is good instructional imperative text, but it seems (to me) to be part of the preceding step of generating the agent security policy, not a new task.

Suggested change
#. Review the generated policy before you apply the manifest.
Review the generated policy before you apply the manifest.

$ genpolicy -y cuda-vectoradd-kata.yaml

#. Review the generated policy before you apply the manifest.
Auto-generated policy is a starting point.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Auto-generated policy is a starting point.
The automatically-generated policy is a starting point.


#. Review the generated policy before you apply the manifest.
Auto-generated policy is a starting point.
It can allow operations you do not want, such as ``kubectl exec``, or omit operations your

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: restating the noun is clearer than a pronoun

Suggested change
It can allow operations you do not want, such as ``kubectl exec``, or omit operations your
The policy can allow operations you do not want, such as ``kubectl exec``, or omit operations your

Comment thread confidential-containers/attestation.rst Outdated

Attestation is necessary but not sufficient for a secure end-to-end deployment.
The Kata shim on the host remains untrusted and can still issue Agent API calls into the guest
unless you restrict them with a Kata agent security policy.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: pronouns are generally bad and it's better to restate the noun. Unfortunately, this is a bit of a guess:

Suggested change
unless you restrict them with a Kata agent security policy.
unless you restrict the Agent API calls that the host can make with a Kata agent security policy.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack - also addressing same pattern in confidential-containers/configure-workloads.rst

Comment on lines +33 to +39
* It selects a TEE-aware Kata runtime class instead of the default ``runc``-based runtime.
* It requests GPU and NVSwitch resources using the resource types advertised by the NVIDIA
Kata sandbox device plugin, which can be either default names or model-specific names.
* For NVSwitch-based HGX systems, it requests every GPU and NVSwitch on the node together so
that all devices reside inside the same Confidential Container virtual machine.
* For an attested production deployment, it includes a Kata agent security policy that limits
which Agent API calls the untrusted host can make into the guest.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a little outside the bounds of the PR, but continuing my penchant for hunting pronouns for sport, could "it" in these bullets be replaced with "the manifest"?

As a newcomer, this list is teeming with terms and I had to backtrack to remind myself what "it" was.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agreed - I am addressing this as well for the three other bullet points listed above

Comment thread confidential-containers/run-sample-workload.rst
@mikemckiernan mikemckiernan self-assigned this Aug 25, 2026
@manuelh-dev
manuelh-dev force-pushed the mahuber/coco-agent-policy-and-platforms branch from 4906897 to 2e9ee25 Compare August 25, 2026 22:16
@manuelh-dev

Copy link
Copy Markdown
Contributor

Rename the supported platforms page to include software components,
and document attaching a Kata agent security policy for attested
production workloads.

Signed-off-by: Manuel Huber <manuelh@nvidia.com>
@manuelh-dev
manuelh-dev force-pushed the mahuber/coco-agent-policy-and-platforms branch from 2e9ee25 to 34eea2d Compare August 25, 2026 22:49
@manuelh-dev

Copy link
Copy Markdown
Contributor

@fitzthum - one more change intended to streamline agent policy + attestation in a better way: https://github.com/NVIDIA/cloud-native-docs/compare/2e9ee2527e2445e280d6cf5a3907d90072368dc6..34eea2df421ecca92ab169c4ed9e940e99429ce1 - maybe better to read the PR again instead though.

@mikemckiernan mikemckiernan left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

I opened this PR, so GH won't allow me to approve, but I'd approve. lmk if there's anything else you need from me.

* Using sealed secrets
* Requesting secrets directly from workloads

A complete attestation process should also cover the Kata Agent API surface: which operations the

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A complete attestation process should also cover the Kata Agent API surface: which operations the
A complete attestation process manages the Kata Agent API surface: which operations the

This gist here is that "should" is the kiss of death in tech docs and is best replaced with more decisive language. Please sub in the correct verb in place of "manages", maybe "constrains" or "limits."

Comment on lines +327 to +328
Because the Kata shim on the host is outside the TEE, the host can still issue Agent API calls
into the guest unless you restrict those Agent API calls.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Q: does an "untrusted host" belong somewhere in here? I thought I read that before and that's what gets this human's attention. Is this correct?

Suggested change
Because the Kata shim on the host is outside the TEE, the host can still issue Agent API calls
into the guest unless you restrict those Agent API calls.
Because the Kata shim on the host is outside the TEE, the untrusted host can still issue Agent API calls
into the guest unless you restrict those Agent API calls.

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

Successfully merging this pull request may close these issues.

2 participants