Restrict cross-VM mounting using Proxmox ACLs

TomyLobo

New Member
May 16, 2025
1
0
0
I'm using proxmox-csi-plugin, which creates virtual disks on Proxmox and dynamically attaches them to Kubernetes worker VMs to use as persistent volumes.

I'm using it on multiple Kubernetes clusters, and, currently, all clusters share the same Proxmox API token, and all CSI-provisioned volumes are owned by VMID 9999.

This means that if one Kubernetes cluster is compromised and an attacker obtains the CSI token, they may be able to attach and read volumes belonging to another cluster.

To reduce that risk, I'm planning to use a separate Proxmox API token and a different controllerVMID for each cluster. For example:
  • Cluster 1: controllerVMID 199
  • Cluster 2: controllerVMID 299
The question is whether this creates a meaningful authorization boundary in Proxmox.

Let's say one node of cluster 1 has VMID 100.
Can I give it a token with permission to attach volumes owned by the controllerVMID 199 to the cluster node (VMID 100), while still preventing that same token from attaching volumes owned by cluster 2's controllerVMID 299?

More generally, can volume ownership by VMID be used to isolate CSI-provisioned volumes between Kubernetes clusters, or do datastore-level permissions effectively override that distinction?
 
Last edited: