我已创建了一个Azure的Kubernetes集群启用RBAC。
所以我的想法是,如果任何荚要访问集群的任何资源,它应该具有服务帐户和服务帐户相关联,应该有一个分配给接入资源的特定角色。
但对我来说,我能够访问资源像列表吊舱,吊舱从列表命名空间,其与没有分配任何角色的服务帐户相关联。
请帮我知道如果我的理解是错的RBAC或我错在这里做什么!
你的理解是正确的,我不完全确定授予默认服务帐户权限,但是如果你创建自己的角色,并将其分配给服务帐户,您可以控制权限。样品:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: myserviceaccount
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: orleans-cluster
namespace: mynamespace
subjects:
- kind: ServiceAccount
name: myserviceaccount
namespace: mynamespace
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: orleans-cluster
rules:
- apiGroups:
- orleans.dot.net
resources:
- clusterversions
- silos
verbs:
- '*'
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: myserviceccount
namespace: mynamespace
如果分配myserviceaccount到POD只会让荚做无论是在角色中定义。所以你需要创建一个角色和服务帐户,并使用rolebinding(或clusterrolebinding集群范围的权限)的服务帐户。