我创建了一个启用了RBAC的Azure Kubernetes群集。
因此,我的想法是,如果任何Pod想要访问群集中的任何资源,则应将其与服务帐户关联,并且服务帐户应分配有特定的角色来访问资源。
但是在我的情况下,我能够访问与未分配任何角色的服务帐户相关联的pod中的列表pod,list名称空间之类的资源。
请帮助我了解我对RBAC的理解是否错误,或者我在这里做错了!!
答案 0 :(得分:1)
您的理解是正确的,我不确定授予默认服务帐户的权限,但是如果您创建自己的角色并将其分配给服务帐户,则可以控制权限。样本:
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,它将仅允许Pod执行角色中定义的任何操作。因此,您需要创建一个角色和一个服务帐户,并对服务帐户使用角色绑定(或为群集范围的权限使用clusterrolebinding)。