400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

为何使用OPA安全策略

为何使用OPA安全策略,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

目前累计服务客户成百上千家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供网站设计制作、成都网站设计、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。

我们将演示如何使用OPA执行最细粒度的安全策略。请注意,本文是一个系列的一部分,我们将基于“OPA作为代码介绍”和“集成OPA到Kubernetes”中获得的知识进行。

你可能已经熟悉Pod安全策略,可以在其中对Pod应用非常特定的安全控制。例如,使用Linux内核功能,使用主机命名空间、网络、端口或文件系统,以及其他许多功能。使用OPA,你还可以对pods施加类似的控制,在本实验室中,我们将创建一个OPA策略,不允许在pods中创建有特权的容器。特权容器对主机的访问级别比非特权容器高。

为何使用OPA安全策略

为什么使用OPA而不是原生的Pod安全策略?

使用Pod安全策略来执行我们的安全策略并没有什么问题。然而,根据定义,PSP只能应用于pods。它们不能处理其他Kubernetes资源,如Ingresses、Deployments、Services等。OPA的强大之处在于它可以应用于任何Kubernetes资源。OPA作为一个许可控制器部署到Kubernetes,它拦截发送到API服务器的API调用,并验证和/或修改它们。相应地,你可以有一个统一的OPA策略,适用于系统的不同组件,而不仅仅是pods。例如,有一种策略,强制用户在其服务中使用公司的域,并确保用户只从公司的镜像存储库中提取镜像。请注意,我们使用的OPA是使用kube-mgmt部署的,而不是OPA Gatekeeper。

Rego的策略代码

在本文中,我们假设你已经熟悉了OPA和Rego语言。我们还假设你有一个正在运行的Kubernetes集群,该集群部署了OPA和kube-mgmt容器。有关安装说明,请参阅我们的前一篇文章。我们的no-priv-pod.rego文件如下所示:

package kubernetes.admissiondeny[msg] {  c := input_containers[_]  c.securityContext.privileged  msg := sprintf("Privileged container is not allowed: %v, securityContext: %v", [c.name, c.securityContext])}input_containers[c] {  c := input.request.object.spec.containers[_]}input_containers[c] {  c := input.request.object.spec.initContainers[_]}

让我们简要地浏览一下这个文件:

部署策略

OPA会在opa命名空间的ConfigMaps中找到它的策略。要将我们的代码应用到ConfigMap中,我们运行以下命令:

kubectl create configmap no-priv-pods --from-file=no-priv-pod.rego

kube-mgmt边车(sidecar)容器在opa命名空间中持续监视API服务器,以便你只需创建ConfigMap就可以部署策略。

运行策略

让我们通过尝试部署一个特权容器来确保我们的策略是有效的:

kubectl -n default apply -f - < 

请注意,我们有意将pod部署到默认命名空间,因为我们的admission webhook将忽略在opa命名空间或kube-system中创建的任何资源。

看完上述内容,你们掌握为何使用OPA安全策略的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


当前名称:为何使用OPA安全策略
分享URL:http://www.bluegullmedia.com/article/gdsegh.html

其他资讯

让你的专属顾问为你服务

2.3268s