当前位置: 首页 > 科技观察

多集群Kubernetes管理和访问_0

时间:2023-03-16 02:17:17 科技观察

译者|李睿评论|孙淑娟可以想象这样一座巨大的堡垒,城墙厚实,城门坚固,还有瞭望塔和护城河,以防万一。堡垒有多层防御来阻止攻击者,虽然攻击者可以游过护城河,但他们必须翻过高墙才能进入堡垒。因此,攻击者可能只能突破单层防御,但多层防御将很难攻破堡垒。如果你仔细观察,你会发现这些防御层都做了一件事来阻止攻击者的入侵。这正是保护应用程序所需要的——针对未授权访问的多层防御。谈到Kubernetes访问控制,需要管理许多不同的组件。Kubernetes集群本质上是复杂和动态的,这使得它们容易受到网络攻击。本文讨论了如何管理对多个Kubernetes集群的访问的基本考虑,有助于企业更好地规划Kubernetes的整体安全。隔离KubernetesAPIserver在Kubernetes集群中,控制平台通常用于控制节点,节点用于控制pod,pod用于控制容器,容器用于控制应用。但是控制平台的是什么?Kubernetes公开允许企业配置整个Kubernetes集群的API,因此保护对KubernetesAPI的访问是确保Kubernetes安全的最关键考虑因素之一。由于Kubernetes完全是API驱动的,因此控制和限制谁可以访问集群以及允许他们做什么是第一道防线。我们来看看Kubernetes访问控制的三个步骤。确保正确配置网络访问控制和TLS连接是身份验证过程开始之前的首要任务。(1)API认证访问控制的第一步是对请求进行验证。建议尽可能使用外部身份验证服务。例如,如果企业已经使用身份提供者(IdP)(例如Okta、GSuite和AzureAD)管理用户帐户以对用户进行身份验证。KubernetesAPI服务器不保证身份验证器的运行顺序,因此确保用户仅绑定到单一身份验证方法很重要。定期检查以前使用的身份验证方法和令牌也很重要,如果不再使用则停用它们。(2)API授权通过后,Kubernetes会检查请求是否被授权。基于角色的访问控制(RBAC)是授权API访问的首选方式。默认情况下,您应该知道四个内置的Kubernetes角色-cluster-admin、admin、edit、view。集群角色可用于设置集群资源(如节点)的权限,而它们的角色可用于命名空间资源(如Pod)。Kubernetes中的RBAC具有一定的复杂性和手动操作。(3)准入控制在成功验证和授权执行特定任务后,最后一步是准入控制以修改或验证请求。Kubernetes提供了几个模块来帮助定义和定制允许在集群上运行的内容,例如资源请求限制和执行Pod安全策略。准入控制器也可用于通过webhook扩展KubernetesAPI服务器以实现高级安全性,例如启用图像扫描。基于角色的访问控制(RBAC)Kubernetes得到如此广泛采用的原因之一是社区蓬勃发展和定期更新。Kubernetes1.6中引入的关键更新之一是基于角色的访问控制(RBAC)。虽然基本的身份验证和授权由RBAC负责,但角色的创建和维护在多集群环境中变得至关重要。如果任何用户被授予内置的集群管理员角色,他们几乎可以在集群中执行任何操作。管理和跟踪角色和访问权限是一项挑战。对于拥有大型多集群环境的企业,会创建和删除大量资源,这往往会增加未使用或丢失角色无人值守的风险。并且当以后创建新角色时,一些不活跃的角色绑定可能会意外授予权限。发生这种情况是因为角色绑定可以引用不再存在的角色。如果将来使用相同的角色名称,这些未使用的角色绑定可以授予本来不应该存在的权限。集群的复杂性和动态性随着集群、角色和用户数量的增长,确保控制需要对用户、组、角色和权限的适当可见性。每次添加新角色时,都需要配置额外的规则。对于大型企业,这可能意味着管理数百甚至数千条规则。这是管理员最糟糕的噩梦,因为缺乏集中式系统来管理集群中的所有角色。Kubernetes流行的原因之一是它天生具有可扩展性。它带有开箱即用的安全工具,允许应用程序和基础架构根据需要进行扩展。这意味着Kubernetes集群可以是短暂的,可以立即创建和销毁。每次创建或销毁集群时,都必须为特定用户配置访问权限。如果对集群的访问没有得到妥善管理,这可能会导致安全漏洞,可能会授予对整个集群的未授权访问。结论如今,大多数团队分布在企业内的不同业务部门。在典型情况下,开发人员、测试人员、业务分析师和顾问可能都在处理同一个应用程序——每个人都需要访问不同的集群或同一集群的不同组件。向不同用户提供正确级别的访问权限并在必要时撤销该访问权限非常重要。Kubernetes是一个协调良好的系统,由节点、集群、pod、容器、卷等多个组件组成。在规模上,数百个这些组件可以分布在世界各地的多个集群中。识别“谁”需要“什么”、访问“哪些”资源变得具有挑战性。只有这样,您才会意识到对Kubernetes安全工具的需求,这些工具不仅可以与您的基础设施无缝集成,还可以提供一种安全且统一的方式来管理对多个集群的访问。原标题:Multi-ClusterKubernetesManagementandAccess,作者:KyleHunter