【问题标题】:Revoke access to kubernetes cluster on google container engine在谷歌容器引擎上撤销对 Kubernetes 集群的访问权限
【发布时间】:2016-09-13 15:54:30
【问题描述】:

我在谷歌容器引擎上托管。最近我的一个队友离开了公司,我想撤销他对集群的访问权限。我已经从计算引擎项目中删除了他的帐户,但他仍然可以访问集群。

他通过gcloud container clusters get-credentials <cluster> 获得了访问权限。我在~/.kube/config 中看到的条目看起来好像我和所有同事都获得了相同的证书。

我需要做什么才能将他从集群中移除?在我看来,关于这个主题的文档似乎为零。

补充说明: 集群仍在 Kubernetes 1.2.5 上

【问题讨论】:

    标签: security kubernetes google-kubernetes-engine


    【解决方案1】:

    当使用 per-cluster 证书时,目前无法撤销/轮换证书(请参阅Issue #4672)。完全撤销访问权限的唯一方法是删除并重新创建集群。

    如果您改为使用 Google OAuth2 凭据来访问您的集群(默认使用 1.3 集群和最新客户端),则权限与您项目的 IAM configuration 相关联,并且可以随时撤销/更改时间。

    检索集群证书需要调用者拥有container.clusters.getCredentials 权限,该权限包含在Container Engine Admin 和Editor 角色中。只要您授予团队成员的角色不包含该权限(例如Container Engine Developer),他们就无法检索集群证书。

    这里是GKE IAM docs,了解有关 GKE 权限和角色的更多信息。

    【讨论】:

    • 谢谢!现在这就是升级集群的原因。
    • 我们如何验证我们实际上是在使用 OAuth2 凭据来访问集群?是否可以阻止任何人使用 per-cluster 证书?
    • 查看kubectl config view的输出。每个集群都应该有一个user。如果 user 具有 auth-provider 和 name: gcp,则您使用的是 OAuth2 凭据。如果用户拥有client-certificate-data 和client-key-data 或username 和password,则您使用的是每集群凭据。
    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2018-06-06
    • 2017-09-05
    • 2017-05-23
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多