【问题标题】:Azure AKS: Full access to new RBAC cluster with get-credentials without adminAzure AKS:无需管理员即可完全访问具有获取凭据的新 RBAC 群集
【发布时间】:2019-10-22 13:50:44
【问题描述】:

如果我从 Azure 门户创建一个全新的 AKS RBAC 群集,在我具有 Contributor 角色的资源组中,然后运行 ​​az aks get-credentials 没有管理员标志,我可以使用 kubectl 创建和删除 pod 和命名空间,读取集群范围的机密等等。这没有首先使用--admin 登录并创建任何RBAC 角色和绑定。

是什么赋予了我这些权限?基于discussions I found onlineget-credentials 的非管理员版本下载了 集群用户 角色的 kubeconfig 设置,这应该允许我登录,但除此之外别无其他盒子。

【问题讨论】:

    标签: azure azure-aks azure-rbac


    【解决方案1】:

    这里有点混乱。因此,如果您创建启用 RBAC 的集群,az aks get-credentials 将提取管理员配置(因此具有完全访问权限)。您需要登录创建角色\绑定\服务帐户\用户和generate kubeconfigs for other users,这样他们才能获得您希望他们拥有的权限。

    但是,如果您使用 AAD integration 创建启用了 RBAC 的集群,则 az aks get-credentials 将根据您的 AAD 用户提取凭据,并且除非您配置适当的角色,否则这将不起作用(提取将起作用,访问 k8s 将不起作用) \bindings 在 k8s 中。

    【讨论】:

    • 您好,感谢您的回复。所以如果我创建一个 RBAC 集群然后使用az aks get-credentials(没有--admin)登录,我应该有完全访问权限吗?我的印象是,我只有在以下情况下才能获得完全访问权限:1)我使用 --admin 登录 并且 2)我还拥有集群管理员 IAM 角色。
    • 请阅读答案,它解释了一切。 --admin 提供集群管理员凭据,集群管理员不需要任何角色即可工作,默认配置
    • 这不是我的问题。我的问题是:为什么我没有使用--admin标志获得完全访问权限?
    • 阅读答案,因为非 AAD 集成集群只有您可以提取的管理员凭据
    • FWIW 来自 AKS 的设置相当不直观,具有集群用户角色的人会获得集群管理员凭据。更糟糕的是,凭证是通用的(masterclient 的用户名),并且由于它是客户端证书身份验证,它们不能在不滚动整个集群证书颁发机构的情况下被撤销。
    【解决方案2】:

    我们打开了支持票并得到了答复:Microsoft 确认这是一个错误并且他们正在努力解决:

    拥有“Azure Kubernetes 服务集群管理员角色”不应允许您使用用户配置文件 get-credentials。 但是,有一个错误,我们在get-credentials --admin 中返回的客户端证书与get-credentials 相同。这几乎意味着 clusterUser 和 clusterAdmin 一样好。

    【讨论】:

    • 这是错误的,我的意思是可能是这种情况,但这与提出的实际问题无关。如果您没有启用 AAD 的集群 - 它没有 2 组配置
    • 请更改接受的答案。这是错误的。以下@4c74356b41 给出的答案是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-14
    • 2022-11-09
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多