【问题标题】:Kubernetes ABAC mode not workingKubernetes ABAC 模式不起作用
【发布时间】:2017-07-09 20:55:51
【问题描述】:

我发现有几个人试图解决这个问题,只是在 herehere 上发布了一些稍微相关的帖子,但并没有为我解决。

问题: 我想使用 ABAC 策略为我的集群创建一个只读用户。 我的集群有 3 个 master 和 3 个 worker,版本 1.4.7 托管在 AWS 上。

我在所有 3 个主机上都编辑了我的 manifests/apiserver.yml(添加了这 3 行 - 在文件的底部,当然我安装了相关路径等):

  • --token-auth-file=/etc/kubernetes/policy/user-tokens.csv
  • --授权模式=ABAC
  • --authorization-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": "*"}}

我的 users-token.csv 如下所示:

tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH,bob,bob

我的 kubeconfig 文件中有这个:

users:
- name: bob
  user:
    token: tdU0ynyO3wG6UAzwWP0DO7wvF2tH8pbH

当我尝试kubectl get nodes 失败时,如果相关,我可以使用 --v=8 打印输出,但它基本上是 Forbidden(403)。 在我看来,我在这里遗漏了一些基本的东西,该政策已经到位并阻止一切和所有人,尽管它应该允许经过身份验证的用户只读权限。

任何形式的帮助或建议将不胜感激。

【问题讨论】:

    标签: kubernetes abac


    【解决方案1】:

    system:authenticated 组是在 1.5 中添加的

    1.5之前,可以使用"user":"*"

    【讨论】:

    • 啊乔丹,我刚刚在阅读您的其他帖子.. 太棒了,这就是我所缺少的。我没有足够的积分来投票给你,但这正是我的具体情况的正确解决方案。
    • 还有一个问题,如果我想让另一个用户成为管理员,那就是:“spec”:{“user”:“core-admin”,“nonResourcePath”:“”, “命名空间”:“”,“资源”:“”,“apiGroup”:“”}}?然后在我的 kubeconfig 中我会为同一个集群设置另一个上下文(并添加用户名等......)?还是有更好的方法?
    • 我自己回答了。。我上面写的是正确的,政策对象的外观很重要,即管理员应该是第一行。
    猜你喜欢
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2019-02-08
    相关资源
    最近更新 更多