Skip to content
This repository has been archived by the owner on Apr 15, 2024. It is now read-only.

README.md: refine readme #255

Merged
merged 5 commits into from
Feb 4, 2024
Merged

README.md: refine readme #255

merged 5 commits into from
Feb 4, 2024

Conversation

ruomengh
Copy link
Contributor

  1. Move design section to wiki
  2. Add recommended configuration in installation section
  3. Other small adjustment

Copy link

@eadamsintel eadamsintel left a comment

Choose a reason for hiding this comment

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

"provides an isolated encyryption" would be more accurate

Copy link

@eadamsintel eadamsintel left a comment

Choose a reason for hiding this comment

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

Here is my full review

README.md Outdated
environment to protect data-in-use based on hardware Trusted Execution Environment (TEE).
It requires a full chain integrity measurement on the launch-time or runtime environment
to guarantee "consistently behavior in expected way" (defined by
[Trusted Computing](https://en.wikipedia.org/wiki/Trusted_Computing)) of confidential
to guarantee "consistently behavior in expected way" of confidential

Choose a reason for hiding this comment

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

guarantee "consistent behavior in an expected way"

README.md Outdated
computing environment for tenant's zero-trust use case.

This project is designed to provide cloud native measurement for the full measurement
chain from TEE TCB -> Firmware TCB -> Guest OS TCB -> Cloud Native TCB as follows:

![](/docs/cc-full-meaurement-chain.png)

_NOTE: Different with traditional trusted computing on non-confidential environment,
_NOTE: Different from traditional trusted computing on non-confidential environment,
the measurement chain is not only started with Guest's `SRTM` (Static Root Of Measurement)
but also need include the TEE TCB, because the CC VM environment is created by TEE

Choose a reason for hiding this comment

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

"but it also needs to include"

README.md Outdated
computing environment for tenant's zero-trust use case.

This project is designed to provide cloud native measurement for the full measurement
chain from TEE TCB -> Firmware TCB -> Guest OS TCB -> Cloud Native TCB as follows:

![](/docs/cc-full-meaurement-chain.png)

_NOTE: Different with traditional trusted computing on non-confidential environment,
_NOTE: Different from traditional trusted computing on non-confidential environment,
the measurement chain is not only started with Guest's `SRTM` (Static Root Of Measurement)
but also need include the TEE TCB, because the CC VM environment is created by TEE
via `DRTM` (Dynamic Root of Measurement) like Intel TXT on the host._

From the perspective of tenant's workload, `CCNP` will expose the [CC Trusted API](https://github.com/cc-api/cc-trusted-api)

Choose a reason for hiding this comment

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

"of a tenant's workload"

README.md Outdated
refer [detail deployment steps](/deployment/README.md)

![](/docs/ccnp-landing-confidential-cluster.png)

Finally, the full trusted chain will be measured into CC report as follows using

Choose a reason for hiding this comment

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

into a CC report

README.md Outdated
refer [detail deployment steps](/deployment/README.md)

![](/docs/ccnp-landing-confidential-cluster.png)

Finally, the full trusted chain will be measured into CC report as follows using
TDX as example:

Choose a reason for hiding this comment

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

as an example

README.md Outdated
- A `CCNP` device plugin is provided as the dependency for services such as Quote
Server and Measurement Server. It will help with device mount and folder injection
within the service.
CCNP collects primitives of confidential cloud native environments running in confidential VMs, such as Intel® TD. You can setup an Intel® TDX enlightened host and then boot TD guest on it. The feasible configurations are as below.

Choose a reason for hiding this comment

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

I don't think Intel((r) TD is a valid product name. I could not find it in the brands database.

Choose a reason for hiding this comment

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

Also it should be "then boot a TD guest"

README.md Outdated
SDK PyPI package can be found [here](https://pypi.org/project/ccnp/). Please check our [documentation](https://intel.github.io/confidential-cloud-native-primitives/) for more details.
| CPU | Host OS | Host packages | Guest OS | Guest packages | DCAP packages |
|---|---|---|---|---|---|
| Intel® Emerald Rapids | Ubuntu 22.04| Build packages referring to [here](https://github.com/intel/tdx-tools/tree/tdx-1.5/build/ubuntu-22.04) | Ubuntu 22.04 | Build packages referring to [here](https://github.com/intel/tdx-tools/tree/tdx-1.5/build/ubuntu-22.04) | [here](https://download.01.org/intel-sgx/sgx-dcap/1.19/linux/distro/ubuntu22.04-server/)

Choose a reason for hiding this comment

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

It is a bit odd to have a column for the CPU and just repeat it twice. You can't merge the columns in markdown so I can't think of a better way to do this. Is RHEL not supported? Also, DCAP and attestation is one of the trickiest things to implement and understand. At the very least I would add "Attestation" to the DCAP column. Not everyone will know that DCAP means attestation. The two links go to very different places. The top link is going to be hard for people to follow. Linking to the linux pdf install guide and also linking to the package should be adequate. Do the docker instructions on the CCNP site for PCCS and QGS also work with the MVP stack? If so I would use the same links. I also think a very brief explanation of what PCCS does and what the QGS is used for right before this table would help a lot. You could say something like "The Platform certificate caching service (PCCS) is used to retrieve and cache PCK certificates locally to your cluster from Intel's Platform Certificate Service. This is necessary to attest the authenticity of a TDVM before a workload is started in it. The Quote Generate Service (QGS) runs on the host in a specialized enclave to generate and use TD quotes. For convenient setup these can run inside a Docker container. Learn more at https://download.01.org/intel-sgx/sgx-dcap/1.17/linux/docs/Intel_TDX_DCAP_Quoting_Library_API.pdf" I would embed this link in the text.

The MVP related instructions will go away eventually so I don't think it is worth a lot of effort to update this section. If the docker CCNP instructions work for that section then link that instead.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Mid-stream distro also works for CentOS Stream 9, but it will not be put here until CCNP is validated with it.
Containerized PCCS and QGS work for both rows. However, it's just an alternative for mid-stream because they may release PCCS and QGS packages for Ubuntu 23.10 in future. The configuration table will be evolved along with mid-stream status.

Choose a reason for hiding this comment

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

If the same Docker instructions work for both TDX integrations then I would just use that. This table will evolve as distros update their TDX offerings.

README.md Outdated
- SDK is provided to simplify the use of the service interface for development,
it covers communication to the service and parses the results from the services.
With such SDK, users can perform related actions with one simple API call.
### 2.1 Configuration

Choose a reason for hiding this comment

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

Could each of these sections apply 100% to either the host or the confidential VM? If so I would put "2.1 Configuration (HOST)"

"2.2 Deploy CCNP Service (Confidential VM"

"2.3 Install SDK" I am not sure if this would be confidential VM or container I would try to write each section so that all the instructions are run 100% on a host or 100% on a VM. It would help the user know where they should be installing things. I don't know if this can be cleanly done when comparing confidential cluster in a VM vs confidential node as a VM or confidential workload as a VM. The key thing about my comment is it gets confusing for the user to know where to run the commands.

README.md Outdated

For SDK, user can simply install from PyPI using command:
CCNP SDK can be used by workload for cloud native primitives collecting. It needs to be installed within the workload container image and called whenever the primitives are required. The SDK can be installed from PyPI using command:

Choose a reason for hiding this comment

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

"used by a workload"

Choose a reason for hiding this comment

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

"The SDK can be installed from PyPi using the command:"

Choose a reason for hiding this comment

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

For the next section I would indicate that the repository needs to be cloned into the VM if you want to install that way. I would rephrase as "Alternatively, the CCNP can be installed from source code with the following command. Make sure to clone the repository into your confidential VM."

README.md Outdated
@@ -108,10 +87,11 @@ cd sdk/python3
pip install -e .
```

### 2.4 Install CCNP Device Plugin
For the ccnp device plugin, user can find the installation guide under the 'Installation'

Choose a reason for hiding this comment

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

Follow the CCNP device plugin installation guide .

1. Move design section to wiki
2. Add recommended configuration in installation section
3. Other small adjustment

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>
@ruomengh
Copy link
Contributor Author

ruomengh commented Jan 30, 2024

Thanks @eadamsintel for the detailed review comments! Most of the comments have been dealt with in the latest commit. Could you please review it again?

Ruoyu-y and others added 3 commits January 30, 2024 15:38
Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>
Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>
Copy link

@eadamsintel eadamsintel left a comment

Choose a reason for hiding this comment

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

Everything is looking a lot better. I only had some minor additional feedback.

README.md Outdated

## 1. Introduction

Confidential Computing technology like Intel TDX provides isolated encryption runtime
Confidential Computing technology like Intel® TDX provides an isolated encryption runtime

Choose a reason for hiding this comment

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

I just noticed this should be "Confidential Computer technologies" Another way to say it would be "A Confidential Computing technology like" .. I prefer the first

environment to protect data-in-use based on hardware Trusted Execution Environment (TEE).
It requires a full chain integrity measurement on the launch-time or runtime environment
to guarantee "consistently behavior in expected way" (defined by
[Trusted Computing](https://en.wikipedia.org/wiki/Trusted_Computing)) of confidential
to guarantee "consistent behavior in an expected way" of confidential

Choose a reason for hiding this comment

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

"of a confidential computing environment"

README.md Outdated
Finally, the full trusted chain will be measured into CC report as follows using
TDX as example:
Finally, the full trusted chain will be measured into a CC report as follows using
TDX as an example:

Choose a reason for hiding this comment

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

"Intel TDX"

README.md Outdated
- A `CCNP` device plugin is provided as the dependency for services such as Quote
Server and Measurement Server. It will help with device mount and folder injection
within the service.
CCNP collects primitives of confidential cloud native environments running in confidential VMs(CVM), such as Intel® TDX guest. The primitives are not only from the TEE + CVM boot process + CVM OS but also from the environments running workloads, e.g. Kubernetes cluster or Docker containers. Thus, you need to check below configuration for both hosts and guests.

Choose a reason for hiding this comment

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

I would add a space after "confidential VMs" and before the acronym is shown (CVM). Also, you only have to use the circle R after Intel the first time you define Intel(R) TDX. Then you can refer to it as Intel TDX.

@ruomengh
Copy link
Contributor Author

@eadamsintel The document is updated according to your comments, except that I keep both ways of installing PCCS and QGS in the configuration table. Could you please review it again? Thanks.

Copy link

@eadamsintel eadamsintel left a comment

Choose a reason for hiding this comment

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

I noticed two very small grammar issues. Otherwise this is good to go.

README.md Outdated
the measurement chain is not only started with Guest's `SRTM` (Static Root Of Measurement)
but also need include the TEE TCB, because the CC VM environment is created by TEE
via `DRTM` (Dynamic Root of Measurement) like Intel TXT on the host._
but it also needs to include the TEE TCB, because the CC VM environment is created by TEE
Copy link

@eadamsintel eadamsintel Jan 31, 2024

Choose a reason for hiding this comment

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

This is a small grammar correction I missed before --> "(Static Root of Mesurement), but it also needs to include the TEE TCB because the" The comma should be after the parenthesis and before "but" because it is a compound sentence. The "because" is a subordinating conjunction (had to look that terminology up) so no comma is needed. English can be very nuanced.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks for the English learning tips :-)

Choose a reason for hiding this comment

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

I have to look these things up myself to re-remember :)

README.md Outdated


## 2. Design
- Please refer to structure [`TDREPORT`](https://github.com/tianocore/edk2/blob/master/MdePkg/Include/IndustryStandard/Tdx.h)

Choose a reason for hiding this comment

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

The other two bullet points ended with a period . so for consistency I would add a period here too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Good catch.

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>
@ruomengh
Copy link
Contributor Author

ruomengh commented Feb 2, 2024

@eadamsintel Thanks a lot for all the review comments. The file has been updated.

@eadamsintel
Copy link

I think it is GTG.

@ruomengh ruomengh merged commit 461c604 into intel:main Feb 4, 2024
2 checks passed
hjh189 pushed a commit to hjh189/confidential-cloud-native-primitives that referenced this pull request Feb 5, 2024
* README.md: refine readme
1. Move design section to wiki
2. Add recommended configuration in installation section
3. Other small adjustment

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>

* Doc: add OpenSSF badge in README (intel#252)

* Add CCNP overall document link in README.

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>

* More update on configuration and deployment

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>

* More update on configuration and deployment

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>

---------

Signed-off-by: Hao, Ruomeng <ruomeng.hao@intel.com>
Co-authored-by: Ruoyu Ying <ruoyu.ying@intel.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants