\

看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!

\

\\

在最近谷歌云平台(Google Cloud Platform,简称GCP)博客探讨容器安全的系列文章中,GCP团队已经提供了现有和拟议的开源软件供应链项目的更多细节。首先,Grafeas是通用API和语言,用于存储、查询和检索跟软件组件有关的元数据,诸如构建细节、测试状态和已知的安全问题。其次,Kritis是一个拟议的软件供应链管理框架,它允许使用存储于Grafeas中的元数据与Kubernetes构建和实施实时部署策略,这可以避免发布存在已知问题的容器镜像。

\\

GCP的博客文章指出,容器技术已经使快速创建、修改以及共享打包在容器镜像工件中的应用程序变得轻松容易。然而,随着部署速度的这种潜在增长,可能要对安全性进行权衡,比如需要验证容器化的应用程序是否已经通过质量保证,以及应用程序和镜像是否包含任何已知安全漏洞。回答这些问题的一种方式是追踪跟容器有关的元数据,例如,谁在使用它、功能和非功能测试运行的结果,以及它是否有任何已知漏洞。

\\

去年10月,谷歌和几个合作伙伴发布了Grafeas,Grafeas是一个开源项目,为容器镜像提供结构化的元数据API。Grafeas简化了元数据的处理,包括像软件包漏洞扫描结果的安全问题,并保持对这些信息的追踪:

\\

  • “构建”元数据能被用于验证容器镜像是根据构造策略使用具有签入源代码、受信任的构建器构建的。\\t
  • “程序包漏洞”元数据包含来自漏洞扫描服务的信息,并允许组织创建部署易受攻击的容器的策略。\\t
  • “镜像基础”元数据包含有关来自被检索容器的基础镜像的信息,以及用于构建容器镜像的附加层。\\t
  • “包管理器”元数据指明在容器镜像中所安装的软件包。\\t
  • “部署历史”元数据允许追踪哪些资源在何时被部署。\

Grafeas使用两个API概念,分别是备注和事件。该文档指明,该部门允许第三方元数据供应商代表很多客户创建和管理元数据。

\\

  • 备注是能够通过分析找到的或在过程中多次使用的项目和条件。例如,CVE可能是Linux软件包漏洞分析的结果。在构建过程中,关于构建器的信息会被存储于备注中。\\t
  • 事件可以被认为是备注的实例,并描述了在具体的云资源或项目(如:位置、具体的补救步骤等等)中如何找到该备注,或者具体的备注结果是什么(比如:由构建产生的容器镜像)。例如,事件可能会报告在容器镜像的具体软件包中找到最致命的OpenSSL错误(一个可能的备注),并包含如何根据客户的软件包补救最致命错误的有关信息。\

为了正确地把存储在Grafeas中的元数据聚合起来,存储的每种信息都有严格的模式。这些模式允许规范化来自多个供应商的数据、使用户能够随着时间的推移看到其组件中有意义的见解。当前支持的模式类型如下图所示:

\\



\\

需要支持新的元数据时,能够添加新类型,每种类型都有自己的模式。

\\

追踪Grafeas的元数据能让团队了解哪些容器存储于他们的环境中,并在哪些容器得到部署上实施限制。在部署前,工程师可以审查Grafeas元数据,确认其是否符合策略。另一种类型的元数据是“认证(Attestation)”,它是对一个事实的确认或认证,被用于这个目的(在商业上,认证是一个由会计师或审计师实施的过程,是对公诸于众的公司、公共机构或其他组织的财务或其他业务信息提供独立意见)。如果从Grafeas中提取的元数据与组织策略一致,就可以写一个证明以确认镜像符合部署要求的规定。下图来自GCP introduction to Grafeas,总结了该工具如何适用典型的持续交付管道:

\\



\\

在最近发布的白皮书中,GCP团队已经提出了“Kritis”,这是Kubernets的一个部署授权框架。Kritis框架的核心部分是Kubernetes准入控制器(Kubernetes Admission Controller),用于检查预期的认证,如果它们不存在时,就会阻止部署。该白皮书指出,除了基本准入控制外,Kritis还提供对“工作流实施、多机构签署、紧急部署等”的支持。一个叫做二进制授权(Binary Authorization,简写为BinAuthz)的托管Kritis alpha实现,目前可以在谷歌容器引擎(Google Container Engine,简写为GKE)上使用,不久之后的开源代码版也已列入计划。

\\

BinAuthz的关键概念是“认证机构(Attestation Authority)”和“策略(Policy)”,这是通过REST API管理REST资源实现的。认证机构是一个有权创建认证的命名实体。作为REST资源,它囊括了其认证的位置(在哪里存储和从哪里检索),以及验证标准(什么可证明有效)。然后,策略将认证机构命名为需要向某个目标部署工件的认证机构。认证机构命名(类型为“ATTESTATION”的)Grafeas Note,用来作为这个机构认证的锚点,并且如果认证必须签字,可以有选择地指定公钥。然后,该机构的认证可以以Occurrences为代表附加到该机构的备注上。

\\

Spotify最近讨论了他们如何把Grafeas和Kritis作为每天超过6000个容器构建的元数据以及在他们主容器注册的33万个镜像的真实性的核心来源。这使安全团队能够交付给用户实施适当的审计和生命周期策略。在持续的集成过程中,对容器(包括名为kubeaudit的本土安全审计工具的使用)实施了一系列审计,并且利用PGP以加密方式生成认证并签名,以确保其构建器和其他认证机构的身份。这些证明构成了在Kubernetes上使用Kritis实施的策略。

\\

关于Grafeas的更多信息可以在该项目的文档和GitHub repository上查看。Grafeas能用于实施多种安全策略,Kelsey Hightower已经提供了一个关于如何使用Grafeas以只允许容器镜像由特定私钥签名的教程。

\\

阅读英文原文:Managing the Software Supply Chain with the \"Grafeas\" Metadata API and \"Kritis\" Deploy Authorization

\\


感谢冬雨对本文的审校。

\\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

使用“Grafeas”元数据API和“Kritis”部署授权管理软件供应链相关推荐

  1. 使用Configuration Manager部署及管理软件更新(2)

    承接上一篇文章:http://ericxuting.blog.51cto.com/8995534/1543835 一. 确定软件更新符合性 1. 打开Configuration Manager管理控制 ...

  2. kingroot权限管理_KingRoot授权管理

    kingroot授权管理由国际一流的Kingroot团队所开发,KingRoot授权管理是一款安卓手机root权限授权软件,KingRoot授权管理具有一键Root权限授权.软件Root授权管理两大功 ...

  3. android 程序root权限管理,手机root之后进行软件程序授权管理 手机root权限管理方法...

    很多智能手机都会进行刷机,获取ROOT权限,但是如果没有进行正确的软件程序授权设置的话,使用起来跟没有ROOT之前是一样的,没办法获得软件程序的最高权限,软件也是没办法使用的.因此,今天,我们就一起来 ...

  4. CloudStack 的配置、部署与管理,以及 API 的使用

    CloudStack 在 IaaS 市场的背景和主要竞争对手 随着亚马逊在公有云和 VMware 在私有云方面的成功,各类企业纷纷在云时代迈出了自己的步伐,这些企业希望在自身的计算资源(主机,网络,存 ...

  5. 前端开发工具包-WijmoJS,部署授权详解

    概述 使用许可证密钥删除WijmoJS的评估水印.可以通过三个简单的步骤完成: 购买WijmoJS前端开发工具包并安装,分两种形式:直接引用和NPM安装. 申请部署授权Key. 使用WijmoJS前端 ...

  6. Kubernetes1.5新特性(一):Kubelet API增加认证和授权能力

    2019独角兽企业重金招聘Python工程师标准>>> 背景介绍 在Kubernetes1.5中,对于kubelet新增加了几个同认证/授权相关的几个启动参数,分别是: 认证相关参数 ...

  7. php数据接口api安全,API接口数据安全之授权码sign

    **API接口数据安全之授权码sign** >[success] 1. ASE加密方式加密 ~~~ class Aes{ private $key = null; /** *@param Str ...

  8. ArcGIS API for Silverlight部署本地地图服务

    ArcGIS API for Silverlight部署本地地图服务 首先介绍下我们的开发和部署环境: 部署环境: Windows 7 旗舰版32位操作系统 IIS 6.0 开发环境: Visual ...

  9. 在中间层 .NET 应用程序中通过授权管理器使用基于角色的安全

    基于角色的安全是从 Windows NT 的第一个版本开始在 Windows 平台上发展而来的.使用角色,操作系统可以通过检查称为 BUILTIN\Administrators 的组的安全上下文做出一 ...

最新文章

  1. 数据拟合matlab算法
  2. 为Zepto添加Slide动画效果
  3. springmvc三十一:spring mvc整体结构
  4. 应用程序“DEFAULT WEB SITE/ICLOCK”中的服务器错误
  5. tp5 cache缓存简单使用
  6. [蓝桥杯2019初赛]最大降雨量-模拟
  7. 首个视觉-语言预训练综述来了!
  8. python导出csv有引号_python – csv中的双引号元素不能用pandas读取
  9. UVa 10806 Dijkstra,Dijkstra(最小费用最大流)
  10. Linux:为什么那么多人讨厌systemd?
  11. 2021-08-30缺失的第一个正数
  12. ORA-01017: invalid username/password; logon denied
  13. xmos固件u8_XU208 USB数字界面 XMOS U8升级版 模块_便宜推
  14. 牛客练习赛50 F.tokitsukaze and Another Protoss and Zerg(分治+NTT)(模板题)
  15. C++一周学习总结(2021/05/03)
  16. 【UE4 005】自定义人物角色(Charactor) 替换小白人
  17. 【大局观】01—什么样的技术创新会出现在中国
  18. Cisco 7600系列Supervisor Engine 720-3BXL
  19. 2290亿美元,卡塔尔世界杯中国和卡塔尔 都赢了
  20. 用一个I/O口控制1个三色指示灯, 2个单色指示灯

热门文章

  1. Python NumPy教程
  2. amplify color_如何使用Amplify监视Nginx
  3. jquery 遍历无限极树_jQuery parent()和children()树遍历函数示例
  4. Java基础篇之什么是类集?
  5. 区块链支付平台技术的应用
  6. linux下rsync+sersync实现自动备份数据
  7. 七点建议帮助您部署云存储
  8. phoenixframework自动化测试平台webUI代码示例
  9. 从王者荣耀看设计模式(四.简单工厂模式)
  10. 7号团队-团队任务5:项目总结