【问题标题】:kubernetes RBAC DENY not preventing accesskubernetes RBAC DENY 不阻止访问
【发布时间】:2017-12-18 23:24:48
【问题描述】:

我正在运行一个 gke 1.8.4 集群,并发现允许访问资源的请求存在问题,即使 RBAC 拒绝了它们

来自 logs/kube-apiserver.log(我已经用 italics> 替换了我的用户名和我正在模拟的用户名):

I1218 13:30:38.644205 5 httplog.go:64] &{my_user> [system:authenticated] map[]} 充当 &{other_user> [system:authenticated] 地图[]}

I1218 13:30:38.644297 5 rbac.go:116] RBAC 拒绝:用户“other_user>”组 [“system:authenticated”] 无法在命名空间“prod”中“列出”资源“秘密”

I1218 13:30:38.676079 5 wrap.go:42] GET /api/v1/namespaces/prod/secrets: (32.043196ms) 200 [[kubectl/v1.8.4 (linux/amd64) kubernetes/9befc2b]

为什么在 RBAC DENY 之后 api 继续进行 GET(并最终返回秘密以响应我的 kubectl cmd)?

我的 kubectl cmd 是:kubectl get secrets --namespace prod --as <other_user>

我怀疑还有另一个授权人允许它,尽管我已经做了我所知道的一切以确保没有(ABAC 应该被禁用,因为我在 1.8 上,谷歌云控制台显示它被禁用,我在 gcloud beta container clusters describe)的响应中看到“legacyAbac: {}”)

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    GKE 同时启用 RBAC 授权方和咨询 GKE IAM 的 webhook 授权方。指定的用户名是否有通过 GKE 的权限?

    【讨论】:

    • 啊,我完全应该检查一下!即使在检查了大量在线资源之后,我仍然不知道默认情况下启用了 webhook 授权器,但它确实很有意义,现在我将整理我们的 GKE IAM。非常感谢乔丹!
    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2018-09-27
    • 2016-10-10
    • 1970-01-01
    • 2011-08-21
    • 2012-07-30
    • 2015-06-21
    相关资源
    最近更新 更多