我一直在研究SPIFEE(每个人的安全生产身份框架)[1],在这里,我正在按照我现在的理解起草流程,以使任何试图理解流程的人受益。

  • 身份注册表 – SPIRE服务器具有自己的身份注册表,该注册表保留两个粗粒度属性,这些属性决定如何将SPIFFE ID发布给工作负载。 它保留了下表中的详细信息。

特殊ID

节点选择器

Craft.io选择器

spiffe://abc.com/bill

aws:ec2:1234

k8s:命名空间:1234

spiffe://xyz.com/account

令牌:7236427472

UNIX:UID:1002

提供了单独的注册API来管理身份注册表中的这些条目。

  • 节点选择器 –定义可以在其上运行工作负载的计算机(物理或虚拟)。 根据运行工作负载的基础结构提供程序(AWS,GCP,裸机)确定要使用的选择器的确切类型。 例如。 AWS EC2实例ID,物理机的序列号。 节点证明者根据基础结构提供者采取行动以兑现那里的选择器。
  • 工作负载选择器 –这定义了在识别节点之后如何识别代表工作负载的流程。 这可以用进程本身的属性(例如Linux UID)或间接属性(例如kubernetes名称空间)来描述。 节点代理负责验证计算机上的特定进程是否符合其工作负载选择器的条件。 工作负载证明者基于流程属性来执行流程选择器。
  • SPIRE节点代理 –位于节点上的进程,用于验证节点上运行的工作负载的来源,并根据选择器通过Workload API为这些工作负载提供证书。

  1. 管理员或第三方应用程序调用注册API,以使用所需的SPIFFE ID和相关的选择器填充身份注册表。
  2. 节点代理使用预先建立的加密密钥对或基于基础结构提供程序通过SPIRE服务器进行身份验证。 例如,对于AWS EC2,节点代理将提交由AWS发布的节点的实例标识文档(IID)。
  3. SPIRE服务器中的节点证明者根据使用的机制来验证提供的标识文档。 如果使用AWS IID,则相关证明者将使用AWS设置对其进行验证。 验证成功后,SPIRE服务器会发送回一组SPIFFE ID,这些ID可以连同其进程选择器策略一起发布给节点。
  4. 当工作负载开始在节点中运行时,它首先致电节点代理,询问“我是谁?”。
  5. 基于上一步中接收到的进程选择器节点代理,并使用工作量证明者,代理决定要赋予工作量的SPIFFE ID。 它基于此生成密钥对,并将CSR(证书签名请求)发送到SPIRE服务器。
  6. SPIRE服务器使用工作负载的签名SVID以及信任包响应节点代理,指示该工作负载可以信任其他哪些负载。
  7. 收到来自SPIRE服务器的响应后,节点代理将接收到的SVID移交给信任,将生成的私钥捆绑到工作负载中。 此私钥永远不会离开其工作负载所属的节点。

如果您发现任何问题,请随时提出任何更正建议。

[1] – https://spiffe.io [2] – https://docs.google.com/document/d/1RZnBfj8I5xs8Yi_BPEKBRp0K3UnIJYTDg_31rfTt4j8/edit#

翻译自: https://www.javacodegeeks.com/2019/01/spiffe-nutshell.html

简而言之SPIFFE相关推荐

  1. 迁移学习 简而言之_简而言之SPIFFE

    迁移学习 简而言之 我一直在研究SPIFEE(每个人的安全生产身份框架)[1],在这里,我正在按照我现在的理解起草流程,以使任何其他试图了解流程的人受益. 身份注册表 – SPIRE服务器具有自己的身 ...

  2. junit:junit_简而言之,JUnit:测试结构

    junit:junit 尽管存在有关JUnit测试的书籍和文章,但我仍然经常遇到程序员,他们至多对这个工具及其正确用法都不甚了解. 因此,我想到了编写多部分教程的想法,从我的角度解释了要点. 也许在本 ...

  3. junit:junit_简而言之,JUnit:测试隔离

    junit:junit 作为顾问,我仍然经常遇到程序员,他们对JUnit及其正确用法的理解最多. 这使我有了编写多部分教程的想法,以从我的角度解释要点. 尽管存在一些有关使用该工具进行测试的好书和文章 ...

  4. junit单元测试断言_简而言之,JUnit:单元测试断言

    junit单元测试断言 简而言之,本章涵盖了各种单元测试声明技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了主题,并说明了如何创建和使用自定 ...

  5. 迁移学习 简而言之_简而言之Java.io:22个案例研究

    迁移学习 简而言之 这篇文章试图涵盖java.io中的一整套操作. 与与此主题相关的其他书籍和博客相比,我的动机是通过案例研究来展示"操作方法". 曾经是Java的学生,我意识到学 ...

  6. 简而言之,JUnit:测试隔离

    作为顾问,我仍然经常遇到程序员,他们对JUnit及其正确用法的理解最多. 这使我有了编写多部分教程的想法,从我的角度解释了要点. 尽管存在一些有关使用该工具进行测试的好书和文章,但是也许可以通过本动手 ...

  7. 简而言之,JUnit:单元测试断言

    简而言之,本章涵盖了各种单元测试断言技术. 它详细说明了内置机制, Hamcrest匹配器和AssertJ断言的优缺点 . 正在进行的示例扩大了该主题,并说明了如何创建和使用自定义匹配器/断言. 单元 ...

  8. 简而言之,JUnit:测试结构

    尽管存在关于JUnit测试的书籍和文章,但我仍然经常遇到程序员,他们至多对这个工具及其正确用法都不甚了解. 因此,我想到了编写多部分教程的想法,从我的角度解释了要点. 也许在这个小型系列中采用的动手方 ...

  9. 简而言之Java.io:22个案例研究

    这篇文章试图涵盖java.io中的一整套操作. 与与此主题相关的其他书籍和博客相比,我的动机是通过案例研究展示"操作方法". 作为一名Java的学生,我意识到学习一种新的程序语言的 ...

最新文章

  1. SpringBoot复习:2(@Configuration注解)
  2. php ajax弹出框传值,PHP_Yii2.0 模态弹出框+ajax提交表单,如题 我们使用模态弹出框+ajax - phpStudy...
  3. 换个角度看敏捷1-敏捷问题解决方式
  4. 中粮集团对话农民丰收节交易会-万祥军:订单农业丰收经
  5. 电气论文:梯级水电站调度优化建模(文末有程序下载链接)
  6. CorrTracker解读
  7. 人工机器:jetbot小车密码
  8. 在Jersey 2中进行集成测试自定义验证约束
  9. leetcode96. 不同的二叉搜索树(动态规划)
  10. 工作总结1:代码中漫花谷出现很多NBSP
  11. printf 重新实现put_Go 实现海量日志收集系统(四)
  12. 3.5 Bounding Box预测
  13. lc300.最长递增子序列
  14. Windows设置程序开机自启动_设置程序开机自启动的几种方法_添加启动项
  15. Consider revisiting the entries above or defining a bean of type in your configuration.
  16. 电容或电感的电压_如何通俗的理解电流,电压,电阻,电容和电感?
  17. 二进制乘除法运算原理
  18. vue 登录注册模板
  19. 面向大数据的分布式调度
  20. Authentication vs. Authorization 验证与授权

热门文章

  1. OpenJudge1043 树上游戏(换根dp+细节处理)
  2. 【期望】关灯游戏(金牌导航 期望-8)
  3. CF650E Clockwork Bomb(树上构造类问题、并查集)
  4. Hadoop的FileSystem.copyToLocalFile两个参数 空指针异常
  5. IntelliJ IDEA 2018.2 发布,支持 Java 11
  6. javaweb实现分页查询(一)
  7. React中的方法调用
  8. 2020蓝桥杯省赛---java---B---6(成绩分析)
  9. 2014年JAVA省赛B组---第四题---大衍数列
  10. CV中多的空格导致报错