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

转载 2017年12月20日 00:00:00

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


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

编译丨小东

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


说在前面


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

0?wx_fmt=png


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


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

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

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

0?wx_fmt=png


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


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


0?wx_fmt=png


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

0?wx_fmt=png


角色


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


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


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

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

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

0?wx_fmt=png


集合


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


0?wx_fmt=png


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


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

0?wx_fmt=png


主体


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

0?wx_fmt=png


节点访问控制


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

0?wx_fmt=png


实操案例


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


0?wx_fmt=png


他们的要求很简单:


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

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

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


0?wx_fmt=png


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

0?wx_fmt=png


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


0?wx_fmt=png


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



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


0?wx_fmt=png

Excel:常用操作的各种案例

1.取消excel单元格科学计数    1.选择单元格,右键选择“设置单元格格式”,选择“数字”下的“文本”    2.然后双击单元格内容;ok,输入的一大串数字就会全部显示出来。 2.查找“格...
  • u011066470
  • u011066470
  • 2016年06月30日 09:49
  • 152

Docker入门实操

浅色边框标题docker简介Linux容器作为一类操作系统层面的虚拟化技术成果,旨在立足于单一Linux主机交付多套隔离性Linux环境。与虚拟机不同,容器系统并不需要运行特定的guest os。相反...
  • TM6zNf87MDG7Bo
  • TM6zNf87MDG7Bo
  • 2017年12月09日 00:00
  • 30

疯狂安卓实训 第13.2.3讲 HTTPClient的简易用法

第13.2.3讲 HTTPClient的简易用法 1 HttpClient简介 1.1 背景 (1.1.1)在访问有些网站和网站提供的某些API时...
  • yuch371
  • yuch371
  • 2014年07月31日 22:22
  • 227

【产业互联网】产业互联网实操指南

最全的产业互联网指南,让你一文搞懂传统企业如何拥抱互联网 人工智能赛博物理操作系统AI-CPS OS“人工智能赛博物理操作系统”(新一代技术+商业操作系统“AI-CPS OS”:云计算+大数据+物联网...
  • np4rHI455vg29y2
  • np4rHI455vg29y2
  • 2017年12月20日 00:00
  • 32

Java 访问权限控制:你真的了解 protected 关键字吗?

在一个类的内部,其成员能否被其他类所访问,取决于该成员的修饰词;而一个类能否被其他类所访问,取决于该类的修饰词。Java的类成员访问权限修饰词有四类:private,包访问权限,protected和p...
  • justloveyou_
  • justloveyou_
  • 2017年03月12日 22:54
  • 6471

见之于未萌,识之于未发,网络安全事件应急演练实操指南

以“网络安全为人民,网络安全靠人民”为主题的第四届国家网络安全宣传周结束了,但是作为一名网络安全从业者,我们的责任与义务远不止于参与各种安全周之中的活动而已。提升全民的网络安全意识、普及《中华人民共和...
  • SecSF
  • SecSF
  • 2017年10月26日 10:15
  • 113

满满的提高芝麻分实操技巧!

有段时间网上传了很多的关于提高“芝麻分”的攻略,了解下来很多小美都觉得有点太过片面,实操性不够,最近小美(美信生活)为大家倾情份上一份可以实操的提高芝麻分攻略。 1.    收货地址必须是本人名字,...
  • zhangzning
  • zhangzning
  • 2017年05月25日 11:20
  • 134

docker安装-升级-卸载

待补充
  • xiaoxulaoxu
  • xiaoxulaoxu
  • 2017年03月06日 21:46
  • 787

[集群搭建]记录使用docker搭建elasticsearch集群

记录使用docker搭建elasticsearch2.4.5集群1、 环境介绍本文运行环境 ubuntu16.04 + docker17.05 + 官网上下载的elasticsearch2.4.5,另...
  • psiitoy
  • psiitoy
  • 2017年06月14日 10:23
  • 2444

A股-入门-融资融券介绍及操作技巧

阅读原文:http://club.jr.jd.com/quant/topic/1236495 京东金融官方资讯QQ群:417082141 有什么想咨询的都可以来询问我们哦 一、什么是融...
  • JDquant
  • JDquant
  • 2017年03月31日 21:11
  • 498
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3分钟带您了解Docker EE的访问控制原理(内附实操案例)
举报原因:
原因补充:

(最多只允许输入30个字)