如何控制对Kubernetes中StorageClass的访问?

如何控制对Kubernetes中StorageClass的访问?,kubernetes,Kubernetes,是否可以限制特定用户从StorageClass动态调配磁盘的能力?或者,例如,只允许特定名称空间能够使用storageclass?公平警告:我还没有测试过这个 StorageClass只是一个API端点,RBAC通过限制对这些端点的访问来工作,因此理论上这应该可以正常工作: kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: sc_access rules: - apiGroups: ["sto

是否可以限制特定用户从StorageClass动态调配磁盘的能力?或者,例如,只允许特定名称空间能够使用storageclass?

公平警告:我还没有测试过这个

StorageClass只是一个API端点,RBAC通过限制对这些端点的访问来工作,因此理论上这应该可以正常工作:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: sc_access
rules:
- apiGroups: ["storage.k8s.io", "core" ]
  resources: [ "storageclass" ]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
如果这不起作用,您可以通过非源URL选项直接限制访问:

rules:
- nonResourceURLs: ["/storage.k8s.io/v1/storageclasses"]
  verbs: ["get", "post"]

公平警告:我还没有测试过这个

StorageClass只是一个API端点,RBAC通过限制对这些端点的访问来工作,因此理论上这应该可以正常工作:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: sc_access
rules:
- apiGroups: ["storage.k8s.io", "core" ]
  resources: [ "storageclass" ]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
如果这不起作用,您可以通过非源URL选项直接限制访问:

rules:
- nonResourceURLs: ["/storage.k8s.io/v1/storageclasses"]
  verbs: ["get", "post"]

可用于限制存储类的使用

可用于限制存储类的使用

这限制了与存储类交互的能力,但这并不能阻止用户在创建storageclass后引用PVC中的storageclass-我更多考虑的是这样一种情况,即集群操作员创建了大量StrorageClass,并希望在将这些规则绑定到命名空间中的serviceaccount时锁定它们的使用,就我所知,它也应该适用于PVC创作之类的东西啊,太棒了,我不知道,这似乎不起作用-我创建了一个SA,它只能创建PVC,用户仍然可以使用
storageClassName
字段引用和使用任何storageclass。主要问题似乎是,动态配置磁盘的逻辑在controller manager中,因此不依赖于创建原始PVC对象的用户权限这限制了与StorageClass交互的能力,但这并不能阻止用户在创建storageclass后引用PVC中的storageclass-我更多考虑的是这样一种情况,即集群操作员创建了大量StrorageClass,并希望在将这些规则绑定到命名空间中的serviceaccount时锁定它们的使用,就我所知,它也应该适用于PVC创作之类的东西啊,太棒了,我不知道,这似乎不起作用-我创建了一个SA,它只能创建PVC,用户仍然可以使用
storageClassName
字段引用和使用任何storageclass。主要问题似乎是,动态配置磁盘的逻辑在controller manager中,因此不依赖于创建原始PVC对象的用户的权限