Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将角色与服务帐户绑定-Kubernetes_Kubernetes_Dashboard_Rbac - Fatal编程技术网

如何将角色与服务帐户绑定-Kubernetes

如何将角色与服务帐户绑定-Kubernetes,kubernetes,dashboard,rbac,Kubernetes,Dashboard,Rbac,我知道有很多类似的问题,但就我浏览的情况来看,没有一个有解决方案。 说到这个问题,我已经创建了一个服务帐户(使用命令)、角色(使用.yaml文件)、角色绑定(使用.yaml文件)。该角色仅授予对POD的访问权限。但是,当我使用角色所连接的SA登录到仪表板(令牌方法)时,我能够查看所有资源,而不受任何限制。以下是我使用的文件和命令 角色。yaml: kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace:

我知道有很多类似的问题,但就我浏览的情况来看,没有一个有解决方案。 说到这个问题,我已经创建了一个服务帐户(使用命令)、角色(使用.yaml文件)、角色绑定(使用.yaml文件)。该角色仅授予对POD的访问权限。但是,当我使用角色所连接的SA登录到仪表板(令牌方法)时,我能够查看所有资源,而不受任何限制。以下是我使用的文件和命令

角色。yaml:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: assembly-prod
  name: testreadrole
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
RoleBinding.yaml

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: testrolebinding
  namespace: assembly-prod
subjects:
- kind: ServiceAccount
  name: testsa
  apiGroup: ""
roleRef:
  kind: Role
  name: testreadrole
  apiGroup: rbac.authorization.k8s.io
用于创建服务帐户的命令:
kubectl创建serviceaccount--命名空间


更新:我创建了一个服务帐户,但没有附加任何类型的角色。当我尝试使用此SA登录时,它允许我通过,我可以执行各种活动,包括删除“机密”。因此,默认情况下,所有SA都假定具有管理员权限,这就是我的上述角色无法工作的原因。这是预期的行为吗?如果是,那么如何更改它?

我发现您提供的
.yamls
需要一些调整

角色
规则
部分后的格式错误

RoleBinding
主题:
之后缺少
命名空间:
,并且格式错误

试着这样做:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: assembly-prod
  name: testreadrole
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: testrolebinding
  namespace: assembly-prod
subjects:
  - kind: ServiceAccount
    name: testsa
    namespace: assembly-prod
roleRef:
  kind: Role
  name: testreadrole
  apiGroup: rbac.authorization.k8s.io
这里有一个非常有用的指南,告诉您在哪里可以找到有关此特定主题的详细信息。

请尝试以下步骤

# create service account
kubectl create serviceaccount pod-viewer

# Create cluster role/role
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pod-viewer
rules:
- apiGroups: [""] # core API group
  resources: ["pods", "namespaces"]
  verbs: ["get", "watch", "list"]
---

# create cluster role binding
kubectl create clusterrolebinding pod-viewer \
  --clusterrole=pod-viewer \
  --serviceaccount=default:pod-viewer

# get service account secret
kubectl get secret | grep pod-viewer
pod-viewer-token-6fdcn   kubernetes.io/service-account-token   3      2m58s

# get token
kubectl describe secret pod-viewer-token-6fdcn
Name:         pod-viewer-token-6fdcn
Namespace:    default
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: pod-viewer
              kubernetes.io/service-account.uid: bbfb3c4e-2254-11ea-a26c-0242ac110009

Type:  kubernetes.io/service-account-token

Data
====
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6InBvZC12aWV3ZXItdG9rZW4tNmZkY24iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoicG9kLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImJiZmIzYzRlLTIyNTQtMTFlYS1hMjZjLTAyNDJhYzExMDAwOSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0OnBvZC12aWV3ZXIifQ.Pgco_4UwTCiOfYYS4QLwqgWnG8nry6JxoGiJCDuO4ZVDWUOkGJ3w6-8K1gGRSzWFOSB8E0l2YSQR4PB9jlc_9GYCFQ0-XNgkuiZBPvsTmKXdDvCNFz7bmg_Cua7HnACkKDbISKKyK4HMH-ShgVXDoMG5KmQQ_TCWs2E_a88COGMA543QL_BxckFowQZk19Iq8yEgSEfI9m8qfz4n6G7dQu9IpUSmVNUVB5GaEsaCIg6h_AXxDds5Ot6ngWUawvhYrPRv79zVKfAxYKwetjC291-qiIM92XZ63-YJJ3xbxPAsnCEwL_hG3P95-CNzoxJHKEfs_qa7a4hfe0k6HtHTWA
ca.crt:     1025 bytes
namespace:  7 bytes
```

Login to dashboard using the above token. you should see only pods and namespaces

[![Refer the below link][1]][1]


  [1]: https://i.stack.imgur.com/D9bDi.png
#创建服务帐户
kubectl创建服务帐户pod查看器
#创建集群角色/角色
---
种类:ClusterRole
apiVersion:rbac.authorization.k8s.io/v1
元数据:
名称:pod查看器
规则:
-APIgroup:[“”]#核心API组
资源:[“pods”、“名称空间”]
动词:[“获取”、“监视”、“列表”]
---
#创建集群角色绑定
kubectl创建clusterrolebinding吊舱查看器\
--clusterrole=pod查看器\
--serviceaccount=默认值:pod查看器
#获取服务帐户机密
kubectl获取秘密| grep pod viewer
pod-viewer-token-6fdcn kubernetes.io/service-account-token 3 2m58s
#领取代币
kubectl描述秘密pod-viewer-token-6fdcn
名称:pod-viewer-token-6fdcn
名称空间:默认值
标签:
注释:kubernetes.io/service-account.name:pod查看器
kubernetes.io/service-account.uid:bbfb3c4e-2254-11ea-a26c-0242ac110009
类型:kubernetes.io/service-account-token
资料
====
代币:2.我的研究对象是一本书。2.我的研究对象是一本书。6.我的研究对象是一本书的2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6。6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 xMUAW8VC2vy2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2 G5KMQQ_TCWs2E_a88COGMA543QL_BxckFowQZK19IQ8YEGSEFI9M8QFZ4N6G7DQU9IPUSMVNUVB5AESACIG6H\U AXXDDS5OT6NGWUAWVHYRPRV79ZVKFAXYKYKWETJC291-qiIM92XZ63-YJJ3xbxPAsnCEwL\U hG3P95-CNzoxJHKEfs\U QA0EK6HTWA
ca.crt:1025字节
名称空间:7字节
```
使用上述令牌登录到仪表板。您应该只看到pod和名称空间
[![请参阅下面的链接][1][1]
[1]: https://i.stack.imgur.com/D9bDi.png

好的,我已经找到了解决方案。主要的问题是我在Azure AKS上运行集群,我应该在问题中提到,但没有提到。这是我的错误。在Azure AKS中,如果在AKS创建期间未启用rbac,则根本不使用角色和角色绑定。对api服务器的所有请求都将被视为来自管理员的请求。Azure支持部门也证实了这一点。这就是我的集群角色绑定和角色没有应用的原因。

运气不好。我仍然能看到一切。我可能做错了什么?默认情况下,所有服务帐户都有管理员权限吗?我真的不知道我在这里遗漏了什么,因为我也没有看到错误。正如所提供的文章中所说:
当他们在技术上使用RBAC创建用户时,他们只是给了这些用户完全的管理权限您是否尝试按照指南中所述的步骤进行操作?因为我无法复制你的问题。我看了医生,做了完全相同的事情,但仍然是相同的情况。这可能与我的仪表板版本或类似的东西有关吗?这里的难点是也没有错误。我已经提出了悬赏,并更新了一些东西。看看是否有帮助。您是否尝试过使用而不是手动创建.yaml文件来创建角色和角色索引?这只是使用命令行而不是yaml文件来复制相同的内容。这真的会有什么不同吗?参考下面的链接->这是你想要实现的权利。您只想查看角色定义中定义的内容太棒了!你找到了真正的答案。当我看到一些答案时,我也有同样的感觉。