我设置了Kubernetes Cluster,其中包含一个主节点和一个工作节点。Kubectl cluster-info显示kubernetes-master和kube-dns运行成功。
我正在尝试访问下面的URL,因为它是我的组织内部的,所以外部世界看不到下面的URL。
https://10.118.3.22:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
但是当我访问它的时候,我得到了下面的错误-
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "services \"kube-dns:dns\" is forbidden: User \"system:anonymous\" cannot get resource \"services/proxy\" in API group \"\" in the namespace \"kube-system\"",
"reason": "Forbidden",
"details": {
"name": "kube-dns:dns",
"kind": "services"
},
"code": 403
}请让我知道如何授予匿名用户完全访问权限。我读了https://kubernetes.io/docs/reference/access-authn-authz/rbac/中提到的基于角色的访问控制,但我不知道我到底需要做什么。谢谢
发布于 2019-01-12 18:25:52
您可以将管理员权限授予匿名用户,但我强烈建议您不要这么做。这将使群集之外的任何人都可以使用url访问服务。
即使在此之后,您决定将所有访问权限授予匿名用户,也可以通过以下方式完成此操作:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: anonymous-role
rules:
- apiGroups: [""]
resources: ["services/proxy"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: anonymous-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: anonymous-role
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: system:anonymous这将给匿名:用户代理你的服务,而不是所有的资源。如果你想对所有的资源都这样做,你需要在匿名角色中提供resources: ["*"]。
希望这能有所帮助
https://stackoverflow.com/questions/54154112
复制相似问题