[英]Create an NGINX ingress controller in Kubernetes, using Azure
[英]Kubernetes Role Managment with NGINX Ingress
我有一個在 Azure (AKS) 上運行的 Kubernetes 集群,前面有 NGINX Ingress。
我有點困惑如何為多個用戶單獨訪問不同的資源。
用戶應該在應用程序上工作。 這就是為什么如果他們可以讀取日志、描述並在 pod 內執行一些命令就可以了。 但是他們永遠不應該調整一些 Ingress 資源。
Microsoft 提供了一個非常好的教程,如何在 AKS 上處理此類案例: https : //docs.microsoft.com/en-us/azure/aks/azure-ad-rbac
有一個示例如何將一個組的權限添加到整個命名空間。
我現在的問題是,如何將組的權限添加到命名空間內的特定資源。
例如我有以下資源:
ressource type namespace
ingress-controller pod nginx-ingress
ingress-service service nginx-ingress
ingress-nginx ingress nginx-ingress
app1-service service nginx-ingress
app1 pod nginx-ingress
app2-service service nginx-ingress
app2 pod nginx-ingress
根據我的理解,我需要將它們全部部署在同一個命名空間中,否則入口無法轉發請求。 但是我如何為 app1 和 app1-service 授予 group1 的讀取、寫入、執行權限,並讀取其余的權限?
您可以使用resourceNames
字段在 RBAC 角色中按名稱指定特定資源。
創建一個允許完全訪問app1
和app1-service
的角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: app1-admin
rules:
- apiGroups:
- ""
resourceNames:
- app1
- app1-service
resources:
- pods
- pods/exec
- service
verbs:
- get
- list
- watch
- create
創建允許讀取所有其他 Pod 和服務的角色:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: read-all
rules:
- apiGroups:
- ""
resources:
- pods
- service
verbs:
- get
- list
- watch
創建兩個 RoleBindings,將這兩個角色綁定到group1
組:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: app1-admin-group1
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: app1-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: group1
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-all-group1
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: read-all
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: group1
現在, group1
成員應該擁有對 Pod app1
和 Service app1-service
完全訪問權限,但只有對所有其他資源的讀取訪問權限。
我完全不認為那是真的,您可以在不同的命名空間中擁有入口資源。 此外,您實際上可以在 rbac 中引用資源名稱。
https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.