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

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


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

编译丨小东

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


说在前面


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

0?wx_fmt=png


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


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

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

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

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


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


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


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


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

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


角色


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


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


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

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

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

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


集合


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


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


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


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

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


主体


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

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


节点访问控制


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

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


实操案例


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


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


他们的要求很简单:


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

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

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


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


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

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


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


0?wx_fmt=png


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


  • 简单实用的容器监控命令——Ctop

  • Docker真实应用场景案例解析——ASSA ABLOY

  • 传统应用程序该不该迁移?看完这3点你就知道了!

  • Docker打破单一架构、平台限制,便捷移植即刻拥有!


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


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

你可能感兴趣的:(3分钟带您了解Docker EE的访问控制原理(内附实操案例))