我发现了一些试图解决这个问题的人,在这里和这里只有略有相关的帖子,但没有为我解决。
问题:我想使用ABAC策略为我的群集创建只读用户。我的集群有3个大师和3名工人,版本1.4.7在AWS上托管。
我像所有3个大师一样编辑了我的清单/apiserver.yml(添加了这3行 - 在文件的底部,我当然安装了相关路径等。):
- - token-auth-file =/etc/kubernetes/policy/user-tokens.csv
- - 授权mode = abac
- - 授权policy-file =/etc/kubernetes/policy/apiusers.yml
我的apiuser.yml看起来像这样:
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"group": "system:authenticated", "readonly": true, "nonResourcePath": "*", "namespace": "*", "resource": "*", "apiGroup": "*"}}
我的用户token.csv看起来像这样:
tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH,bob,bob
我的kubeconfig文件中有一个:
users:
- name: bob
user:
token: tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH
当我尝试kubectl get nodes
失败时,如果相关,我可以用-v = 8打印输出,但基本上是Forbidden(403)
。在我看来,我在这里缺少一些基本的东西,该政策已经到位并阻止了所有事物和所有人,尽管它应该允许经过认证的用户仅阅读权利。
任何类型的帮助或建议都将不胜感激。
system:authenticated
组添加在1.5
1.5之前,您可以使用"user":"*"