feat(docs): Kubeflow Security Self Assessment#871
feat(docs): Kubeflow Security Self Assessment#871google-oss-prow[bot] merged 37 commits intokubeflow:masterfrom
Conversation
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
| ## 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.
| - **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.
@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.
This i also how we call the meeting on the website and calendar entry.
There was a problem hiding this comment.
Yes, but we haven't established this working group yet. Can we officially create this working group here, and then update this doc ?
| <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.
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.
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.
| - Kubeflow Platform security policy: https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | |
There was a problem hiding this comment.
There was a problem hiding this comment.
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.
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.
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.
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.
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.
| Kubeflow Platform: https://www.bestpractices.dev/en/projects/9940 | |
| - 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.
| - https://github.com/kubeflow/manifests/blob/master/CONTRIBUTING.md | |
| - `#kubeflow-katib` | ||
| - `#kubeflow-model-registry` | ||
| - `#kubeflow-pipelines` | ||
|
|
There was a problem hiding this comment.
| - `#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.
| - https://github.com/kubeflow/pipelines/blob/master/SECURITY.md | |
|
@andreyvelich i added my comments |
Co-authored-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Julius von Kohout <45896133+juliusvonkohout@users.noreply.github.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
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.
cc @chensun @droctothorpe @HumairAK @james-jwu to review KFP docs.
There was a problem hiding this comment.
@andreyvelich no objections from my end on the KFP sections, they look good to me.
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
tarilabs
left a comment
There was a problem hiding this comment.
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.
| - 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 <andrey.velichkevich@gmail.com>
Co-authored-by: Matteo Mortari <matteo.mortari@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Matteo Mortari <matteo.mortari@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
|
Sorry for all the nits, @andreyvelich. Thank you so much for steering this! 🙏 |
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Co-authored-by: Alex <mythicalsunlight@gmail.com> Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
|
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.
TODO: Change it to v1 once code is migrated.
cc @andyatmiami @thesuperzapper
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
franciscojavierarceo
left a comment
There was a problem hiding this comment.
/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 DetailsNeeds 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