如何防止误用 kubernetes 服务帐号

     2023-03-17     214

关键词:

【中文标题】如何防止误用 kubernetes 服务帐号【英文标题】:How to prevent misuse of kubernetes service account 【发布时间】:2018-06-27 09:56:34 【问题描述】:

我正在尝试使用 PodSecurityPolicy 来强化我的集群。 我创建了 2 个 Pod 安全策略,一个是默认的,它允许最小权限,另一个是限制的,它允许一个 Pod 的所有权限都可以通过 SecurityContext 请求。 默认的任何服务帐号都可以使用,受限的只能被部分服务帐号使用。

正如官方文档中所说,“大多数 Kubernetes pod 不是由用户直接创建的。相反,它们通常是作为 Deployment、ReplicaSet 或其他模板化控制器的一部分通过控制器管理器间接创建的。授予控制器访问权限该策略将授予该控制器创建的所有 pod 的访问权限,因此授权策略的首选方法是授予对 pod 服务帐户的访问权限”。 但似乎任何有权创建部署的用户都可以通过 spec.ServiceAccountName 在 yaml 中指定任何服务帐户。 这意味着只要某个顽皮的人知道有权访问受限 PodSecurityPolicy 的服务帐户名称,他就可以使用该服务帐户创建一个 pod,这将允许该 pod 获得升级的权限。然后他可以在 pod 中做任何事情。

那么有没有办法防止在 Pod 中滥用服务帐户?例如,如果用户想要使用他无权使用的服务帐户创建 pod,则 apiserver 会阻止该请求。

任何人都可以提供任何想法吗?谢谢!

【问题讨论】:

【参考方案1】:

命名空间允许您将用户限制为一组服务帐户。不受信任的用户可以被限制在仅包含低权限服务帐户的命名空间中。

【讨论】:

这似乎意味着以下两条规则:1)如果某些运营商使用的某些服务帐户具有集群范围的权限,则不得允许普通用户使用此命名空间 - 否则他们可以轻松通过重用“强大的”服务帐户来获得对他们不应该使用的资源的升级访问 2)命名空间中的任何用户都具有所有服务帐户权限的联合。因此,仅当存在可以读取 secret 的服务帐户时,才创建具有 pod 权限的用户是错误的。我发现这个模型对于命名空间的操作员来说非常有限......

Kubernetes 命名空间默认服务帐户

】Kubernetes命名空间默认服务帐户【英文标题】:Kubernetesnamespacedefaultserviceaccount【发布时间】:2019-03-3011:03:34【问题描述】:如果未指定,Pod将在默认服务帐户下运行。如何查看默认服务帐号的权限?我们是否需要将它与每个pod... 查看详情

如何防止sqlserver服务器被黑

一、基本安全设定:(1)文件系统的设定windows2000server支持多种文件系统,最安全的要数NTFS文件系统,如果你的windows2000server要用作服务器,最好将所有的分区都格式化为NTFS文件系统,fat32是不能用的。(2)补丁(pack)目前window... 查看详情

Kubernetes:如何防止 emptyDir 删除目录中所有预先存在的文件?

】Kubernetes:如何防止emptyDir删除目录中所有预先存在的文件?【英文标题】:Kubernetes:HowIdoIpreventanemptyDirfromdeletingallpre-exisitngfilesinadirectory?【发布时间】:2021-12-2114:06:04【问题描述】:我正在挂载一个emptyDir卷,因此它可以用于... 查看详情

如何防止 Kubernetes 水平自动扩缩器缩容?

】如何防止Kubernetes水平自动扩缩器缩容?【英文标题】:HowtopreventKuberneteshorizontalauto-scalerfromscalingdown?【发布时间】:2019-11-1602:49:39【问题描述】:我创建了一个基于cpu使用情况的水平自动缩放器,它工作正常。我想知道如何配... 查看详情

防止 Kubernetes 中的命名空间间通信

】防止Kubernetes中的命名空间间通信【英文标题】:Preventinter-namespacecommunicationinKubernetes【发布时间】:2018-07-3109:06:09【问题描述】:我是Kubernetes网络的新手。我们将Kubernetes集群分成一组命名空间(例如namespace-a、namespace-b)。每... 查看详情

如何防止在 Kubernetes 中由 HPA 创建的特定时间段内新扩展的 Pod 缩减?

】如何防止在Kubernetes中由HPA创建的特定时间段内新扩展的Pod缩减?【英文标题】:HowtopreventscaledownofnewlyscaleduppodforspecificperiodoftimewhichwascreatedbyHPAinKubernetes?【发布时间】:2020-10-0107:33:10【问题描述】:我在DigitalOcean中设置了一个... 查看详情

如何在一个 Kubernetes 集群中的命名空间之间隔离 Keycloak Infinispan,以防止 KC pod 相互发现和同步

】如何在一个Kubernetes集群中的命名空间之间隔离KeycloakInfinispan,以防止KCpod相互发现和同步【英文标题】:HowcanisolateKeycloakInfinispanbetweennamespacesinoneKubernetesclustertopreventKCpodfromdiscoveringandsynchronizingfromoneother【发布时间】:2022-01-150... 查看详情

缓存同步如何保证缓存一致性缓存误用!

缓存误用缓存,是互联网分层架构中,非常重要的一个部分,通常用它来降低数据库压力,提升系统整体性能,缩短访问时间。有架构师说“缓存是万金油,哪里有问题,加个缓存,就能优化”,缓存的滥用,可能会导致... 查看详情

负载测试 kubernetes 服务(使用 istio 服务网格)

】负载测试kubernetes服务(使用istio服务网格)【英文标题】:loadtestingkubernetesservice(withistioservicemesh)【发布时间】:2021-05-2602:18:47【问题描述】:在对通过istio完成路由的Kubernetes服务进行负载测试时,集群中的所有服务都变得无... 查看详情

我如何误用 NotThrowAsync

】我如何误用NotThrowAsync【英文标题】:HowamImis-usingNotThrowAsync【发布时间】:2020-10-1709:28:01【问题描述】:我使用了FluentAssertions;这很棒!:)我特别喜欢使用它提供的.Invoking().Should().Throw<Exception>()模式。我在测试中写... 查看详情

Kubernetes - 如何让 Pod 的服务名称与

】Kubernetes-如何让Pod的服务名称与【英文标题】:Kubernetes-HowtogetServiceNameofaPodAlignedto【发布时间】:2021-12-0908:58:58【问题描述】:我想知道,如何从Kubernetes中的PodName中找到服务名称。你们能推荐一下吗?【问题讨论】:【参考... 查看详情

如何确保 GCP 服务帐号没有管理员权限?

】如何确保GCP服务帐号没有管理员权限?【英文标题】:HowcanIensurethatGCPserviceaccountsdonothaveAdminprivileges?【发布时间】:2020-11-1318:46:25【问题描述】:我想确保GoogleCloudPlatform服务帐号没有管理员权限。此外,我想阻止用户创建具... 查看详情

如何使用外部服务器配置 Kubernetes?

】如何使用外部服务器配置Kubernetes?【英文标题】:HowconfigureKuberneteswithexternalservers?【发布时间】:2021-11-1017:53:53【问题描述】:我有外部Postgres,我想通过pgbouncer将hem连接到我的Kubernetesclaster。我需要用Postgres配置Kubernetes集群... 查看详情

如何从同一项目中的另一个 Kubernetes 集群调用 Kubernetes 集群公开的服务

】如何从同一项目中的另一个Kubernetes集群调用Kubernetes集群公开的服务【英文标题】:HowtocallaserviceexposedbyaKubernetesclusterfromanotherKubernetesclusterinsameproject【发布时间】:2015-10-1806:51:54【问题描述】:我有两个服务,集群K1中的S1和... 查看详情

如何暴露在 Kubernetes 中运行的服务

】如何暴露在Kubernetes中运行的服务【英文标题】:HowtoexposeservicesrunninginKubernetes【发布时间】:2020-08-1122:06:18【问题描述】:我在Ubuntu上安装了Charmed-Kubernetes。然后是istio及其bookinfo应用程序。kubectlexec-it$(kubectlgetpod-lapp=ratings-ojso... 查看详情

Kubernetes 如何从另一个命名空间访问服务

】Kubernetes如何从另一个命名空间访问服务【英文标题】:Kuberneteshowtoaccessaservicefromanothernamespace【发布时间】:2018-12-1118:06:28【问题描述】:我正在使用https://github.com/Yolean/kubernetes-kafka在minikube上运行Kubernetes我暴露了一个外部端... 查看详情

如何将角色与服务帐户绑定 - Kubernetes

】如何将角色与服务帐户绑定-Kubernetes【英文标题】:Howtobindroleswithserviceaccounts-Kubernetes【发布时间】:2020-04-0818:01:25【问题描述】:我知道有很多类似的问题,但就我浏览过的而言,它们都没有解决方案。谈到这个问题,我创... 查看详情

如何通过 SSH 连接到 Kubernetes 节点或服务器

】如何通过SSH连接到Kubernetes节点或服务器【英文标题】:HowtoSSHintoaKubernetesNodeorServer【发布时间】:2018-07-0903:44:20【问题描述】:如何通过SSH连接到AWS上托管的Kubernetes节点或服务器?我在AWS上托管了一个Kubernetes服务器和节点。... 查看详情