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

Implement Confidential Computing #650

Merged
merged 34 commits into from
Jul 5, 2024
Merged

Implement Confidential Computing #650

merged 34 commits into from
Jul 5, 2024

Conversation

olethanh
Copy link
Collaborator

@olethanh olethanh commented Jul 3, 2024

No description provided.

nesitor and others added 30 commits June 12, 2024 18:07
* Problem: The server don't have a directory to save the platform certificates generated by sevctl.

Solution: Set that directory field on settings class and ensure to create the folder on initialization step.

* Problem: The aren't an endpoint to be able to get the confidential platform certificates to start the VM key exchange.

Solution: Create that endpoint and return the platform certificates generated by the `sevctl` command.

* Fix: Solved code quality issues.

* Fix: Added 2 test cases for that endpoint.

* Fix: Added PR suggestions.

* Fix: Modified test mock to let the tests work

* Problem: Now isn't possible as a VM operator to get the client session certificates to initialize a confidential VM.

Solution: Create an operator start endpoint that receive the confidential session files and starts the qemu VM to continue with the certificate exchange methods.

* Fix: Remove useless aiofiles import

* Fix: Solve test issues after code quality fixes

* Fix: Solve code quality issues.

* Fix: Solve code quality issues.

* Fix: Write file in sync mode to avoid adding a new dependency. Files to write should be so small, so any blocking issue should be here.

* Fix: Solved PR comments and wrong conditionals.

* Fix: Solved more PR comments.

* Fix: Removed unexisting import

* Fix: Added useless command requested on the PR review.

* Fix: Changed endpoint path and added automatic tests for that endpoint.

* Fix: Solved settings singleton issue with testing, adding an `initialize_settings` method.

* Fix: Just disable the setting that is failing and remove previous method to initialize the singleton.
When there were multiple Droplets with the same name, cleanup using doctl compute droplet delete -f $NAME would not work.

Error: There are 3 Droplets with the name "aleph-vm-ci-XXX"; please provide a specific Droplet ID. [425559566, 425702949, 425703724]
(cherry picked from commit b824503)
because of deps problem.
Solution : upgrade aiohttp version
Co-authored-by: nesitor <amolinsdiaz@yahoo.es>
* Rename confidential endpoints

* Rename the function too and reorder

* isort
but still works with -e
ensure the setuid bit stay preserved when copying the file"
…ey instances.

Solution: Use new aleph-message version that includes that data schema and implement it on the qemu confidential resources.
* Problem: If a user wants to manage different operations for a different CRNs, they have to sign a new pubkey token for every CRN, and this is so bad for the user experience.

Solution: Move the `domain` field to the operation token payload instead the pubkey one, just to improve the user experience and maintain the security integrity.

* Fix: Solved test error message failing.

---------

Co-authored-by: Andres D. Molins <nesitor@gmail.com>
Copy link

codecov bot commented Jul 3, 2024

Codecov Report

Attention: Patch coverage is 66.33166% with 134 lines in your changes missing coverage. Please review.

Project coverage is 61.74%. Comparing base (4a9eabd) to head (607b868).
Report is 2 commits behind head on main.

Files Patch % Lines
...c/aleph/vm/hypervisors/qemu_confidential/qemuvm.py 32.14% 38 Missing ⚠️
src/aleph/vm/orchestrator/views/operator.py 51.35% 33 Missing and 3 partials ⚠️
...aleph/vm/controllers/qemu_confidential/instance.py 58.57% 29 Missing ⚠️
src/aleph/vm/controllers/qemu/client.py 55.55% 16 Missing ⚠️
src/aleph/vm/controllers/__main__.py 16.66% 4 Missing and 1 partial ⚠️
src/aleph/vm/models.py 58.33% 3 Missing and 2 partials ⚠️
src/aleph/vm/orchestrator/run.py 0.00% 2 Missing ⚠️
src/aleph/vm/orchestrator/views/authentication.py 60.00% 1 Missing and 1 partial ⚠️
src/aleph/vm/pool.py 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #650      +/-   ##
==========================================
+ Coverage   61.25%   61.74%   +0.48%     
==========================================
  Files          65       68       +3     
  Lines        5603     5949     +346     
  Branches      596      624      +28     
==========================================
+ Hits         3432     3673     +241     
- Misses       2023     2124     +101     
- Partials      148      152       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@olethanh olethanh marked this pull request as ready for review July 3, 2024 15:07
@olethanh olethanh requested review from hoh and nesitor and removed request for hoh July 4, 2024 07:36
@olethanh olethanh force-pushed the dev-confidential branch from c74e59d to d63bc6d Compare July 4, 2024 08:08
Copy link
Member

@nesitor nesitor left a comment

Choose a reason for hiding this comment

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

🚀

src/aleph/vm/pool.py Outdated Show resolved Hide resolved
@olethanh olethanh force-pushed the dev-confidential branch from 7e8fadb to a814e74 Compare July 5, 2024 10:33
@olethanh olethanh merged commit 67ae732 into main Jul 5, 2024
24 checks passed
@Psycojoker Psycojoker deleted the dev-confidential branch July 24, 2024 15:36
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.

3 participants