-
Notifications
You must be signed in to change notification settings - Fork 244
feat(docs): Kubeflow Security Self Assessment #871
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
feat(docs): Kubeflow Security Self Assessment #871
Conversation
Signed-off-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Andrey Velichkevich <[email protected]>
| ## Get Involved | ||
|
|
||
| - **Join** the [CNCF Slack Workspace](https://www.kubeflow.org/docs/about/community/#kubeflow-slack-channels) and the [`#kubeflow-platform`](https://app.slack.com/client/T08PSQ7BQ/C073W572LA2) channel. | ||
| - **Attend** the _Kubeflow Manifests WG_ meeting ([meeting notes](https://docs.google.com/document/d/1je_qzoJCAVXndxeJAgA8cdugvYZfsgrAi7HP_WDeUN0/edit), [community calendar](https://www.kubeflow.org/docs/about/community/#kubeflow-community-calendars)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - **Attend** the _Kubeflow Manifests WG_ meeting ([meeting notes](https://docs.google.com/document/d/1je_qzoJCAVXndxeJAgA8cdugvYZfsgrAi7HP_WDeUN0/edit), [community calendar](https://www.kubeflow.org/docs/about/community/#kubeflow-community-calendars)). | |
| - **Attend** the _Kubeflow Platform (manifests & security) WG_ meeting ([meeting notes](https://docs.google.com/document/d/1je_qzoJCAVXndxeJAgA8cdugvYZfsgrAi7HP_WDeUN0/edit), [community calendar](https://www.kubeflow.org/docs/about/community/#kubeflow-community-calendars)). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@juliusvonkohout We haven't established the Platform or Security WG yet as part of this discussion: #837
Can we agree on the new WG, SIG, or Committee, and update the README after it ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This i also how we call the meeting on the website and calendar entry.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but we haven't established this working group yet. Can we officially create this working group here, and then update this doc ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done #896 CC @kimwnasptd
| <table> | ||
| <thead> | ||
| <tr> | ||
| <th>Name</th> | ||
| <th>Information</th> | ||
| </tr> | ||
| </thead> | ||
| <tbody> | ||
| <tr> | ||
| <td>Assessment Stage</td> | ||
| <td>Incomplete</td> | ||
| </tr> | ||
| <tr> | ||
| <td>Software</td> | ||
| <td> | ||
| <a href="https://github.com/kubeflow/spark-operator">Kubeflow Spark Operator</a>, | ||
| <a href="https://github.com/kubeflow/notebooks">Kubeflow Notebooks</a>, | ||
| <a href="https://github.com/kubeflow/trainer">Kubeflow Trainer</a>, | ||
| <a href="https://github.com/kubeflow/katib">Kubeflow Katib</a>, | ||
| <a href="https://github.com/kubeflow/model-registry">Kubeflow Model Registry</a>, | ||
| <a href="https://github.com/kubeflow/pipelines">Kubeflow Pipelines</a> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td>Security Provider?</td> | ||
| <td>No. Kubeflow projects are not security providers</td> | ||
| </tr> | ||
| <tr> | ||
| <td>Languages</td> | ||
| <td>Python, Go, TypeScript</td> | ||
| </tr> | ||
| </tbody> | ||
| </table> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May we use a compact markdown table ?
| <table> | |
| <thead> | |
| <tr> | |
| <th>Name</th> | |
| <th>Information</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>Assessment Stage</td> | |
| <td>Incomplete</td> | |
| </tr> | |
| <tr> | |
| <td>Software</td> | |
| <td> | |
| <a href="https://github.com/kubeflow/spark-operator">Kubeflow Spark Operator</a>, | |
| <a href="https://github.com/kubeflow/notebooks">Kubeflow Notebooks</a>, | |
| <a href="https://github.com/kubeflow/trainer">Kubeflow Trainer</a>, | |
| <a href="https://github.com/kubeflow/katib">Kubeflow Katib</a>, | |
| <a href="https://github.com/kubeflow/model-registry">Kubeflow Model Registry</a>, | |
| <a href="https://github.com/kubeflow/pipelines">Kubeflow Pipelines</a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Security Provider?</td> | |
| <td>No. Kubeflow projects are not security providers</td> | |
| </tr> | |
| <tr> | |
| <td>Languages</td> | |
| <td>Python, Go, TypeScript</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| | Name | Information | | |
| |---|---| | |
| | Assessment Stage | Incomplete | | |
| | Software | [Kubeflow Spark Operator](https://github.com/kubeflow/spark-operator), [Kubeflow Notebooks](https://github.com/kubeflow/notebooks), [Kubeflow Trainer](https://github.com/kubeflow/trainer), [Kubeflow Katib](https://github.com/kubeflow/katib), [Kubeflow Model Registry](https://github.com/kubeflow/model-registry), [Kubeflow Pipelines](https://github.com/kubeflow/pipelines) | | |
| | Security Provider? | No. Kubeflow projects are not security providers | | |
| | Languages | Python, Go, TypeScript | |
| Name | Information |
|---|---|
| Assessment Stage | Incomplete |
| Software | Kubeflow Spark Operator, Kubeflow Notebooks, Kubeflow Trainer, Kubeflow Katib, Kubeflow Model Registry, Kubeflow Pipelines |
| Security Provider? | No. Kubeflow projects are not security providers |
| Languages | Python, Go, TypeScript |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't add it since my editor formats the table due to very long 3rd row with Kubeflow Projects.
If you think, that is better, I can disable my formatter and use your table.
| - Kubeflow Katib security policy: https://github.com/kubeflow/katib/blob/master/SECURITY.md | ||
| - Kubeflow Model Registry security policy: https://github.com/kubeflow/model-registry/blob/main/SECURITY.md | ||
| - Kubeflow Pipelines security policy: https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - Kubeflow Platform security policy: https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As part of self-assessment we say that Kubeflow consists of six open source project, and I keep it consistent everywhere in the doc (e.g. Security links, SBOM, Actors and Actions to avoid confusion for CNCF and security audit.
Additionally, we didn't ask to perform security audit for Kubeflow Manifests.
Thus, I am not sure if we should include the Kubeflow Manifests security policy.
security/self-assessment.md
Outdated
| Kubeflow is the foundation of tools for AI platforms on Kubernetes. Kubeflow projects address | ||
| each stage in [the AI lifecycle](https://www.kubeflow.org/docs/started/architecture/#introducing-the-ml-lifecycle) | ||
| with support for best-in-class open source [tools and frameworks](https://www.kubeflow.org/docs/started/architecture/#kubeflow-ecosystem). | ||
| Kubeflow projects make AI simple, scalable, and portable. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets try to stay close to the official what is kubeflow text
| Kubeflow is the foundation of tools for AI platforms on Kubernetes. Kubeflow projects address | |
| each stage in [the AI lifecycle](https://www.kubeflow.org/docs/started/architecture/#introducing-the-ml-lifecycle) | |
| with support for best-in-class open source [tools and frameworks](https://www.kubeflow.org/docs/started/architecture/#kubeflow-ecosystem). | |
| Kubeflow projects make AI simple, scalable, and portable. | |
| Kubeflow is the foundation of tools for AI Platforms on Kubernetes. | |
| AI platform teams can build on top of Kubeflow by using each project independently or deploying the | |
| entire AI reference platform to meet their specific needs. The Kubeflow AI reference platform is | |
| composable, modular, portable, and scalable, backed by an ecosystem of Kubernetes-native | |
| projects that cover every stage of the [AI lifecycle]((https://www.kubeflow.org/docs/started/architecture/#introducing-the-ml-lifecycle)) with support for best-in-class open source [tools and frameworks](https://www.kubeflow.org/docs/started/architecture/#kubeflow-ecosystem). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I will update it once we merge this PR: kubeflow/kubeflow#7734
| - Target non-Kubernetes deployment systems. | ||
| - Kubeflow doesn't re-invent ML frameworks and packages (e.g. PyTorch, JAX). | ||
| - Kubeflow is not replacement for GitOps systems like ArgoCD. | ||
| - Kubeflow doesn't enforce a deployment method or distribution for Kubeflow projects. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we do enforce Kustomize and helm
| - Kubeflow doesn't enforce a deployment method or distribution for Kubeflow projects. | |
| - Support another deployment method next to Kustomize and Helm manifests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think, @thesuperzapper added this no-goal to the GTR doc: https://docs.google.com/document/d/15CZtkk3x-YIUaNnaRzIZaIKrfDfT6is_PAlRDIoBKgQ/edit?tab=t.0
@thesuperzapper Can you give context here please ?
| - Kubeflow Trainer: https://www.bestpractices.dev/projects/10435 | ||
| - Kubeflow Model Registry: https://www.bestpractices.dev/en/projects/9937 | ||
| - Kubeflow Pipelines: https://www.bestpractices.dev/en/projects/9938 | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Kubeflow Platform: https://www.bestpractices.dev/en/projects/9940 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as here: #871 (comment)
| - https://github.com/kubeflow/katib/blob/master/CONTRIBUTING.md | ||
| - https://github.com/kubeflow/pipelines/blob/master/CONTRIBUTING.md | ||
| - https://github.com/kubeflow/model-registry/blob/main/CONTRIBUTING.md | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - https://github.com/kubeflow/manifests/blob/master/CONTRIBUTING.md | |
| - `#kubeflow-katib` | ||
| - `#kubeflow-model-registry` | ||
| - `#kubeflow-pipelines` | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - `#kubeflow-platform` | |
| - https://github.com/kubeflow/katib/blob/master/SECURITY.md | ||
| - https://github.com/kubeflow/model-registry/blob/main/go.mod/master/SECURITY.md | ||
| - https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | |
|
@andreyvelich i added my comments |
Co-authored-by: Julius von Kohout <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Julius von Kohout <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
security/self-assessment.md
Outdated
| Detailed information can be found here in the official | ||
| [Kubeflow Model Registry docs](https://www.kubeflow.org/docs/components/model-registry/reference/architecture/). | ||
|
|
||
| ### Kubeflow Pipelines |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cc @chensun @droctothorpe @HumairAK @james-jwu to review KFP docs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@andreyvelich no objections from my end on the KFP sections, they look good to me.
Signed-off-by: Andrey Velichkevich <[email protected]>
tarilabs
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @andreyvelich , some minor/hopefully-helpful comments below 🙏
security/self-assessment.md
Outdated
| - https://github.com/kubeflow/notebooks/blob/notebooks-v2/workspaces/controller/go.mod | ||
| - https://github.com/kubeflow/trainer/blob/master/go.mod | ||
| - https://github.com/kubeflow/katib/blob/master/go.mod | ||
| - https://github.com/kubeflow/model-registry/blob/main/go.mod |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| - https://github.com/kubeflow/model-registry/blob/main/go.mod | |
| - https://github.com/kubeflow/model-registry/blob/main/go.mod, https://github.com/kubeflow/model-registry/blob/main/clients/python/pyproject.toml |
Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Matteo Mortari <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Matteo Mortari <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
|
Sorry for all the nits, @andreyvelich. Thank you so much for steering this! 🙏 |
Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Co-authored-by: Alex <[email protected]> Signed-off-by: Andrey Velichkevich <[email protected]>
Signed-off-by: Andrey Velichkevich <[email protected]>
|
Thanks everyone for your review! |
|
/hold cancel |
security/self-assessment.md
Outdated
| - Kubeflow Spark Operator | ||
| - Go modules: https://github.com/kubeflow/spark-operator/blob/master/go.mod | ||
| - Kubeflow Notebooks | ||
| - Go modules: https://github.com/kubeflow/notebooks/blob/notebooks-v2/workspaces/controller/go.mod |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TODO: Change it to v1 once code is migrated.
cc @andyatmiami @thesuperzapper
Signed-off-by: Andrey Velichkevich <[email protected]>
franciscojavierarceo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
/lgtm
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: franciscojavierarceo The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Part of: #858, #851
This is initial Kubeflow Security Self-Assessment document required for CNCF graduation.
Source: https://tag-security.cncf.io/community/assessments/guide/self-assessment/#project-compliance
The document structure is similar to Knative and KServe self-assessments.
/hold for review
/assign @kubeflow/kubeflow-steering-committee @kubeflow/wg-training-leads @kubeflow/wg-pipeline-leads @kubeflow/wg-notebooks-leads @kubeflow/wg-manifests-leads @kubeflow/wg-data-leads @kubeflow/red-hat @kubeflow/wg-automl-leads @castrojo @kubeflow/kubeflow-outreach-committee