简单RBAC示例的问题

时间:2018-09-24 11:04:52

标签: kubernetes ibm-cloud-private kubernetes-security

我想举一个非常简单的例子来学习如何在kubernetes中使用RBAC授权。因此,我使用文档中的示例:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: dev
  name: dev-readpods-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: dev-tester-rolebinding
  namespace: dev
subjects:
- kind: User
  name: Tester
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: dev-readpods-role
  apiGroup: rbac.authorization.k8s.io

已创建角色和角色绑定。

当我使用Tester登录并尝试

kubectl get pods -n dev

我知道

Error from server (Forbidden): pods is forbidden: User "<url>:<port>/oidc/endpoint/OP#Tester" cannot list pods in the namespace "dev"

我在这里(RBAC Error in Kubernetes)看到api服务器必须以--authorization-mode =…,RBAC启动。我该如何检查?我在其他地方读到如果我跑步

kubectl api-versions | findstr rbac

并找到条目RBAC应该被激活。是真的吗?

我在做什么错?是否有排除故障的好方法?

谢谢!

P.S。我正在IBM Cloud Private中运行kubernetes。

2 个答案:

答案 0 :(得分:0)

您需要确定apiserver的调用才能查看传递给它的--authorization-mode标志。通常,它包含在systemd单元文件或pod清单中。我不确定IBM Cloud如何启动apiserver

答案 1 :(得分:0)

在ICP中,使用Teams(我认为是ICP自己的术语)看起来令人鼓舞。尝试从它开始。但是您需要ICP之外的LDAP服务器。 https://www.ibm.com/support/knowledgecenter/en/SSBS6K_2.1.0.3/user_management/admin.html