Gateway must provide namespace access control
- Dominant language
- Python
- Stars
- 132
- Forks
- 69
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 47
Description
This is _**not**_ listed in the initial [gateway project requirements](https://pad.ceph.com/p/rbd_nvmeof_requirements), but is obviously the gateway must only expose each namespace to the specific host(s) configured to have access.
This feature enables the gateway configuration to specify which hosts may access which namespaces, and ensures each namespace is accessed (read, written, or even discovered) only by the hosts that are configured to have access.
To demo this requires at least the ability to identify hosts. To use in production it requires host authentication (#69).
One way to do this for the gateway to create one subsystem per host, and populate it with just the namespaces that host can access. This greatly increases the number of subsystem ports the discovery service (#63) must advertise (increasing the need for #68).
Another way is "namespace masking", where gateways have as few as one subsystem containing all the namespaces all the configured hosts can access; then "masking" them from hosts that aren't configured to access them. Namespace masking is accomplished in the NVMe-oF target by filtering the response to "list namespaces" so hosts only see the namespaces they can access, and validating the host ID for each NVMe IO command is one authorized to access that NVMe namespace (NSID). This is not yet supported in SPDK.
Contributor guide
Research direction
Start with the gateway configuration, discovery service, and NVMe-oF target behavior described in the issue, then compare the per-host subsystem and namespace-masking approaches. Confirm how hosts are identified and authenticated, and define done as preventing unauthorized discovery, reads, and writes for every namespace; the issue notes that SPDK does not yet support the required masking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, networking, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100