【问题标题】:Kubernetes [RBAC]: User with access to specific PodsKubernetes [RBAC]:有权访问特定 Pod 的用户
【发布时间】:2019-01-10 10:45:12
【问题描述】:

我需要将命名空间内的一组 pod 的访问权限授予外部支持。 我一直在阅读有关 RBAC API、[Cluster]Roles 和 [Cluster]Role Bindings 的信息;但我找不到任何关于如何将角色应用于一组 pod(基于注释或标签)的信息。 有谁知道是否可以这样做?

这是我现在使用的角色,需要将其限制为特定的 pod 集:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: <ClientX>-PodMonitor
  namespace: <namespace>
rules:
- apiGroups: [""]
  verbs: ["get", "list"]
  resources: ["pods", "pods/log"]

如果你们需要更多详细信息,请告诉我。

谢谢。

【问题讨论】:

  • “访问 pod”是什么意思?查看日志、执行日志、查看列表、连接到 Pod 中运行的服务的能力,...?
  • 一开始你只能看到他们的日志,但也可以得到pod列表(只有那些有权限的)

标签: kubernetes rbac kubernetes-security kubernetes-pod


【解决方案1】:

尝试以下在docs 上使用资源名称定义角色绑定的方法:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
    namespace: default
    name: configmap-updater
rules:
- apiGroups: [""]
  resources: ["configmaps"]
  resourceNames: ["my-configmap"]
  verbs: ["update", "get"]

【讨论】:

  • 我不认为这完全解决了@mvazquez 的问题,因为它没有涉及“基于注释或标签”部分。我希望完整的答案包括一个自定义控制器,它监视 Pod 并编辑 Role 以使 resourceNames 与带注释或标记的 Pod 保持同步
  • 感谢你们两位的cmets。我已经评估了“resourceName”选项;没有正确解释自己是我的错。 'resourceName' 是一个很好的选择,但例如,在我的情况下不能使用它,因为我定义的角色需要动词'list'。我将使用示例编辑我的问题,使其更具体。
  • 是的,我认为没有一种开箱即用的方法。您必须搜索或创建一个控制器来执行上述评论中@MatthewLDaniel 建议的操作。
猜你喜欢
  • 2020-07-23
  • 2019-06-07
  • 2017-03-14
  • 1970-01-01
  • 2019-06-06
  • 2018-05-26
  • 2018-05-08
  • 1970-01-01
  • 2020-09-09
相关资源
最近更新 更多