为啥“Azure Kubernetes 服务 RBAC 读者”角色允许部署写入

Posted

技术标签:

【中文标题】为啥“Azure Kubernetes 服务 RBAC 读者”角色允许部署写入【英文标题】:Why does 'Azure Kubernetes Service RBAC Reader' role allow deployments write为什么“Azure Kubernetes 服务 RBAC 读者”角色允许部署写入 【发布时间】:2022-01-19 17:27:10 【问题描述】:

内置的 Azure 角色Azure Kubernetes Service RBAC Reader 描述为:

Allows read-only access to see most objects in a namespace....

那为什么它允许以下操作:

Microsoft.Resources/deployments/write

描述为

Creates or updates an deployment.

这怎么不是安全问题?

【问题讨论】:

您好@user3502661,如果我的回答对您有帮助,您可以点赞并接受它作为回答(点击回答旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢 【参考方案1】:

如果您通过门户打开 Kubernetes 集群,您将能够看到两个字段。

    操作:这会列出所有 Azure Kubernetes 服务角色。 数据操作:这是描述特定角色的主要内容,即您可以对数据执行的操作。

Microsoft.Resources/deployments/write这不属于Azure Kubernetes Service RBAC Reader角色。如果您转到 RBAC Reader 的 DataAction,则没有写入角色。此操作属于 Azure Kubernetes Service RBAC Write 角色。见下图。

注意: Microsoft.Resources 也包含 Microsoft.ContainerService/managedCluster/apps 资源

Microsoft.Resources/deployments/write 它在 Azure Kubernetes 服务 RBAC 读取器角色的操作部分而不是数据操作部分中提到。

【讨论】:

那么您是说Azure Kubernetes Service RBAC Reader 文档的“操作部分”中列出的操作不一定适用?我觉得这有点令人困惑。 @user3502661,Action 部分是对所有 RBAC 角色的通用描述。它在 dataAction 上显示的特定 RBAC 角色。

以上是关于为啥“Azure Kubernetes 服务 RBAC 读者”角色允许部署写入的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?