Skip to content

chore(docs): add SECURITY.md and expand security model in ARCHITECTURE.md#14

Open
abhijeet-dhumal wants to merge 3 commits into
kubeflow:mainfrom
abhijeet-dhumal:add-security-context
Open

chore(docs): add SECURITY.md and expand security model in ARCHITECTURE.md#14
abhijeet-dhumal wants to merge 3 commits into
kubeflow:mainfrom
abhijeet-dhumal:add-security-context

Conversation

@abhijeet-dhumal

@abhijeet-dhumal abhijeet-dhumal commented May 11, 2026

Copy link
Copy Markdown
Member

Description

Adds vulnerability reporting policy and expands security documentation:

  • Add SECURITY.md : vulnerability reporting, disclosure process (aligned with kubeflow/trainer)
  • Move threat model, RBAC, hardening checklist to ARCHITECTURE.md's Security Model section
  • Fix RBAC manifests: add create/delete/patch verbs for clustertrainingruntimes

Checklist

  • Tests pass locally (make test-python)
  • Linting passes (make verify)
  • Documentation updated (if applicable)
  • Commit messages follow conventional format

Related Issues

Fixes: #12

@abhijeet-dhumal abhijeet-dhumal changed the title docs: add SECURITY.md with threat model, RBAC, and hardening checklist chore: add SECURITY.md with threat model, RBAC, and hardening checklist May 12, 2026
@google-oss-prow

Copy link
Copy Markdown

@abhijeet-dhumal: you cannot LGTM your own PR.

Details

In response to this:

/lgtm
/approve

SECURITY.md with threat model and RBAC guidance — CNCF readiness requirement.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@google-oss-prow google-oss-prow Bot added the approved Approved by an approver in OWNERS label Jul 10, 2026
Copilot AI review requested due to automatic review settings July 12, 2026 14:15
@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from abhijeet-dhumal. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow Bot removed the approved Approved by an approver in OWNERS label Jul 12, 2026

Copilot AI left a comment

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.

Pull request overview

Adds project security guidance covering vulnerability reporting, threat modeling, RBAC, deployment hardening, and resilience.

Changes:

  • Adds SECURITY.md with security and deployment guidance.
  • Links security and roadmap documentation from the README.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
SECURITY.md Adds security policy, threat model, RBAC examples, and hardening checklist.
README.md Adds documentation links.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread SECURITY.md Outdated
Comment on lines +27 to +30
### Email

- **Email:** [kubeflow-discuss@googlegroups.com](mailto:kubeflow-discuss@googlegroups.com)
- **Subject:** `[SECURITY] kubeflow/mcp-server — <brief description>`
Comment thread SECURITY.md Outdated
Comment on lines +89 to +91
The `run_custom_training` tool accepts a Python script as a string. The script is embedded inside a `train_func()` closure that is serialized by `cloudpickle` and executed **inside the Kubernetes training pod**, not on the MCP host.

The `exec(compile(script, ...))` call is **deferred** — it runs inside `train_func()` at pod runtime, not at submission time on the host. However, the closure is constructed on the host and serialized, so malformed scripts could theoretically cause issues during serialization.
Comment thread SECURITY.md Outdated

### What the MCP Server Does NOT Control

- **Kubernetes RBAC** — the server operates under the caller's permissions; it cannot grant access beyond what the Kubeconfig allows
Comment thread SECURITY.md Outdated
Comment on lines +180 to +183
# Discovery: list/get runtimes
- apiGroups: ["trainer.kubeflow.org"]
resources: ["clustertrainingruntimes"]
verbs: ["list", "get"]
Comment thread SECURITY.md Outdated
Comment on lines +196 to +198
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list"]
Comment thread SECURITY.md Outdated
Comment on lines +199 to +201
- apiGroups: ["trainer.kubeflow.org"]
resources: ["trainjobs", "clustertrainingruntimes"]
verbs: ["list", "get"]
Comment thread SECURITY.md Outdated
Comment on lines +221 to +224
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubeflow-mcp-server
@abhijeet-dhumal abhijeet-dhumal changed the title chore: add SECURITY.md with threat model, RBAC, and hardening checklist docs: add SECURITY.md and expand security model in ARCHITECTURE.md Jul 12, 2026
@abhijeet-dhumal abhijeet-dhumal changed the title docs: add SECURITY.md and expand security model in ARCHITECTURE.md chore(docs): add SECURITY.md and expand security model in ARCHITECTURE.md Jul 12, 2026
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
Signed-off-by: abhijeet-dhumal <abhijeetdhumal652@gmail.com>
@abhijeet-dhumal

Copy link
Copy Markdown
Member Author

@andreyvelich @thesuperzapper @astefanutti @kramaranya @szaher
Please review !
This PR is a candidate for the first mcp-server release (0.1.0) closes #12, tracking in #56.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add SECURITY.md with vulnerability reporting and hardening guide

2 participants