Kubernetes SLSA合规项目- Kubernetes费城Meetup

2022年3月11日

< 1

JFrog是2022年费城Kubernetes Meetup (CNCF)的自豪赞助商

演示:Kubernetes发布工程团队正在努力在其发布过程中实现更高级别的SLSA遵从性。SLSA,或软件构件的供应链级别,是一个逐步增加软件发布安全性的安全框架。在这次演讲中,Adolfo将讲述Kubernetes组织目前正在经历的变化,比如为图像和工件签名,以达到更高的SLSA级别。参加本次会议,了解这些改进将如何直接影响Kubernetes用户和k8s组织下的其他项目。

主持人:Adolfo García Veytia (puerco)是Chainguard公司的软件工程师,他的工作是帮助开源项目在发布过程中实现更好的安全级别。他也是Kubernetes SIG Release的技术主管。他积极地在发布工程团队工作,专门改进驱动每个Kubernetes发布背后的自动化软件。Adolfo热衷于与朋友一起编写软件,帮助新的贡献者,并扩大云原生社区的拉丁存在。

点击这里查看幻灯片

视频记录

0:04 / 1:01:40

Kubernetes费城2022年3月- Kubernetes SLSA合规项目
45 viewsMar 11, 2022

3.

不喜欢

分享

保存

Kubernetes费城
59岁的用户
演示:

Kubernetes发布工程团队正在努力在其发布过程中实现更高级别的SLSA遵从性。SLSA,或软件构件的供应链级别,是一个逐步增加软件发布安全性的安全框架。

在这次演讲中,Adolfo将讲述Kubernetes组织目前正在经历的变化,比如为图像和工件签名,以达到更高的SLSA级别。参加本次会议,了解这些改进将如何直接影响Kubernetes用户和k8s组织下的其他项目。

推荐者:

Adolfo García Veytia (puerco)是一位软件工程师
他在Chainguard公司工作,帮助开源项目
在发布过程中实现更好的安全级别。

他也是Kubernetes SIG Release的技术主管。他
积极参与发布工程团队的工作
改进驱动自动化的软件
每一个Kubernetes发布的背后。

Adolfo热衷于和朋友一起编写软件,
帮助新的贡献者,并扩大拉丁裔的存在
在云原生社区。
0评论
Ari沃勒
添加评论…
成绩单

0:02
大家好,我是詹姆斯·斯特朗,这是2022年3月10日的费城队。
0:08
一如既往,这是一个CNCF社区活动,这意味着如果您有任何问题,它将遵守CNCF的行为准则
0:15
有任何问题请向我或其他行为准则的工作人员报告今天我们有一个
0:23
非常棒的见面有两个原因第一,我们要宣布我们得到了jfrog的赞助所以来自jfrog的ari来到这里
0:30
告诉我们所有这些,我们有来自kubernetes的sig发布领导讨论萨尔萨舞,所以我们要学习
0:36
关于萨尔萨,它不仅仅是涂在薯条上的美味
0:42
我们会讲到kubernetes是如何整合所有这些的,我想就像我说的
0:49
一般来说,我们会先开始有人想向我们介绍自己吗有什么项目
0:57
你是在找工作还是在找
1:02
向社区开放任何他们想要谈论的公告
1:09
不要有压力,事实上,事实上,我会在那里放一个,詹姆斯,在jfrog,我们正在找一个
1:15
开发商宣传部门的主管,也就是RVP,正在招聘我们现有的员工
1:22
一个很棒的开发者倡导团队但我们正在寻找一个我本来想当总监的开发者所以如果有人
1:28
在开发者倡导领域和开发者关系方面有经验的人愿意承担这样的角色呃,让我来
1:34
非常感谢,如果没人有的话
1:40
公告我想我唯一真正的公告就是我知道kubecon的日程安排
1:46
Eu刚刚被发布出来了看看有没有什么有趣的话题当然,如果你
1:53
不能去西班牙的瓦伦西亚那是一个很高的门槛你仍然可以加入实际上我知道在kubecon
2:02
在北美,他们做了很多广播
2:07
亲自演示,但也可以直播,所以你仍然可以参加
2:13
所以对每个人来说还是有些东西的,我知道我要你知道
2:18
我知道adolfo被录取了,但不幸的是我的演讲没有被录取
2:24
从这个角度来看,所有的演讲都很令人兴奋
2:29
我想我没有看到其他的公告了,我继续,我们把这个交给
2:36
阿里,我们来自drayfrog的新赞助商阿里,告诉我们关于呃jfrog和你们是什么
2:42
帮助我们,很好,首先谢谢你,詹姆斯给我这个机会,我要和大家分享一张幻灯片
2:49
各位,今晚出席人数少的一个好处就是有人真的很有才华
2:55
我们今晚抽奖获胜的几率不过简单地说我叫阿里·沃勒我是这次聚会的活动经理
3:02
是的,这是一个真正的头衔,我得到了这个头衔,所以我非常非常高兴,工作非常令人兴奋
3:08
特别是以聚会为生的人,尽管过去两年我们都是虚拟的
3:13
回到太空聚会,我非常非常兴奋,很高兴能成为费城的一员
3:19
Kubernetes社区,我住在亚特兰大,我实际上是一名圣殿毕业生,我毕业于圣殿大学
3:25
很久以前,我一直觉得费城是我的家,我想和大家分享一下
3:31
我们是嗯jfrog是devops软件公司最著名的artifactory
3:36
好吧,在你继续之前看一下幻灯片大家看一下,看起来剪得很好
3:42
我只能看到最上面的那张幻灯片,我只能看到它是否更好
3:48
好了,这样好多了,很高兴你告诉我,谢谢
3:53
嗯,是的,我在想也许我,你知道,我可能拉了它,哦,我知道发生了什么,好吧
3:58
现在每个人都能看到了,好的,很好,我要分享一点关于我们是谁,jfrog
4:05
devops软件公司最著名的是被认为是很多是黄金的artifactory吗
4:10
管理你的工件和依赖的标准,但是除了抽奖之外,我将告诉你一些
4:16
Moments,呃,我们想,呃,jfrog实际上有一个免费版本的cl,我们的云
4:22
软件和一个免费版本的artifactory现在提供给社区,它不是一个试用版本,你知道
4:27
这不是一种会用完的东西,突然你就变成了一个顾客,如果你玩的话,你知道你可以
4:33
继续使用它,嗯,不需要信用卡来使用它,从管道的角度来看,它有一部分
4:40
这就要求信用卡不会被收费,以防止欺诈
4:45
但除此之外,它是你的,你想玩多久就玩多久
4:52
这里有一些东西,如果你感兴趣,你可以点击,扫描二维码或使用
4:57
bitly链接,我将在聊天中删除,如果你正在使用docker,就像我知道的那样
5:02
你们中的很多人,你们可以使用人工制品,作为一种
5:08
通过缓存,你将免于任何费率限制投票从免费或匿名账户嗯,这是因为
5:14
我们和docker建立了合作关系,一旦他们把这些放在合适的地方,jfrog是第一个
5:20
与他们建立这样的安排,它今天仍然存在,所以这对你来说是有价值的,甚至是有用的
5:27
这是我们的免费版本今晚的抽奖是
5:33
这是oculus任务2。所以有人会有一个很好的机会来赢得比赛,现在我们没有了
5:40
不幸的是,出于合规目的,我不能作为一家上市公司进行网上抽奖
5:46
各种各样的原因,我是说,呃,但是我们确实是随机选择的我们确实在两个工作日内随机选择了一个人
5:53
通过电子邮件联系你一旦你正式领奖我们就会
5:59
能够分享我们当然会和整个社区分享获胜者
6:04
所以我们可以和你一起庆祝,我们甚至会代表你发一条推特,作为获奖者,你可以扫描
6:10
qr码在那里,使用比特链接也参与其中,我也会
6:16
在聊天中删除这两个链接,但总的来说,我们只是很高兴成为一部分
6:22
你在那里做的一些事情我很兴奋,我等不及要去那里了
6:27
当你亲自拿着他们的时候,詹姆斯,非常期待adolfo今天的演讲,谢谢
6:33
你太棒了,太棒了,我们肯定会免费使用的
6:39
云订阅,测试我们正在尝试的工具和东西总是很好的,我很欣赏这一点
6:44
非常荣幸,很好的交易,就这样,呃,那个男人
6:50
阿道夫,现在开始自我介绍,我们会
6:56
让你教我们萨尔萨舞太棒了,让我
7:03
分享你的演示,如果你能看到,请告诉我
7:12
是的,我看到了,我看到了章鱼的小喷射,对不起
7:17
完全正确,首先感谢詹姆斯
7:23
我真的很高兴能分享一些我们一直在做的工作,使kubernetes发布过程
7:31
更符合萨尔萨舞的框架我们会在
7:37
首先让我告诉你们一些关于
7:42
我叫阿道夫·加西亚我在一个叫
7:49
长安是一家供应链安全公司,我也经常在晚上工作
7:57
现在,现在,这也是我白天的工作但是,我已经工作很多年了,我
8:02
大部分照明和周末作为kubernetes发布的技术领导
8:09
我有两个女儿,我喜欢一有时间就骑自行车环游世界,至少以前我
8:15
来吧,呃,你可以在puerco找到我们
8:21
Twitter、slack、kubernetes等等
8:26
在我们开始之前,我想我想如果我有一些外卖的话,我会
8:34
今天我想给大家留下的是一些火鸡
8:39
首先,我想分享一下评估结果
8:44
我们评估了kubernetes发布过程在salsa框架下的表现
8时50分
我想分享我们在这方面已经取得的一些成功
8:57
为你工作作为kubernetes的最终用户或重新包装者甚至还有一些
9:05
我们迄今为止所面临的挑战,以及目前仍在面临的挑战
9:10
好的,在我们开始之前,我想先介绍一下萨尔萨舞
9:17
salsa是一个算法的缩写意思是软件的供应链级别
9:24
这是一个框架来确保
9:29
你是谁,试图指导您确保您的软件发布
9:35
如果你以[音乐]发行渠道为例
9:42
有很多攻击载体可以破坏你的人工制品
9:47
所以这是一个复杂的事情来确保你的释放过程,这也是一个
9:54
更大,更大,更复杂,事实上
10:00
然后是一个更复杂的任务,以确保您的软件发布
10:07
把他们想象成一个更广泛的供应链,所以萨尔萨尝试
10:15
给你一些建议,告诉你如何通过循序渐进的,呃
10:23
你可以开始使用的水平这也会给你更好的
10:28
了解了解你的发布过程
10:35
好了,下一个我想简单说的是
10:40
Kubernetes发布了Kubernetes发布的过程是
10:46
由一个名为krell的工具提供支持,这是kubernetes发布工具的首字母缩写或细胞首字母缩写
10:53
这个工具被设计出来它不仅可以做很多事情
10:58
发布kubernetes,它也用于生成发布说明
11:03
Kubernetes也用于发布cve信息,只要在Kubernetes中存在漏洞
11:10
它也建立,嗯,它也有一个模式,每天建立kubernetes,所以端到端
11:17
测试可以运行和其他一些事情,但它也是我们今天关注的主要部分
11:24
它是运行kubernetes发布程序的吗
11:30
克雷尔有两种主要的运作模式首先是分期和释放所以我们的想法是
11:35
每次我们做kubernetes发布时,我们都会准备好所有的东西,并确保工件看起来是正确的
11:43
每件事看起来都像预期的那样然后我们对这些工件进行推广
11:50
然后在中间的推广环节释放它们它所做的就是
11:57
假设我们打开一个拉请求
12:02
为了宣传,提议将要发布的图片
12:08
然后由一些人签署通常是发布经理
12:13
经过批准后,他们就会得到晋升,他们就可以向公众开放了
12:20
我们制作了30多个容器图像,关于这些发布的一些简单事实
12:25
我们为所有架构的所有kubernetes组件制作了50多个不同类型的二进制文件
12:31
另外,针对不同的体系结构和操作系统,我们制作了一组表,不仅是
12:37
源代码很糟糕,但是包含系统的某些部分的代码也很糟糕
12:43
举个例子,如果你认为有一个表包含了节点的所有二进制文件
12:50
这些都在里面我们还生产了一组s炸弹
12:56
一个材料的软件构建和一些来源元数据这两项我们要解释
13:02
今天晚些时候会有更多发布过程也会处理一些
13:08
Atom自动更新github页面,生成发布说明
13:14
它会把人们超量的通知发送到邮件列表等等,然后是最后一个
13:21
发行版的一部分是我们生产RPMS和开发包
13:26
这些不是我们做的,他们是他们
13:32
由谷歌内部的团队构建,因为他们有一些特殊的访问权限
13:38
这是建立它们的过程这是我们稍后要讲的一个重要部分
13:45
也有点,所以主要的努力是
13:52
Kubernetes发布过程salsa兼容是由一个帽跟踪,这是Kubernetes增强建议
13:59
这是30倍,我将在这个演讲中有链接,可能
14:04
我们可以在最后分享所有这些所有这些
14:09
我们谈论的事情,额,上限提出了一个改进的时间表
14:17
我们必须尽力达到莎莎舞的最高水平
14:22
如果你们还记得,对于那些可能不记得的人来说
14:28
你能解释一下什么是帽子吗?哦,是的,是的,这个帽子是一个公共的
14:33
公共文件,建议增强kubernetes,呃,具体到
14:40
每当一种增强对最终用户产生影响你就必须写一个上限
14:48
在所有利益相关者中,通常是其他锡克教徒
14:53
会去评论,你可以讨论如何处理增强
14:59
它的时间表和所有的基础设施需求,如果它如果它会有一个
15:07
对下游消费者的影响以及将要发布的文档
15:13
然后在讨论了一些之后它就合并了然后你就可以用它了
15:18
作为一份指导文件来指导你所做的努力所以不需要每一次拉动
15:25
在kubernetes中请求会影响最终用户的更改,例如,如果你提议
15:32
在小方块里换一面旗帜,你将不得不拿出一顶帽子讨论、提议和解释
15:39
为什么你认为这是一个好主意,其他人会对此发表评论,如果它被接受,它就合并了,然后你,你
15:44
那么我们为莎莎舞所开的帽子是什么
15:50
第3027步的全称是什么
15:58
salsa在kubernetes发布过程中的三级遵从性如果你想一下这个级别
16:04
我们刚刚看到萨尔萨舞升到了第四级
16:09
你越往上爬,遵循萨尔萨舞的挑战就越难
16:14
所以我们决定只在salsa 3之前使用帽子,因为有
16:22
我们稍后会看到一些挑战我们认为我们不能
16:28
不符合所以我们就雕刻到了三级
16:34
去年我们开始跳萨尔萨舞
16:39
挑战,嗯,这是我的照片,嗯,我是,我是墨西哥人
16:46
我住在墨西哥,所以这意味着我生来就有专业的学位
16:52
能够谈论萨尔萨辣酱和墨西哥卷饼以及所有这些,嗯,这也是萨尔萨辣酱
16:57
我们已经准备好了,去年的中期,是的,大约是1年
17:04
一年前,我们也开始了这个过程,并对kubernetes进行了分析
17:09
发布过程,并确保首先在哪里进行评估
17:15
它支持和匹配,试图匹配kubernetes发布过程与
17:20
当时发布的salsa规范是信任0.1
17:26
我们建立了这个电子表格,我们把它公之于众,每个人都可以去
17:32
讨论和评论我们将要学习的萨尔萨舞的每个要求
17:37
一层一层地去尝试,我会解释一些挑战
17:42
我们所面临的问题是它们是如何出售的有些我们不需要解决
17:48
因为发布过程在谷歌云构建中运行所以有些
17:54
所有的需求都是通过我们使用的现场服务免费为我们提供的
18:00
但是我们要一步一步来,看看每一个
18:06
第一个,萨尔萨第一级,萨尔萨第一级的题目是
18:11
构建过程的文档,它包括以下内容,它包含
18:19
遵循要求,所以第一个是你的源代码
18:24
必须是版本控制大多数现代项目都是这样因为大多数人都在git中处理它们
18:30
这是既定的吗?你的账单必须写在
18:36
感觉,呃,你不能发出命令来手动构建你
18:41
必须有一个脚本来运行它然后你必须有来源元数据可用哪一个
18:48
是一种格式,一种出处,它的意思是什么意思是什么意思
18:54
在供应链安全的背景下是
19:01
构建过程生成的允许您跟踪的元数据
19:06
嗯[音乐]每件文物都能让你证实它们是在某个时间点上制作出来的
19:13
在实际过程中,我们会看到一个这样的例子
19:18
然后,来源应该识别所识别的工件
19:23
建造者建造了这些东西它也应该列出实际的
19:30
你的软件发布的说明,所以我们
19:36
这是为了确保我们符合萨尔萨舞一级我们
19:41
回到电子表格做了分析,确定我们是这样的
19:49
所以在那个时候我们有版本控制和脚本构建但是我们为了
19:54
遵守萨尔萨一级我们没有问题,所以我们不得不去轮那
20:00
我们在发布过程中做了修改
20:05
释放过程中,才能保证我们的阶段
20:11
该构建生成一个突出的认证,并且在发布到站点之前检查该站点的出处
20:18
确保工件看起来并具有已证明的完整性
20:24
阿萨德站规定了,所以我们做了,我们在kubecon期间宣布了
20:31
在洛杉矶,我们宣布了kubernetes进程
20:37
萨尔萨舞是一级合规,所以在我们进一步讲之前
20:44
下一讲,我想简单介绍一下
20:49
实际的来源看起来是。我换个屏幕
20:55
分享我的终端哦,你这么做了,有人听说了吗
21:00
关于萨尔萨舞或者在今天的聚会之前写关于萨尔萨舞的文章
21:12
好吧,那就继续吧
21:18
不,我只是在等大家回答这个问题你还好吗
21:24
我认为重要的是萨尔萨舞是一个项目
21:31
它现在属于开放SSF基金会开源安全基金会
21:38
到目前为止,它有一个非常活跃的社区
21:44
这些人来自哪里
21:49
很多很多公司,你可以
21:54
每隔一个周四加入我们,我想我在最后有一个链接
22:02
今天的演讲,当我们分享演讲的时候,你们可以
22:07
沿着那里的链接,你就能看到我的终端了
22:16
好的,够大吗,好的,很好
22:22
让我
22:28
让我向您展示kubernetes发行版的内部
22:35
这就是1123 4版本所在的桶,你可以看到
22:44
这就是发行版里面的所有东西一些可怕的东西
22:49
在这里这是材料清单
22:55
这里有一个目录,里面有二进制文件等等
23:00
让我得到
23:08
首先让我给你们看一个s型骨
23:13
这样你就能看到我们产生的信息
23:23
我不打算深入讨论s炸弹是什么
23:30
我们可以说,s炸弹就像一个文件,它列出了我们发布的所有东西
23:37
所有的图像,所有的二进制文件,所有的依赖关系,进入到代码中,所以
23:44
冰炸弹是指当一个漏洞被宣布时,你可以使用s1方法
23:50
您正在运行的软件,并确保该漏洞不是或
23:56
检查其他漏洞是否适用于您,以便s1看起来
24:02
就像这样它是它列出了所有的所有的文件
24:07
他们的哈希值等等授权信息所有的东西都在那里
24:12
如果有人感兴趣,我可以分享一些我们做过的演示
24:18
关于过去的炸弹,但我可以给你看
24:24
这里面是什么样子的我刚把你的博客链接了关于什么是屁股的帖子好吧,酷
24:32
我来演示一下
24:37
有些可能还行,我给你们看看里面都有什么
24:44
在s骨里面这个s1描述了kubernetes的发布你可以看到这些图片
24:52
这是,这是这是由一个工具完成的我们在sig版本中生产
24:59
编写和使用s-form可以让你看到s1的内部来检查
25:05
文档中包含的内容因为如果你还记得s炸弹的源代码
25:11
对人们来说很难解析这些信息而这能让你把它可视化一点吗
25:17
位,所以如果你看到s1,它包含了所有图像的信息
25:22
然后再往下
25:28
这些这些是包含在发行版中的实际文件就像每个二进制文件一样
25:35
对于cubelet API服务器和所有的cubectl所有这些都是
25:41
包含在这里所以要记住这个因为s1会播放
25:46
其中一部分是南部地区的合规工作另一个是我想给你们看的
25:53
是在车站出的问题是什么
25:59
这个应该是
26:09
让我们看看这是否可以,好的,好的,这是一个来源证明,嗯,就像我一样,这个站的来源
26:15
在前面说,列出了所有的文件,在阶段产生的
26:22
用一些哈希来确保它们的完整性,它允许你检查
26:30
构建的一个步骤
26:36
因此,构建的一个步骤接收到它从前一个步骤中所期望的内容
26:41
这里列出了你在构建过程中产生的所有工件,但是
26:46
我想给你们看的部分在这里所以最后,这部分的构建列表
26:54
它是在哪里运行的所以它在云构建中它列出了我们的配置
27:01
用来运行构建,它会列出我们构建的实际git提交,所以如果
27:08
你可以回到kubernetes的源代码历史你可以去这个提交,确保那是版本
27:15
123.4被,被,呃,被抓住了,然后
27:21
还有关于发布过程本身的其他信息,例如调用日期
27:27
这个调用id你可以去谷歌云内部查看
27:33
建立日志,那就是当我们运行
27:39
这是他们会再次评论的所以我只是想给你们看这个因为我不想就像一个
27:46
概念性的东西,我想让你们看到实际的文件,让我切换回幻灯片
27:54
继续预防
28:00
好吧,窗户在哪,这里,好吧
28:07
所以我们在萨尔萨第一级的时候这是我们做过的部分
28:14
去年和今年我们一直在努力遵守萨尔萨舞第二级
28:19
所以我们设定上限的方式是我们想要遵守的
28:25
kubernetes 123的萨尔萨舞第一级已经完成了然后是萨尔萨舞第二级
28:30
试着为kubernetes 124做好准备
28:36
也许我们能在kubernetes 125到达萨尔萨3级。
28:41
每个版本大约需要四个月的时间
28:46
它涉及到的工作也适用于我们现在将要看到的其他帽子
28:53
给另一个人介绍萨尔萨舞的第二阶段
28:58
这些要求是在萨尔萨舞一的要求之上的
29:03
首先,构建应该在构建服务中运行
29:09
它们应该经过认证的服务生成意味着
29:15
实际的构建服务应该给你突出然后
29:20
它应该确定一些构建点当你
29:27
得到了发行版,所以这是我们考虑的方式,所以我们在构建中运行
29:32
服务是谷歌云构建,构建是经过身份验证的
29:38
所以不是,嗯。这个构建是经过验证的,这意味着
29:45
实际上,你可以通过其他电台来证实这张钞票是由某人发行的
29:53
但是出处实际上是由构建服务生成的,这是
30:00
还没有到位,所以我们目前的想法是
30:06
我们正在为所有kubernetes工件做一个大的签名工作
30:11
正在建立一个为期六年的项目
30:17
来自六家商店的委托
30:22
如果你不熟悉sixer这是另一个开放SSF的项目
30:28
哪一个可以让您轻松地对软件进行签名呢
30:35
通过一个很容易使用的一套工具签名你的容器图片签名你的
30:41
二进制文件的想法是,我们将所有六个存储工具构建到
30:47
Kubernetes组织所有的项目都是这样的
30:53
作为kubernetes组织的一部分构建的发布构件将得到签名
31:00
我们需要签署的一件事是产地证明
31:06
在车站的问题,所以一旦我们把签字工作到位,我们将能够满足点数
31:13
这里有两个是用来验证电台的来源的
31:18
第三点是,如果如果如果出处
31:26
这里的语言有点大,所以构建服务是生成的
31:34
构建服务应该在站点生成如果你想
31:41
例如,在github操作中运行你的构建有可能github
31:47
行为可以在某个时候为您的文物提供出处认证,而无需您做任何事情
31:55
云构建也是一样的,它可以运行,并给你你需要的证明
32:01
为了遵守这一点,这两个目前没有给你,但他们
32:07
当我们运行构建时,我们的构建系统会生成那些证明
32:13
目前有些人怀疑这是否足以满足这一点
32:19
因为我们确实在没有任何人为干预的情况下在车站获得了来源并在里面运行和生产
32:26
服务,呃,还有一些讨论如果这是有效的,以确保从
32:32
这一点萨尔萨舞目前还在开发中所以现在的版本是
32:38
0.2的标准,人们一直在反馈
32:44
它一直被纳入规格,所以变化很快
32:49
就目前的情况来看我们相信我们可以遵守
32:54
但它是开放的解释,然后最后
33:00
识别源代码,正如我们在kubernetes字段的来源的示例文件中看到的那样
33:06
进程生成,我们列出了git提交的地方
33:12
制作得还好吗
33:17
下一点,萨尔萨第三级萨尔萨第三级是第一级
33:26
关于萨尔萨舞水平的演变第一个可以让你知道发生了什么
33:31
在你的构建过程中,第二层允许你做出
33:36
确保您从构建过程中获得的信息不会被伪造
33:42
实际上是有符号的,所以没有问题了
33:48
真实性和萨尔萨第3级尝试插入一些常见的线程向量
33:55
对于构建过程,这些是一些
34:00
这些是接下来的要求,以满足萨尔萨3。
34:06
第一个是经过验证的历史意味着
34:13
对源代码的每一项更改都必须经过强身份验证,因此必须如此
34:19
经过严格鉴定,它也是开放的
34:25
呃,为了,为了,解释,呃,我们在kubernetes
34:31
好,让我跳到下一张幻灯片
34:37
这是有颜色的,所以我们可以讨论每一个,如果你曾经贡献过kubernetes
34:44
当你打开一个pull request时
34:49
你得把这个连同你的证件一起寄过去
34:54
而且只要这些请求得到授权
34:59
并且被某个人批准了LGTM,他们
35:04
他们是否得到了我们认为与这一点相匹配的标识然后下一点为我们编写代码
35:11
把两个红色的留到最后,我想说kubernetes中的另一个点
35:17
社区是你必须有多因素认证打开你的github帐户,以便在一个
35:24
拉请求,这是从强身份验证角度来看的
35:29
现在,审查员也必须符合这些要求,所以我们认为我们做得很好
35:38
这边,我们把红色的留到最后回答这个问题
35:43
然后是车轮系列我们在聊天中有一个问题
35:48
您如何确保在构建过程中依赖关系不容易受到攻击
35:54
所以我们,我们,我们,我们现在还不知道,不管什么时候
36:03
有没有一些努力在呃求安全实现扫码呢
36:11
还有一些努力是为了自动化地将CVS合并到
36:19
我们在依赖项中使用的基本图像,但我们简单地运行和
36:25
拉出我们已经打开的依赖项例如,依赖于一些
36:32
回购,但不是所有存储库都有它
36:38
每当我们发布一个版本的时候,我们都会尝试我们
36:43
是否有强烈的尝试来确保我们有
36:51
依赖关系是最新的,但是这些是最新的
36:57
作为依赖项,我想它们叫做so if
37:03
你可以看到kubernetes中的代码,kubernetes的依赖关系是由一个特定的
37:08
处理这部分代码的组,不是每个人,所以如果你,举个例子,如果你试图提出一个拉请求
37:15
这更新了一个依赖关系,它必须得到一组人的授权
37:21
这个句柄在某个地方有一个文档它有一个依赖策略
37:29
这建立了这个项目,所以我们在秘密方面
37:35
只要确保我们拉的所有依赖项都匹配那些由代码设置的依赖项
37:41
然后从依赖管理员那里信任它
37:48
我不知道这是否意味着抱歉,这正在进行中
37:54
好吧,好吧,那我们回到
38:00
需求,构建过程的孤立需求
38:06
那是我为我们签名的由谷歌cloud build免费提供所以当你运行一个
38:12
谷歌云构建它会在一个隔离的环境中启动你的构建
38:17
这符合不可证伪原则
38:22
好的,这是不可证伪的方面
38:31
它的意思是,每当你把一个突出的文件
38:36
你的用户不应该能够伪造,我们保证在好
38:41
它还没有到位,但一旦我们开始签署它,我们就只能
38:47
发布流程服务帐户可以生成并签署那些那些
38:54
这些文件,所以我们,我们认为,它将通过签署传下去
39:00
萨尔萨舞第二阶段的努力当我们遵守萨尔萨舞第二阶段的时候
39:06
那么入口点是的相同部分是的相同部分
39:13
建立我们运行构建的git提交的实际构建点然后所有的构建参数,如果你
39:20
还记得我们现在正在建造的卫星站吗他们已经建造了
39:25
参数里面的参数,所以我们现在要做的是在末端的部分
39:33
接下来的努力遵循萨尔萨三级第一个是构建为代码
39:39
所以无论什么时候作为代码需求的构建都有一个
39:45
这个项目只是一个计划,还没有代码
39:51
因为它的想法是我们将能够有一个内在的
39:58
Kubernetes或者我们将要拥有的发布工程存储库
40:03
账单的定义,我们要运行的地方,我们将列出
40:09
例如,构建点,我们将列出
40:14
我们期望构建的实际平台和诸如此类的东西会被签入存储库
40:20
构建会运行这些配置
40:26
这个想法是当前构建过程运行的方式是
40:31
其中一个发布经理执行
40:36
在他们的计算机上的构建过程构建不会在
40:42
在那个人的笔记本电脑中,它运行在谷歌云位上,但它是由发布经理启动的
40:50
它做了一些事情来确保比如说
40:56
发布管理人员不能指定构建过程在哪里运行的构建提交
41:02
要知道这一切都是由实际发行决定的
41:07
处理,但是当,比如说当释放
41:14
你可以你可以有机会你可以指定一些
41:21
另一个观点,如果你因为有时我们做几个阶段
41:27
如果某些东西失败了,例如,当你发布的时候,你告诉发布过程,例如,使用下一个
41:35
我想是123.5你可以指定你你你有吗
41:40
当我们发布kubernetes的时候,我们会告诉你好的,所以
41:48
Kubernetes 123.5使用这个特定的阶段字段
41:55
将构建和发布作为代码的想法是
42:01
一个文件会被输入到一个秘密列表存储库中
42:07
这是由一些发布经理验证的然后我们发布基于
42:13
文件中的信息,它们会是错误或者
42:22
当我们释放他们的时候,我们必须保持这个项目
42:28
只是计划好了如果有人想帮忙建造它们而你不止
42:34
欢迎来帮助构建kubernetes的代码,然后
42:39
最后是短暂的环境好吧,所以我犯了一个错误,所以雌性
42:47
环境是到位的,我们得到了传下来的谷歌云建设以及
42:54
当你的想法是,你运行你的构建,它运行在一个
43:00
容器或运行在运行执行构建并消失的虚拟机中,因此您不会
43:07
并不是说没有风险让环境受到损害
43:13
通过之前运行的过程,呃,那个应该是你应该是绿色的,因为它已经
43:20
好了,现在是最后一题
43:27
莎莎舞的四级莎莎舞是最难的
43:32
Level to to to to to to遵守我们决定把这个去掉,因为
43:39
这需要很多人的努力
43:45
我们要简单讲一下这些是第一批
43:50
切换到彩色幻灯片,使第一个参数少
43:56
就像我们说的,目前比赛管理器可以将一些参数传递给构建系统
44:03
在这里做些改动你的想法是当你运行你的构建时它们没有任何参数
44:09
所有这些都在构建中定义为代码
44:14
看了之前的幻灯片,然后我们不遵守密封的结构
44:21
因为密封构建系统的理念是它没有任何访问
44:26
网络,所以如果它受到损害,嗯,你可以扫描你的构建
44:32
系统在那里看不到任何东西,但如果它在某处被破坏了,如果你有芳香,它就不会
44:39
有没有办法上网下载恶意软件补丁或者其他我们不遵守的版本
44:46
在完全接入互联网的情况下运行,因为我们把所有的事情都做对了
44:51
现在,如果你认为当一个构建运行时,它保持依赖,它运行
44:57
人们的和授权信息,它会谈到github的几件事
45:02
到docker来提取一些基本图像等等这样我们就不会玩弄那个然后可重复的,可重复的
45:09
构建是他们自己的主题,可以是,可以是
45:15
演讲的主题本身所以可复制构建的想法是如果
45:21
在同一个提交点反复运行构建,就会得到相同的字节
45:29
每次你运行它的时候文件,所以它没有,它没有,所以kubernetes没有
45:35
但我怀疑我们是否能做到这一点
45:40
是可复制的,因为里面有各种各样的熵
45:47
从依赖关系和一些
45:52
我们在里面运行的一些进程从签名生成哈希等等
45:59
那么在最后,下面两个我们做了
46:05
遵守,如果你看到了s炸弹是kubernetes生产的
46:10
目前的版本,它包括所有的依赖软件,它包括所有的
46:17
传递依赖性也一样所以这两者之间的区别是
46:22
依赖关系是kubernetes使用的所有go依赖关系和传递依赖关系
46:28
那些依赖关系所依赖的所以依赖关系有两个层次
46:34
这些都包含在s1中所以我们已经遵守了
46:40
这些都是技术性的要求
46:46
可能会有一种方法去遵守这些规则但是很难
46:51
接下来的这些是不是更像人类
46:57
人类的要求比较难,第一个尽管是第一个
47:03
信息是否如我们所说的重现构建
47:08
我们现在在kubernetes中没有可重复的账单,所以没有信息来运行构建和制作
47:14
它和复制它,但安全,所以安全
47:20
它的意思是,您的构建过程得到了某些人的认证
47:26
标准的还是地下的
47:32
确保它的安全只要我们还有机会
47:38
这是否仍然存在一个持续的争论
47:44
Salsa社区如何用机器学习的方式来表达
47:51
我们的期望是,在某些时候,会有一个证券比如说一些安全审计员能够
47:58
认证你的建筑,以满足满足
48:03
莎莎,呃,一个规格,然后产生某种电子
48:09
证明您的构建是兼容的,因此一个仍在进行中,我们
48:14
还远没有达到萨尔萨舞的四级所以我们不遵守,我们目前没有,嗯
48:21
我们并没有试图遵守这一规定
48:26
这是接入和超级用户的因素,这两个都有
48:33
kubernetes的一些基础设施有问题
48:39
kubernetes发布的地方是由谷歌拥有的
48:44
就像我们在演讲开始时说的,例如
48:50
每一个版本的rpm和开发包都被谷歌人砍掉了
48:57
参与信号发布的志愿者可以很好地不是所有不是所有
49:03
他们中的任何一个都可以运行他们拥有的kubernetes版本
49:09
必要的访问,他们可以运行进程,并生成图像和二进制文件,但当它得到
49:17
至于RPMS和深度包,这些只能由谷歌人完成
49:23
他们所要做的就是
49:30
谷歌内部的志愿者团队负责处理这部分,但理论上任何谷歌用户都不能请求访问
49:37
切掉kubernetes包,所以如果你把它放在里面
49:44
Kubernetes组织在谷歌方面是一个没有未知的组织
49:50
因为我们真的不知道谁能访问或者已经访问了
49:56
在任何时候都可以访问到签名包所需的密钥
50:02
所以我们认为这是目前无法实现的,因为我们依赖第三方
50:08
我们不能保证我们可以限制访问
50:14
和超级用户一样
50:19
有些项目是这样的,kubernetes发行版在谷歌上运行
50:24
云和那些项目是由谷歌和其中一些拥有的
50:31
这些是群组的所有者,群组有super权限吗
50:37
用户到项目,我们不控制的,所以这也是一个
50:45
我们不能保证
50:50
或者限制对实际项目所有者的访问
50:55
如果你如果你考虑到这些因素我们决定现在不去学习萨尔萨舞四级因为
51:03
呃,有些事情是在发布工程团队之外的
51:08
当我们讲到第三级的时候我们就可以开始讨论这些问题了
51:14
也许试着学点萨尔萨舞四级
51:20
但到目前为止,这是不可能的
51:26
我想接下来也是最后一件事是我想
51:32
邀请任何想要参加的喜欢这种活动的人
51:38
喜欢探索供应链安全的边缘
51:44
因为我们真的在和规格一起工作因为他们要加入我们的努力
51:52
我们邀请你来我们的病人释放通道
51:59
这是kubernetes松弛的病态释放和释放管理这些是caps的链接
52:06
对于所有kubernetes工件签名的salsa三级遵从性
52:12
我们目前正在建设,呃,一些链接,我在这里留下一些
52:17
存储库的链接,以便您可以查看工具和
52:23
我的联系方式,如果你想问任何问题或确保
52:30
那你或者你所有的疑虑都能解决了,我希望
52:36
我做的很清楚,非常感谢,很乐意回答
52:43
关于评委所涵盖的主题的任何问题
52:49
这是很多信息,我一定会再看一遍录音,并问你更多的问题
52:56
问题,因为我是你的同事,我可以一直打扰你,但这是很多信息
53:03
这对我很有帮助你们有没有
53:08
问题是这么多信息我还得请阿道夫回来什么时候
53:16
削减了125美元,检查了进度
53:24
是的,任何时候我们都可以更新一下
53:30
我想下一个大问题是我们开始的时候
53:36
为图像签名,因为您将能够进行一次验证
53:41
任何你从kubernetes下载的工件,但它也会启用
53:47
下游工具,呃,检查,如果你如果你建造
53:54
任何使用kubernetes二进制文件或图像的工具
53:59
他们将能够确保他们从网络中提取的东西实际上是一个验证器效应
54:05
州长组织告诉你的,我们在聊天中从携带炸弹的嫌疑犯威尔那里得到了一个问题
54:12
Spec先出来这个问题我也不知道答案
54:18
我们的另一个同事在这里,我不知道,Tracy,你知道我要回答的问题吗
54:24
我看见你溜进来了,你能听到我说话吗
54:29
是啊,是啊,我认为s炸弹已经存在了很长一段时间了,所以我
54:35
他们是最早出现的,虽然萨尔萨舞是最近才出现的,它是基于
54:41
内部谷歌系统已经存在了大约八年了
54:46
在它目前的咒语中作为一个开源的东西它是相对较新的但是它是基于大约8年的
54:53
谷歌的经验,是的,知道你很棒,谢谢你,嗯,朋友们
54:59
阿里在里面放了抽奖的东西了吗去看看吧
55:05
点击这些链接,注册免费订阅
55:11
另一个问题萨尔萨舞会和fips或fedramp要求合并吗
55:17
嗯,我不知道和那些合并,我知道nist刚刚出了一个新的
55:22
框架呃SSDF这样的安全软件开发框架帮助
55:28
增加SDLC的内容,这样他们就有了如何进行安全软件开发的要求
55:35
我不知道有没有人把萨尔萨舞的要求和SSDF联系起来
55:41
框架,所以这将是一个有趣的博客文章写
55:46
是的,而且萨尔萨舞的好处之一就是你可以这样做
55:52
慢慢的,有时候规格出来的时候,只是列出了一些要求
55:58
有时候很难匹配,但是萨尔萨舞可以让你开始
56:03
慢慢来,解决最紧迫的问题
56:08
首先威胁到你的输油管道
56:13
我在alpha有个问题发布团队中有多少人
56:19
你在协调,用萨尔萨舞来集中所有人的注意力
56:25
发布管理的主题有两个两个级别的发布经理第一个
56:32
一个是完全的贷款发放经理,我们就是
56:38
我的意思是,我说我们是因为我是其中的一员,我认为有七个而不是五个
56:45
是的,五个,然后我们有另外七个发行经理助理,他们在
56:51
学习的过程,在某一时刻会变成完全的释放
56:59
管理者,两者的区别在于
57:04
成熟的发布经理可以在任何时候发布kubernetes版本,他们需要的伙伴也可以
57:11
在他们触发释放之前先进入
57:17
是的,还有那些次级团队每个发布周期都会改变因为你可以提名自己
57:23
成为团队的一员不不不,那是发布团队,所以发布团队就像另一部分
57:29
谷歌发行,他们处理,呃,他们不他们实际上不处理账单他们所做的是,呃,他们处理
57:37
我想有五个团队他们处理不同方面的信息发布他们处理
57:43
发布说明他们处理增强,比如确保
57:48
所有提议的改进都能在最后期限前发布我们有一个研究小组
57:56
还有一个ci信号,确保测试在运行时都是绿色的
58:02
是的,任何人都可以参与其中你可以有一个调查,只要有几个
58:09
大概是一个月前,所以它通常会在下一次发布的时候发布
58:15
如果被抓了,你可以去注册,呃,很难得到一个
58:20
位置在那里,因为我们只有。只有可用的位置
58:26
大约13%到15%的申请者有一个团队
58:32
有点大,因为大概有30个人,但是我们还是有几百人
58:39
有数百名申请者,所以很难被录取,不过你可以试试
58:44
而且,呃,参与进来通常,呃,所以这是,这是
58:51
发布团队的每一个领导都应该这样做
58:56
有一些标准来挑选这些人然后进入团队
59:02
我们努力确保多样性
59:08
还有人的起源,也在全球时区方面
59:15
要确保无论什么时候只要我们把
59:20
打电话你可以去问任何问题这里有每个团队的成员发布在围攻的发布中嗯
59:29
如果你想获得更多的角色信息,秘书的仓库也是如此
59:34
非常感谢大家还有其他问题吗我知道有很多
59:41
聊天,你有什么问题吗在我们再次休息之前,请务必填写调查问卷,这样你就可以得到一个
59:47
有机会赢得oculus和jprog和免费类描述
59:53
事实上,还有一件事我忘了提,我加入的原因之一
59:59
是不是因为我不是技术专家,不是因为devops软件对我个人来说总是因为t恤
1:00:05
呃,呃,事实上我忘了提的是我想让你们知道任何进入
1:00:11
抽奖真的没有输家如果你想要一件t恤里面应该有你的地址和你的
1:00:16
教堂大小我不会来看你什么的我要做的就是把一件t恤放在
1:00:22
给你寄我们的黑豹蛙t恤我今天没穿但是我想
1:00:29
确保今天在场的每个人都能得到一个,所以如果你想要一个,那就是你的,谢谢你说得很好,阿道夫,谢谢
1:00:35
谢谢你的分享,谢谢
1:00:40
谢谢你,好的,太棒了谢谢大家我们没有四月的讲座
1:00:46
和往常一样,我一直在寻找演讲者,如果你有任何项目或任何与CNCF有关的
1:00:54
请告诉我,我们会安排的
1:00:59
好的,谢谢大家,再次感谢adolfo,太棒了,我想强调一下,如果
1:01:07
如果你对kubernetes的发布感兴趣,欢迎加入我们
1:01:14
加入我们的电话是每周二在美国的早上所以
1:01:20
请过来打个招呼,我们很乐意接待你
1:01:26
是的,我张贴了很多链接,我将得到录音张贴,只要它完成渲染
1:01:33
谢谢大家,谢谢