3分钟带您了解Docker EE的访问控制原理(内附实操案例)


出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


多租户环境在组织结构中有很大的优势。毫无疑问,它增加了对硬件的利用效率,同时它也使得IT角色更具倾向性并且提供了更加安全的隔离机制。这无疑会形成一个更加容易管理的基础设施。多租户环境是一个具有挑战性的实践,因为它不仅需要对资源进行严格的安全控制,而且还要确保不会使应用程序部署过于繁琐。



这篇文章将要介绍在Docker企业版(Docker EE)17.06中引入的基于角色访问控制(RBAC)的增强功能。这些增强功能可以实现更加细化的控制,以及灵活的策略建模,同时这也是多租户容器基础架构下的一个巨大的构建模块。这篇文章将帮助您解决以下3个常见问题:


  • 如何防止不同的团队成员在使用共享的基础设施时查看或修改彼此的应用程序?

  • 如何在集群中的特定节点上执行调度?

  • 如何管理所有的访问策略,以便清楚地知道谁能够访问哪些内容?


Docker EE访问控制是一种基于策略的模型,这个模型使用的是一个名为授权的访问控制列表来控制用户和集群资源之间的访问。授权是一种规则,它可以把谁(who)、谁能做什么行动(which actions)、与哪些资源(what resource)绑定在一起。


如下图所示,授权是由一个主体(who),角色(which actions)和一个任务集合(what resources)组成的:



让我们深入了解一下通过授权来实现访问控制的对象。


角色


Docker EE 17.06中的角色非常精细。它们直接映射到Docker API,允许创建由特定API调用组成的自定义角色,例如“docker exec”或“docker network create”。您可以将这些单独的功能任意组合在一起来创建与组织结构中角色类型相匹配的自定义角色。


以下是我们可以创建的角色类型示例:


  • “Dev”角色,允许开发人员从他们自己的容器中进行查看、检查并获取日志;

  • “Network Ops”角色,允许网络管理员创建、更新和删除Docker网络;

  • “Ops” 角色,代表开发人员可以部署应用程序;


集合


集合是Docker EE集群中的一组资源。这些资源可以是通用控制平面(UCP)中的容器、服务、网络、隐私、节点或任何一种类对象。集合允许我们识别一组对象并对它们运用相同级别的权限。



集合之所以强大是因为它使用的是分层体系。您可能想要将群集以不同的方式进行划分,例如按环境(staging/production)划分,按团队(appA,appB)划分,按安全区域(backend, frontend) 划分。组织所具有的任何划分都可以通过集合的分层体系来表示。


在本例中,“/ production” 集合有一个“/ mobile”和一个“/ payments”作为其子集合。集合可以拥有许多层级来映射到组织结构中。


主体


主体是授权的组成部分中代表“who”的那一部分。主体可以是个人用户、用户组或团队。这使我们能够以可扩展的方式为不同规模的用户编写策略规则。


节点访问控制


在共享的基础架构中,一个常见用例是跨越物理边界(如主机本身)进行功能的划分。节点访问控制是Docker EE的一项功能,它允许将工作负载的调度强制分发到特定节点上。当多租户场景需要物理分离时,可以使用此功能轻松完成。


实操案例


让我们假设有一个名为OrcaBank的公司,OrcaBank有两个应用程序团队,Mobile和Payments,以及一个Ops团队来管理应用程序。



他们的要求很简单:


  • 单独的应用程序将使用同一群集中的不同节点;

  • 开发人员只能访问自己的应用程序;

  • Ops团队可以代表开发人员部署应用程序;



使用一套简单的三层授权,我们可以为每个团队赋予特殊的权利。Ops团队可以将任何类型的资源部署到“/production”集合或其子集。Payments团队只能查看“/production/payments”集合内的资源,而Mobile团队同样只能查看“/production/mobile” 集合内的资源。


Docker EE访问控制非常强大,但同时您也需要清楚的了解谁(who)可以访问(which actions)哪些资源(what resources)。一旦您掌握了这些要点,那么这样一个便捷的功能就可以任您使用了。



点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值