设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 手机 公司
当前位置: 首页 > 云计算 > 正文

保护Kubernetes集群的三大要素

发布时间:2022-07-26 15:07 所属栏目:124 来源:互联网
导读:随着基于容器的技术迅速得到采用,组织日益关注Kubernetes集群的安全性。虽然云和企业发行版提供了可靠的安全功能,但它们需要根据组织的安全要求进行调整。 本文将介绍保护Kubernetes集群需要考虑的三个基本方面: 基于角色的访问控制(RBA) 开放策略代理
  随着基于容器的技术迅速得到采用,组织日益关注Kubernetes集群的安全性。虽然云和企业发行版提供了可靠的安全功能,但它们需要根据组织的安全要求进行调整。

  本文将介绍保护Kubernetes集群需要考虑的三个基本方面:
 
  基于角色的访问控制(RBA)
  开放策略代理(OPA)
  网络策略
  基于角色的访问控制
  假设一家组织有三个应用程序团队(蓝队、绿队和红队)。由于这些团队开发不同的产品,应该授予它们访问Kubernetes集群的不同权限。比如说,绿队和红队不应查看、访问或删除蓝队部署的集群。
 
  RBAC是一种控制用户可以访问哪些Kubernetes资源的方法。虽然RBAC在默认情况下启用,但必须加以配置才能使用它。
 
  RBAC有五个关键要素:
 
  主题——用户和进程
  资源——应限制访问的对象
  动作——可以执行的操作(常常名为动作)集合
  角色——将API资源与动作连接起来的对象
  角色绑定——将角色与主题连接起来的对象
  不妨回到前面的那家组织,定义只有蓝队才能创建、删除和列出Pod、部署(Deployment)和服务(Service)的策略。
 
  我们先创建一个名为“role-blue”的角色对象,我们在其中定义可以对特定的Kubernetes资源执行的操作。在这个特定情况下,角色允许对资源:Pod、部署和服务执行“创建”、“删除”和“列表”等操作。

  接下来,我们创建一个名为“blue-rb”的角色绑定。这个角色绑定属于“blue-ns”,它将上面创建的角色“role-blue”与名为“blue”的蓝队联系起来。
 
  一旦将这些资源运用到集群,“blue”团队的用户就能够执行“role-blue”中定义的操作。
 
  开放策略代理
  开放策略代理(OPA)是一种通用策略引擎,可以跨整个堆栈统一策略实施。它的高级声明性语言提供了将策略指定为代码的灵活性。您可以使用OPA在Kubernetes、CI/CD管道或API 网关中实施策略。不妨深入了解如何在Kubernetes中使用和实施它。
 
  Kubernetes实施OPA的机制名为Gatekeeper。它被设计和部署成准入控制器,负责拦截请求、处理请求,并返回允许或拒绝的响应。
 
  如果允许,对象会部署到集群上;否则,请求将被拒绝,并向用户提供反馈。管理员可以定义策略,指示Kubernetes限制容器或命名空间可以消耗的内存或CPU等资源,仅批准基于来自特定注册中心的镜像的容器,限制NodePort服务创建,或执行标准命名。
 
  比如说,这是一个示例模板和约束策略,只有在命名空间中配置ResourceQuota后才允许创建Pod。
 
  网络策略
  网络策略与常规防火墙非常相似,不同之处在于它们以应用程序为中心。您为应用程序定义网络策略后,Kubernetes会自动将这些规则运用于关联的容器,这是由于容器会在高度动态的环境中不断创建和终止。网络策略控制进出这些容器的流量。
 
  默认情况下,进出Pod的网络流量不受限制。一个好的开头是设置拒绝所有流量的规则,然后只允许必要的流量。
 
  默认情况下,Kubernetes使用平面网络结构,允许任何Pod与集群中的其他Pod或服务进行通信。在有多个应用程序或多级应用程序的集群中,纵深防御在保护通信层方面起到了关键作用。网络策略使我们能够做到这一点。
 
  这是一个“app1-network-policy”,它在“blue”命名空间中为标签为“role=db”的Pod运用以下规则:
 
  [Ingress] 允许通过端口6379的来自ipBlock 172.17.0.0/24的连接。
  [Ingress] 如果来自其他Pod的连接被标记为“role=frontend”,并且如果属于端口6379上带有标签“project=myproject”的命名空间,允许这些连接。
  [Egress] Pod可以通过5978端口与IP范围为10.0.0.0/24的其他Pod进行通信。

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读