1. OPA
OPA(发音为 “oh-pa”)是一个全场景通用的轻量策略引擎(Policy Engine),OPA 提供了声明式表达的 Rego 语言来描述策略,并将策略的决策 offload 到 OPA,从而将策略的决策过程从策略的执行中解耦。OPA 可适用于多种场景,比如 Kubernetes、Terraform、Envoy 等等
这是一个始于 2016 年的项目,旨在统一不同技术和系统的策略执行。今天,OPA 被科技行业内的巨头们所使用。例如,Netflix 使用 OPA 来控制对其内部 API 资源的访问。Chef 用它来为他们的终端用户产品提供 IAM 功能。此外,许多其他公司,如 Cloudflare、Pinterest 等,都使用 OPA 在他们的平台上执行策略(如 Kubernetes 集群)。目前,OPA 已从 CNCF 中毕业。
该项目在 CNCF 托管:
- CNCF 分层:供应层
- CNCF 分类:安全与合规性
- CNCF 成熟度:已毕业
1.1. 适用场景
与 Kubernetes 集成
- 确保入口主机名只由前端团队改变。
- 拒绝拉取任何镜像,除了来自企业 Docker 注册中心的镜像。
- 对集群上创建的任何 pod 强制使用请求和限制。
API 授权
- 你可以将 OPA 与 Envoy、Istio 和其他平台一起使用,强制执行 IAM 控制。例如,你可以轻松控制安全人员对敏感数据的访问。
Linux PAM
- 可插拔认证模块(PAM)长期以来一直被用于 Linux,为包括 SSH 和 sudo 在内的多种服务提供细粒度的控制。OPA 有一个 PAM 插件,使其能够与 PAM 集成并执行策略。例如,你可以限制 SSH 对你的生产机器的访问,除非在非工作时间,或者除非用户有一个支持工单。