作为云原生制品仓库服务,Harbor的核心功能是存储和管理
Artifact。Harbor允许用户用命令行工具对容器镜像及其他Artifact进行
推送和拉取,并提供了图形管理界面帮助用户查阅和删除这些
Artifact。在Harbor 2.0版本中,除容器镜像外,Harbor对符合OCI规范
的Helm Chart、CNAB、OPA Bundle等都提供了更多的支持。另外,
Harbor为管理员提供了丰富的管理功能,特别是作为开源软件,随着
版本的迭代,很多社区用户的反馈和贡献被吸收进来以便更好地适应
企业应用场景。本节将对Harbor的主要管理功能做简要介绍。

1.访问控制

访问控制是多个用户使用同一个仓库存储Artifact时的基本需求,
也是Harbor早期版本提供的主要功能之一。Harbor 提供了“项目”
(project)的概念,每个项目都对应一个和项目名相同的命名空间
(namespace)来保存Artifact,各个命名空间都是彼此独立的授权单
元,将 Artifact 隔离开来。当使用 Docker 等命令行工具向Harbor推送
和拉取镜像等Artifact时,这个命名空间也是URI的一个组成部分。用
户要对项目中的Artifact进行读写,就首先要被管理员添加为项目的成
员,具体的权限由成员的角色决定。加入项目的成员可以有以下角
色。
◎ 项目管理员(project admin):管理项目成员,删除项目,管
理项目级的策略,读写、删除Artifact及项目中的其他资源。
◎ 项目维护人员(master):管理项目级的策略,读写、删除
Artifact及项目中的其他资源。注意:在Harbor 2.0的后续版本中,该角
色的英文名将改为maintainer,中文翻译不变。
◎ 开发者(developer):读写Artifact及项目中的其他资源。
◎ 访客(guest):对Artifact及项目中的其他资源有读权限。
◎ 受限访客(limited guest):仅用于拉取Artifact,对项目中的
其他资源如操作日志(log)没有读权限。

如果用户user1需要推送以上golang 镜像(Tag为1.14)到Harbor仓
库,则需要由管理员在管理控制台上将其加为development项目的成
员,并赋予开发者及以上的角色。这种管理思路也适用于其他OCI
Artifact,如当用户使用Helm推送Helm Chart时,也要求用户在项目下
有相应的权限。
“项目”是Harbor里一个重要的概念,既被当作命名空间对资源进
行隔离,也作为管理单元,管理员可以在它上面创建和添加批量删
除、安全控制等策略来管理项目中的Artifact。一般来说,由Harbor的
系统管理员创建项目,并根据实际情况将普通用户作为成员添加到不
同的项目中。普通用户在使用Harbor时,都根据自己的权限在被授权
的项目中进行各种操作。
在第5章中会对访问控制及授权模型进行更详细的介绍。

2.镜像签名

镜像在本质上是软件的封装形式,从安全角度来看,开发人员在
部署镜像前需要保证镜像内容的完整性(integrity)。也就是说,这个
镜像必须是软件的提供者创建、打包并推送的,在这个过程中镜像并
没有被篡改。为了解决这个问题,Docker提供了内容信任的功能
(Docker Content Trust,DCT),帮助镜像发布者在推送镜像时自动
进行签名,并在必要时自动生成密钥。镜像的签名会被存储在Notary
服务中。Notary是由Docker公司基于TUF(The Update Framework)更
新框架开发的,通过对不同层次的信息进行签名,可以抵御中间人攻
击、重放攻击等恶意行为,保证软件分发的可靠性。
Harbor作为镜像仓库,也通过与Notary集成提供了对内容信任的
支持。

3.镜像扫描

容器镜像打包了代码、软件及其所需的运行环境,已发布的软件
及其依赖的库都可能存在安全漏洞。有安全漏洞的镜像被部署在开发
或生产系统中时,有可能被恶意利用或攻击,造成系统性风险,甚至
发生数据泄露等灾难性后果。之前也有研究显示,即使是Docker Hub
上的官方镜像,平均也有上百个不同等级的安全漏洞,足见容器镜像
在带来方便的同时存在很多安全隐患。
为了帮助用户减少这种风险,Harbor 项目与一些安全服务商制定
了一套扫描适配器(Scanner Adapter)的标准API,其中包含如何描述
自己支持的Artifact类型、与仓库的认证方式,以及触发扫描、查询报
告等功能。Harbor可以通过调用这些API驱动扫描器对仓库中的
Artifact进行扫描,并得到统一格式的包含详细通用漏洞披露
(Common Vulnerabilities Exposures,CVE)列表的报告。只要扫描器
的开发者实现了这套API,就可以在保证网络连通的前提下,由Harbor
管理员添加多个扫描器,在项目视图下选择扫描器并发起扫描任务,
得到详细的报告并保存在Harbor的数据库中。

此外,Harbor允许项目的管理员以项目级别设置安全策略,保证
只有经过扫描而且没有高危安全漏洞的Artifact才可以被成功拉取和部
署。

安全漏洞的发现和公布是一个动态的过程,相同版本的软件会随
着时间的推移报出越来越多的安全漏洞。一般而言,安全漏洞扫描器
每隔一段时间就需要下载并导入最新的漏洞数据包中。推荐管理员定
期对Harbor中的镜像及Artifact反复进行扫描,以确保及时发现漏洞并
安装安全补丁。在这个过程中还存在一种特殊情况:在扫描某个
Artifact时发现了新的安全漏洞,由于安全策略的设置导致它无法被部
署,包含漏洞的相应软件对于整个系统很重要,而针对这个漏洞的补
丁还需要一定时间才会发布。在这种情况下,为了不影响系统上线,
Harbor允许管理员设置白名单,即在确认安全风险可控的前提下,在
应用安全策略时故意跳过某些特定的CVE,以便Artifact被正常部署。

4.高级管理功能

除了以上基本功能,Harbor在版本迭代中还根据社区反馈,为管
理员及用户提供了很多高级管理功能以支持更加复杂的使用场景,包
括Artifact复制策略、存储配额管理、Tag保留策略(Artifact保留策
略)和垃圾回收等。

Harbor-核心功能相关推荐

  1. Springboot总结,核心功能,优缺点

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:lizmit https://blog.csdn.net/q ...

  2. 一文带你看懂Springboot核心功能及优缺点

    点击上方[视学算法]→右上角[...]→[设为星标⭐] SpringBoot核心功能 1.独立运行Spring项目 Spring boot 可以以jar包形式独立运行,运行一个Spring Boot项 ...

  3. SAP PLM 进阶 2 – 主要核心功能

    SAP PLM 进阶 2 – 主要核心功能 SAP PLM 核心业务逻辑 功能1:产品创意的组合管理 SAP产品组合管理概要 产品组合管理的主要对象 产品组合管理结构示例 新产品立项审批过程 功能2: ...

  4. Shiro 核心功能案例讲解 基于SpringBoot 有源码

    Shiro 核心功能案例讲解 基于SpringBoot 有源码 从实战中学习Shiro的用法.本章使用SpringBoot快速搭建项目.整合SiteMesh框架布局页面.整合Shiro框架实现用身份认 ...

  5. 产品设计认知:如何构建A/B测试系统,其核心功能有哪些?

    前言 不管在精益创业还是增长黑客理论中,A/B测试作为一种成熟的数据驱动产品优化的科学方法,其核心意义并不在于某一次试验的成功或者失败,而是这种通过试验和数据驱动的产品不断进化过程.A/B测试系统就是 ...

  6. 【阿里云课程】1小时快速掌握Tensorflow核心功能,完成完整的项目实践

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Tensorflow快速入门与实践 本节课内容为:深度学习系列课程第7期,Tensorflow快速 ...

  7. 【阿里云课程】1小时快速掌握Caffe核心功能,完成完整的项目实践

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Caffe快速入门与实践 本节课内容为:深度学习系列课程第7期,Caffe快速入门与实践,讲述Ca ...

  8. 【阿里云课程】从零开始1小时快速掌握Pytorch核心功能,完成完整的项目实践...

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第7课中一节,介绍如下: Pytorch快速入门与实践 本节课内容为:深度学习系列课程第7期,Pytorch快速入门与实践, ...

  9. 自己实现spring核心功能 三

    前言 前两篇已经基本实现了spring的核心功能,下面讲到的参数绑定是属于springMvc的范畴了.本篇主要将请求到servlet后怎么去做映射和处理.首先来看一看dispatherServlet的 ...

  10. 自己实现spring核心功能 一

    聊聊spring spring对于java开发者来说,是最熟悉不过的框架了,我们日常开发中每天都在使用它.它有着各种各样的好处,简单易用,得心应手... ... 我们一说到spring就会讲到ioc ...

最新文章

  1. Asp.Net中验证控件简单分析
  2. 21.单链表怎么就地逆序?
  3. 创建函数查找上级_一文秒懂JavaScript中对象的7种创建方式
  4. Hadoop 部署实例
  5. cambridge ifm strategic roadmapping takecontrol in times of uncerntainty
  6. Android 友盟分享躺过的几个坑,大坑,坑爹啊
  7. websecurity连接mysql_将MySQL连接器JAR放在我的WAR的WEB-INF / lib而不是tomcat lib中,使j_security_check失败...
  8. Spring中bean的作用域
  9. 深度解析大数据可视化管理平台的监控功能
  10. 【bzoj1704】[Usaco2007 Mar]Face The Right Way 自动转身机 贪心
  11. django 1.8 官方文档翻译:4-2-1 Django模版语言
  12. 单片机工作笔记001---了解单片机MCS51
  13. Atitit.pdf 预览 转换html attilax总结
  14. 2021-08-25剑指 Offer 13. 机器人的运动范围
  15. linux程序设计第四版中文pdf下载地址
  16. win7家庭版计算机桌面,win7家庭普通版如何显示桌面图标
  17. 计算机英语第二版期末翻译试题答案,开放英语I期末翻译测试题
  18. (statistic)你所不知道的P值--对统计学的批判
  19. 昨天疯传朋友圈的 Pony 马化腾的讲话,未来是全真互联网时代,又一场大洗牌即将开始...
  20. 用电脑看电视的方法!!

热门文章

  1. Type-c诱骗取电芯片大全
  2. dom4j使用方法总结
  3. Xbox帐号注册购买
  4. 山东大学Linux应用实验五
  5. vue 动态获取当前时间
  6. 国外优秀C/C++网站
  7. 腾讯面试题:有了二叉查找树、平衡树为啥还需要红黑树?
  8. 【C语言】指针第二弹(指针数组、数组指针、数组传参)
  9. SDL 开发实战(一):SDL介绍
  10. PTA 吃鱼还是吃肉