我如何创建一个Kubernetes角色,用户可以在其中创建名称空间,在其中他们可以做任何事情?
我创建了一个角色,以下是该角色的定义:我如何创建一个Kubernetes角色,用户可以在其中创建名称空间,在其中他们可以做任何事情?,kubernetes,roles,role-base-authorization,Kubernetes,Roles,Role Base Authorization,我创建了一个角色,以下是该角色的定义: --- kind: Role apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: ${SERVICE_ACCOUNT_NAME}-full-access-role namespace: ${NAMESPACE} rules: - apiGroups: ["", "extensions", "apps"] resources: ["*"] verbs: ["*"] - a
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: ${SERVICE_ACCOUNT_NAME}-full-access-role
namespace: ${NAMESPACE}
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]
- apiGroups: ["batch"]
resources:
- jobs
- cronjobs
verbs: ["*"]
使用此角色,用户可以创建、列出和删除命名空间中的任何资源,但问题是它还可以列出集群中的所有命名空间
我想让用户能够创建名称空间,并可以在其中执行任何操作,但他们也不能列出任何资源,甚至不能列出非用户创建的其他名称空间。如果您能告诉我们您在哪个云平台上,这会有所帮助。据我所知,不同的云平台以不同的方式处理基于角色的访问
话虽如此,我相信对于您想要的特定访问级别,应该有预定义的角色。通常,基于角色的授权会逐步进行。如果您授予某人在文件夹级别访问资源的权限,则该用户将能够访问该文件夹中的所有资源。由于您希望授予对命名空间中任何资源的访问权,因此我将授予该级别的用户访问权。我认为您不能拒绝用户列出所有命名空间并同时授予其所需访问权的访问权。至少不是在裸金属库伯内特斯。阅读以下内容,了解您遇到的类似问题。现在,我想在基于内部部署基础设施的kubernetes集群中执行此操作。