任务控制:如何使用Access Federation将安全对象从预置迁移到SaaS Artifactory

Santhosh Pesari
2023-01-22 11:06

如何使用Access Federation从on-prem迁移安全对象到SaaS Artifactory

在某些情况下,组织可能希望将用户、组、权限和访问令牌从内部部署的Artifactory迁移到SaaS Artifactory。我们可以使用Access Federation(仅由E+许可证支持)特性来完成此任务。

确保预置和SaaS Artifactory都是E+订阅,因为Access Federation是E+独有的功能

注意:请将本地Artifactory实例升级到7.29.7以上的版本,以使用Access Federation支持此迁移

有两种方法可以执行这种迁移:

方法-1:本地接入联合:

在这种方法中,我们认为Access Federation是本地可用的,我们将把SaaS实例连接到本地实例。必须采取的步骤如下:

1.确保您的本地Artifactory至少是7.29.7版本。(在这个版本下面,我们需要join。SaaS实例的密钥,出于安全考虑不能共享)

用户添加图片

2.通过导航到“管理”→“身份和访问”→“访问令牌”→“生成令牌”→配对令牌,从SaaS Artifactory实例生成一个配对令牌,并将其复制到一个安全的位置,以便我们可以在下一步中使用它。

用户添加图片

3.进入“管理”选项卡→“平台部署”→“已注册JPDs”→“新平台部署”在预部署的Artifactory实例(版本高于7.29.7)上,并确保输入适当的SaaS Artifactory实例参数,将SaaS实例添加到平台:
名称:该平台部署的唯一逻辑名称(例如:—名称:saas)
位置:选择SaaS Artifactory实例所在的位置(例如,美国的Sunnyvale)。
JFrog平台URL: SaaS Artifactory URL(例如,https://testing.jfrog.io (https://. JFrog .io))
给出平台URL后,点击“获取服务器详细信息”,粘贴步骤2中生成的“配对令牌”,然后点击“添加”

用户添加图片

如果您的SaaS实例启用了白名单功能,请确保预置实例IP地址已从myjfrog网站。

4.添加SaaS实例后,我们应该在“Registered JPDs”页面中看到添加的平台:

用户添加图片

5.现在我们应该在on-prem和SaaS Artifactory实例之间建立一个信任圈,为此,使用JFrog Support打开一个票据并提供root。从on-prem实例中获取的CRT文件,该文件通过以下方式获得:
a)可以在JFROG_HOME美元/ artifactory / var / etc /访问/键/根。CRT(需要物理访问服务器)
B)通过打电话获取根证书REST API
请确保提供根目录。按照本文中的步骤将crt安装到JFrog Support://www.si-fil.com/knowledge-base/transferring-my-sensitive-content-to-jfrog-using-public-key-encryption/

6.“JFrog Support”在on-prem和SaaS两个实例之间执行信任循环后,从on-prem实例进入“管理”页签→“身份和访问”→“访问联合”→“应用拓扑”→点击“星形”或“网格”拓扑(在本例中,我们可以看到星形拓扑)

用户添加图片

7.现在,在Access Federation设置页面中,选择on-prem实例作为源,选择SaaS Artifactory实例作为目标

用户添加图片

8.在选择源和目标后,单击“Select Entity Types”,并通过手动选择来选择您是想要迁移到所有目标还是特定的目标。然后,选择要迁移的安全对象。如果您只想迁移令牌,默认情况下也会选择用户、组和权限。

用户添加图片

9.现在单击摘要查看配置的摘要

用户添加图片

10.点击“Finish”之后,我们可以看到迁移发生了,并且看到了一条成功的迁移消息

用户添加图片

在完成上述步骤之后,我们终于可以成功地看到SaaS实例上的安全对象。

方法二SaaS接入联合:

该方法与第一种方法类似,只是我们从SaaS实例执行所有步骤(除了第2步,我们从内部部署获取配对令牌,并在将内部部署Artifactory实例添加到SaaS时使用它)。
在此方法中,我们假设Access Federation作为SaaS服务可用,并将使用相同的步骤将本地实例添加到SaaS实例。但是,在这个过程中必须考虑以下因素:

  1. 确保内部部署实例的版本高于7.29.7,这样当我们从SaaS Artifactory注册内部部署平台时,就可以使用“配对令牌”,该令牌在默认情况下仅在高于7.29.7的版本中可用。
  2. 如果Artifactory本地有防火墙,请在防火墙中添加SaaS实例的NAT IP地址。遵循文档以确定SaaS Artifactory所在地区的IP地址。

企业订阅的安全对象迁移

注意:如果SaaS实例上有任何现有用户、组、权限和访问令牌,那么通过执行访问导出和导入步骤,目标SaaS实例上的现有用户将被删除,我们将只看到已导入的安全对象。

对于企业订阅类型,我们支持按照本文中的步骤将用户、组、权限和访问令牌从on-prem导入到SaaS实例://www.si-fil.com/knowledge-base/how-to-import-access-data/。因此,正如本文中提到的,我们需要通过运行以下命令从on-prem实例导出访问数据:
- Artifactoryx: Creates an access.backup..json file with the Access configuration as $JFROG_HOME/artifactory/var/backup/accesscurl -uadmin:密码-XPOST "http://localhost:8082/access/api/v1/system/backup/export"-从7.12.0及以上版本开始:需要一个有效的管理范围令牌。API不再支持基本身份验证。curl -H "授权:持有人" -XPOST "http://localhost:8082/access/api/v1/system/backup/export"在从$JFROG_HOME/artifactory/var/backup/access位置收集on-prem实例的访问数据后,通过打开票据并按照本文中的步骤传输文件,安全地与JFrog支持共享文件://www.si-fil.com/knowledge-base/transferring-my-sensitive-content-to-jfrog-using-public-key-encryption/。

注意:以下步骤由jfrog support team执行
在与JFrog支持团队一起打开票据并提供access.backup.. >JFrog技术支持团队按照如下步骤替换访问数据备份文件中的服务ID:
将通过运行以下命令找到SaaS Artifactory实例的服务ID:curl -uadmin:password -XGET "https://.jfrog.io/artifactory/api/system/service_id"
回应:
jfrt@01e2rdwgsq8k8c1mbtvdav04xg
—将access.backup.. zip文件中on-prem服务ID全部替换为SaaS服务ID。例如,使用sed -i 's/jfrt@on-prem/jfrt@saas/g' access.backup.. json文件修改on-prem Artifactory的引导文件,将on-prem Artifactory的服务ID替换为SaaS。例如,Sed -i 's/jfrt@01e719bdvrxydk0s7nw96n0kb3/jfrt@01e719b6v36b2k133v4yef14zx/g' access.bootstrap.json
此文件中的权限与要允许的服务ID绑定访问联合会,如果不进行交换,则不会导入权限。

然后,JFrog支持团队将访问数据文件重命名为access.bootstrap.json,并将其复制到SaaS Artifactory实例中,然后执行以下命令将访问数据导入到SaaS实例中:curl -H "Authorization: holder " -XPOST "https://.jfrog.io/access/api/v1/system/backup/import"导入之后将重新启动SaaS Artifactory,然后我们应该能够看到SaaS实例上的所有安全对象。