防止用户在kubernetes上受限的命名空间中生成pod。

问题描述 投票:0回答:1

如何防止用户在有高权限的服务账号的命名空间中生成pods,但允许他们创建命名空间?

例如,我有一个集群与velero在velero命名空间。我想阻止用户用veleroe服务账号创建pods,以防止用户创建特权账号。但我想让用户可以创建命名空间,并使用服务账号和重构的PSP。

kubernetes
1个回答
1
投票

在我看来,在Kubernetes中强制执行的惯用方法是通过创建一个 "服务账户 "来实现。动态验证准入控制器.

https:/kubernetes.iodocsreferenceaccess-authn-authzextensible-admission-controllers。 https:/kubernetes.iodocsreferenceaccess-authn-authzadmission-controllers#validatingadmissionwebhook。

我知道这听起来可能有点复杂,但相信我,它真的很简单。最终,一个接纳控制只是一个webhook端点(一段代码),它可以改变和或执行创建对象的某种状态。

所以在你的情况下:创建一个动态验证的webhook,然后简单的禁止创建不符合你限制的pod,并给出相应的相关错误信息。


1
投票

首先Valero使用的服务账号是在Valero命名空间中的。所以如果用户没有RBAC在Valero命名空间中做任何事情,它将无法使用Valero使用的服务账户。你应该为用户定义RBAC,使他们只能对指定命名空间的资源进行CRUD,而不能对其他命名空间的资源进行CRUD。当我说资源时,它也包括服务帐户。

© www.soinside.com 2019 - 2024. All rights reserved.