首页 > 解决方案 > Kubernetes Pod 安全策略

问题描述

Pod 安全策略控制被实现为可选(但推荐)准入控制器。PodSecurityPolicies 是通过启用准入控制器来强制执行的,但是在没有授权任何策略的情况下这样做会阻止在集群中创建任何 Pod。

由于 pod 安全策略 API (policy/v1beta1/podsecuritypolicy) 独立于准入控制器启用,因此对于现有集群,建议在启用准入控制器之前添加和授权策略。

问题:

我需要创建一个集群,然后定义一个 pod 安全策略来限制帐户/凭据以受限方式运行 pod。

这是否适用于该特定帐户或集群中的所有 pod?我更喜欢保持默认管理员帐户不受限制,同时只允许该特定用户帐户的修复 uid/gid 运行 pod。

我只是怀疑,如果我将 pod 限制为 runAs 仅修复 uid/gid ,它可能会破坏集群中的东西吗?

如何将 pod 安全策略应用于所有命名空间(现有和新)中的所有用户/服务帐户,集群管理员除外

标签: kuberneteskubernetes-psp

解决方案


在这篇文章之后:

https://medium.com/coryodaniel/kubernetes-assigning-pod-security-policies-with-rbac-2ad2e847c754

原来我可以创建两个 PSP:

  1. 特权

  2. 受限制的

默认情况下,管理员可以访问它们,但它们是按字母顺序分配的,因此我可以将它们命名为:

01-特权

100-受限

所以对于 Admin ,有效的将是第一个。

对于普通用户,我将通过 clusterRole 和 Rolebinding 为所有经过身份验证的用户分配受限用户。

但事实证明,将 PSP 应用于用户帐户可以创建简单的 pod,但如果他们尝试创建副本集作为部署的一部分,它将不起作用,我们还需要将策略分配给 pod 服务帐户。


推荐阅读