我正在构建一个启用了istio的RBAC AKS集群。我已经分配了集群管理员角色,并且能够顺利部署最小的istio服务(服务/部署/网关/ VirtualService),没有问题。
我需要给我的组织中的团队一个访问AKS的权限,所以我创建了一个名称空间,并在名称空间上为其分配了管理员角色。 k8s原生的一切(kubectl get services --namespace team)都可以正常工作。但是,当他们部署相同的最小istio服务(Service / Deployment / Gateway / VirtualService)时,他们遇到了许多类似于以下内容的错误:
Error from server (Forbidden): error when retrieving current configuration of:
Resource: "networking.istio.io/v1alpha3, Resource=gateways", GroupVersionKind: "networking.istio.io/v1alpha3, Kind=Gateway"
这很有意义,因为我没有将组绑定到任何istio角色。一旦我授予他们cluster-admin的权限,它就会按预期工作。
问题是,我不知道要添加哪个istio角色。当我查看istio安装后群集中存在的角色时,我看不到任何明显的角色。
我看到的角色:
需要在istio部署上(在名称空间内)进行操作的用户的合适角色是什么?它是角色组合吗?我需要一个新的角色吗?
答案 0 :(得分:1)
具有这样的作用应该起作用:
"apiGroups": [
"istio.io"
],
"resources": [
"*"
],
"verbs": [
"*"
]
如果这不起作用,则需要执行以下操作:
"apiGroups": [
"config.istio.io",
"networking.istio.io",
"rbac.istio.io",
"authentication.istio.io"
],
"resources": [
"*"
],
"verbs": [
"*"
]
您可以为用户创建一个Role或Clusterrole以及绑定或角色绑定。
答案 1 :(得分:0)
我使用了以下内容,这些内容汇总为默认的edit
(依次为admin
)ClusterRoles。然后,绑定到edit
或admin
的任何帐户都可以修改Istio资源:
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
rbac.authorization.k8s.io/aggregate-to-edit: "true"
name: istio-edit
rules:
- apiGroups:
- "config.istio.io"
- "networking.istio.io"
- "rbac.istio.io"
- "authentication.istio.io"
- "security.istio.io"
resources:
- "*"
verbs:
- "*"