kubernetes - Kubernetes Pod 安全策略
问题描述
Pod 安全策略控制被实现为可选(但推荐)准入控制器。PodSecurityPolicies 是通过启用准入控制器来强制执行的,但是在没有授权任何策略的情况下这样做会阻止在集群中创建任何 Pod。
由于 pod 安全策略 API (policy/v1beta1/podsecuritypolicy) 独立于准入控制器启用,因此对于现有集群,建议在启用准入控制器之前添加和授权策略。
问题:
我需要创建一个集群,然后定义一个 pod 安全策略来限制帐户/凭据以受限方式运行 pod。
这是否适用于该特定帐户或集群中的所有 pod?我更喜欢保持默认管理员帐户不受限制,同时只允许该特定用户帐户的修复 uid/gid 运行 pod。
我只是怀疑,如果我将 pod 限制为 runAs 仅修复 uid/gid ,它可能会破坏集群中的东西吗?
如何将 pod 安全策略应用于所有命名空间(现有和新)中的所有用户/服务帐户,集群管理员除外
解决方案
在这篇文章之后:
https://medium.com/coryodaniel/kubernetes-assigning-pod-security-policies-with-rbac-2ad2e847c754
原来我可以创建两个 PSP:
特权
受限制的
默认情况下,管理员可以访问它们,但它们是按字母顺序分配的,因此我可以将它们命名为:
01-特权
和
100-受限
所以对于 Admin ,有效的将是第一个。
对于普通用户,我将通过 clusterRole 和 Rolebinding 为所有经过身份验证的用户分配受限用户。
但事实证明,将 PSP 应用于用户帐户可以创建简单的 pod,但如果他们尝试创建副本集作为部署的一部分,它将不起作用,我们还需要将策略分配给 pod 服务帐户。
推荐阅读
- blockchain - 0x 协议错误:未找到给定网络 ID 的默认合约地址
- node.js - 吉普错误!: `C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe` 失败,退出代码:1
- c# - 我正在创建一个数组,我想从构造函数中指定它的长度
- c# - 动态生成属性表达式和空参数
- javascript - 如何将 JSON 数据存储在 JavaSCript 中的变量中?
- c# - x509store.Certificates.Find 为对象查找值传入字符串变量不匹配,但硬编码字符串值不匹配
- encryption - 如何在notepad++上配置nppcrypt插件参数
- python-3.x - 无法在 Ubuntu 中创建百万套接字连接
- python - 寻根代码的 Python TypeError(QuantEcon 包)
- microsoft-graph-api - Microsoft Graph API beta OnlineMeetings 错误 - 服务器错误:在 AAD 中按用户 ID 查找用户失败