如何在EKS集群配置全局PodSecurityConfiguration?是否仅支持命名空间标签?
在Amazon EKS中全局配置Pod Security Standard(PSS)的方法
问题背景
根据Kubernetes官方文档,为整个集群设置默认Pod Security Standard(PSS)需要创建AdmissionConfiguration文件,让API服务器在集群创建时加载。但在Amazon EKS的CreateCluster API里找不到配置该文件的入口,也不知道怎么在托管节点提供这个文件。在KinD或minikube中,AdmissionConfiguration要在cluster-config.yaml里引用,但EKS的API服务器是托管服务,没法修改或查看这个配置文件。GitHub相关议题显示目前没法在EKS集群创建时提供AdmissionConfiguration,不过AWS EKS最佳实践提到豁免规则会在Pod Security Admission(PSA)控制器配置中静态应用。
因此咨询:是否存在在EKS集群全局配置PodSecurityConfiguration的方法?还是只能通过命名空间标签实现管控?
解决方案
目前Amazon EKS不支持通过自定义AdmissionConfiguration文件来全局配置PodSecurityConfiguration,因为EKS的API服务器是AWS托管的,用户无法直接修改其底层配置(包括AdmissionConfiguration)。
你只能通过以下两种方式实现PSS管控:
- 命名空间标签标记:这是EKS中最常用的方式,给每个命名空间添加对应的PSS级别标签(比如
pod-security.kubernetes.io/enforce: restricted),来指定该命名空间的PSS规则。你可以通过批量更新命名空间标签的方式快速覆盖现有命名空间,同时可以设置NamespaceDefaultLabelNamespacesAdmission Webhook来给新创建的命名空间自动应用默认标签。 - 静态豁免规则:AWS会在EKS的PSA控制器中静态配置一些默认豁免规则(比如针对
kube-system等系统命名空间的豁免),但用户无法自定义这些静态规则,只能依赖AWS提供的默认配置。
总结来说,当前在EKS中无法实现类似自托管K8s集群那样的全局PSS默认配置,必须通过命名空间标签来逐个或批量管控PSS规则。
内容的提问来源于stack exchange,提问作者RubenLaguna
相关产品推荐
相关产品推荐

