Kubernetes ABAC模式不起作用



我发现了一些试图解决这个问题的人,在这里和这里只有略有相关的帖子,但没有为我解决。

问题:我想使用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":"*"

最新更新