通过 kubernetes 中的 Gatekeeper 应用 ServiceAccount 特定的 OPA 策略

Applying ServiceAccount specific OPA policies through Gatekeeper in kubernetes

我们正在尝试使用 Gatekeeper 将 kubernetes 中现有的 PSP 替换为 OPA 策略。我使用 Gatekeeper https://github.com/open-policy-agent/gatekeeper-library/tree/master/library/pod-security-policy 提供的默认模板并定义了相应的约束。

但是,我不知道如何将策略应用于特定 ServiceAccount。 例如。如何仅对名为 awsnode 的 ServiceAccount 定义 allow-privilege-escalation 策略?

在 PSP 中,我为必需的 podsecuritypolicies 创建了一个 Role/ClusterRole 并创建了一个 RoleBinding 以允许 awsnode ServiceAccount 使用必需的 PSP。我很难理解如何使用 Gatekeeper OPA 策略实现相同的目标?

谢谢。

显然,PSP 和 Gatekeeper OPA 策略旨在实现不同级别的 Pod 安全性。以下是 AWS Support 对上述问题的回复。

Gatekeeper 约束模板(以及从模板定义的相应约束 CRD)适用于比 pods 更大范围的 Kubernetes 资源。 Gatekeeper 扩展了 RBAC 现阶段无法提供的附加功能。 Gatekeeper 本身不能由 RBAC 管理(通过使用动词来限制对 Gatekeeper 约束的访问),因为 Gatekeeper 策略约束不存在 RBAC 资源关键字(至少在撰写本文时)。 PodSecurity Admission Controller 对于寻找 PSP 替代品的人来说可能是一个选项,如果集群是 1.22 或更高版本,则需要由 RBAC 控制。