使用JFrog访问管理安全实体

二进制文件安全的无名英雄
JFrog访问是管理所有JFrog服务的身份验证和授权的哨兵。与JFrog Artifactory一起打包和安装,Access通过确保只有授权用户才能访问它们来确保二进制文件的安全。然后,那些访问你的二进制文件的人,只能做他们的权限允许的事情。由于Access没有自己的UI,所以它是由Artifactory在幕后操作的,因此它是二进制文件安全性的无名英雄。
建立联系
为了让Access像对JFrog服务那样工作,它需要连接到JFrog服务。在Artifactory的情况下,Access一起安装在同一个Tomcat下,Artifactory通过内部REST API与它通信。在JFrog x射线和JFrog任务控制的情况下,当您将Artifactory设置为时,就会建立连接身份验证提供者.对于JFrog Distribution来说,连接是通过任务控制中心的认证提供商进行的。

基础知识:用户、组和权限
无论您是直接在Artifactory中创建用户和组,还是从外部身份验证服务器(如LDAP、SAML或Crowd)导入用户和组,Access都是实际执行用户和组之间的关系以及分配给它们的权限的服务。例如,当用户尝试登录到其中一个服务时,实际上是JFrog Access(而不是服务)确保用户正确注册。或者,当用户试图访问或对工件执行某些操作时,是access检查该用户的权限(无论是显式授予的,还是通过组成员关系间接授予的),并确保允许用户执行该操作。
现在开始变得很酷:访问令牌
访问令牌是另一种身份验证方法,可以代替用户和密码使用。使用访问令牌可以打开一系列功能。
Cross-Instance身份验证
想象一下Jack,一个需要访问多个Artifactory实例的开发人员。例如,可能在开发期间使用一个实例,而在QA或登台期间使用另一个实例。当使用用户/密码进行身份验证时,您需要在两个实例上为Jack创建一个用户,但是,使用访问令牌可以简化身份验证。通过在一组Artifactory实例之间共享公共证书,您可以建立一个信任圈其中,由圈子中的任何成员发出的访问令牌可以被所有其他成员接受。因此,如果这两个Artifactory实例处于信任圈中,则只需在其中一个实例上为Jack创建访问令牌,他就可以使用该令牌访问另一个实例。
但是等等,还有更多。由于Artifactory被用作其他JFrog服务的身份验证提供者,因此Jack也可以使用相同的访问令牌访问任何连接到信任圈内任何Artifactory实例的x射线、任务控制或分发服务。
非用户身份验证
但杰克不是唯一一个需要进入神器工厂的人。您的CI/CD服务器也是如此。您可以使用访问令牌配置CI/CD服务器,它可以使用访问信任圈内的任何Artifactory实例。因此,例如,您的CI/CD服务器可以从一个Artifactory实例中提取依赖项,并将构建上传到另一个Artifactory实例。

最终用户和CI/CD服务器都可以使用令牌访问信任圈内的任何Artifactory服务。
基于时间的访问控制
因此,访问令牌是为用户和机器提供访问信任圈内所有服务的好方法。现在,管理和监视一个拥有大量用户的组织已经足够困难了,但是想象一下,尝试管理您可能向不同用户和机器发出的所有访问令牌。为了防止维护噩梦,您可以为访问令牌设置有效期,以限制用户或机器可以使用它的时间。但是,如果您想委托对访问令牌的控制,还可以使其可刷新,这样受信任的用户就不必在每次当前令牌到期时请求新的令牌。
分配组范围
最后,访问令牌不必是“个人的”。您可以将组分配给访问令牌,该令牌将为其用户提供组访问权限。
访问联盟:使复杂的全局用户管理变得简单
虽然访问令牌可以很好地为用户(和构建服务器)提供对不同JFrog服务的访问,但它们不能管理对系统的更改。例如,在一个服务上添加的新用户不能自动访问另一个服务。用户对一个服务权限的更改不会反映在另一个并行服务中。随着企业规模的扩大和用户数量的增长,管理用户、组、访问令牌和跨公司全球服务器的权限之间的关系可能会成为一项复杂且耗时的工作。访问联合使得管理这些安全实体变得简单和完全自动化。您可以将其视为访问令牌的跨实例身份验证功能,扩展到包括为公司的全局JFrog服务设置的信任圈内的所有安全实体。从根本上说,Access Federation提供的是对安全实体的更改与已定义的信任圈的自动同步。
使用访问YAML配置文件,您可以完全控制哪些安全性是同步的,以及在哪个方向上同步,从而使您能够为不同的用例设置不同的同步拓扑。考虑在一个项目上工作的4个独立团队,每个团队都使用自己的Artifactory服务。为了保持团队的同步,您需要为所有服务器上的所有成员提供平等的访问权限。您可以将其设置为全网格拓扑,以便对其中一个服务器的任何更改(例如,向团队添加新用户,更改权限或形成新组)自动同步到所有其他服务器,因此每个人对所有服务器的访问保持不变。

另一个例子是维护用于灾难恢复的人工实例。在下面的图中,全网格1和2以及中央访问设置在全网格拓扑结构中,与上面描述的相同。但是现在,还有一个DR实例,它只能接收在任何其他服务上所做的更改。如果其他三台服务器中的任何一台出现故障,DR实例可以完全投入运行,并且它已经完全配备了其余两个实例的完整和最新的安全配置。

访问联邦以支持灾难恢复
确保二进制文件的安全,确保只有具有正确权限的经过身份验证的用户才能访问它们,这在生产系统中是不可能的。这是将安全转移到DevSecOps核心的左倾文化的极端结果。JFrog Access为您提供了确保二进制文件安全所需的所有功能,并且只根据您的访问策略公开,从创建二进制文件到将其部署到生产系统为止。