【问题标题】:Kubernetes RBAC: How to allow exec only to a specific Pod created by DeploymentKubernetes RBAC:如何只允许对部署创建的特定 Pod 执行
【发布时间】:2019-03-27 08:10:28
【问题描述】:

我有一个包含 30 个服务的应用程序命名空间。大多数是无状态部署,与一些有状态集等混合在一起。相当标准的东西。

我需要授予特殊用户一个只能在特定 Pod 中执行的角色。目前 RBAC 授予命名空间中所有 pod 的 exec 权限,但我需要收紧它。

问题是 Pod 是由 Deployment configurator 创建的,因此 Pod 名称是“生成的”configurator-xxxxx-yyyyyy。由于您不能使用 glob(即configurator-*),并且 Role 不能直接为 Deployment 授予 exec。

到目前为止,我已经考虑过:

  • 将 Deployment 转换为 StatefulSet 或普通 Pod,因此 Pod 将具有已知的非生成名称,并且不需要 glob
  • 将 Deployment 移动到单独的命名空间中,因此全局 exec 权限不是问题

这两种方法都有效,但都不是最优的。有没有办法为此编写适当的角色?

【问题讨论】:

    标签: kubernetes rbac


    【解决方案1】:

    RBAC,正如它现在的意思,不允许通过命名空间和资源名称以外的其他属性过滤资源。讨论开放here

    因此,命名空间是授权访问 pod 的最小部分。服务必须在命名空间中分离,以考虑用户可能需要访问它们。

    目前的最佳解决方案是将此部署移动到另一个命名空间,因为它需要与原始命名空间中的其他部署不同的访问规则。

    【讨论】:

    • 谢谢。和我预期的差不多,只是没有在我的搜索中找到具体的讨论。
    猜你喜欢
    • 2022-01-18
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2019-01-10
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多