在服务目录中,企业的IT管理员可以将产品授权给终端用户(开发、测试、运营等业务方),允许终端用户通过自助服务的方式快速获取资源。
同时管理员可能不希望授予终端用户过大的权限,例如授予终端用户ECS的创建权限。如果这样做的话,终端用户就可以绕过服务目录,任意创建ECS,这样无法满足企业的合规要求。
通过启动角色启动产品
通过服务目录的启动约束功能可以实现对用户权限的收敛,管理员只需要授予终端用户服务目录的权限,服务目录可以代替终端用户完成ECS的创建。
如下图所示,管理员在服务目录中创建了ECS产品,并为ECS产品设置了对应的启动角色,并将其授权给终端用户。终端用户本身具有服务目录的使用权限(AliyunServiceCatalogEndUserFullAccess),终端用户通过控制台或者API启动ECS产品时,服务目录会扮演启动角色,并使用启动角色的权限来完成ECS的创建。
设置启动角色
管理员可以在产品组合中,为产品添加启动约束,完成启动角色的设置。
第一次创建启动约束时,需要创建启动角色,点击页面上的选项【创建受信的RAM角色】,可以快速跳转到RAM控制台。
创建启动角色
点击创建角色,第一步选择可信实体类型为阿里云服务。这代表着只有受信云服务才能够扮演和使用这个角色,终端用户是无法扮演这个角色的。
第二步填写角色名称(任意名称,建议使用ServiceCatalog作为前缀,方便与其他角色区分),选择受信服务为服务目录,完成启动角色的创建。
为启动角色添加权限
接下来,需要为启动角色添加权限。启动角色的权限往往与产品相对应,例如ECS产品需要ECS的创建、修改和删除权限,因此需要为启动角色添加ECS的管理权限(AliyunECSFullAccess);如果是VPC产品,则需要添加VPC的管理权限(AliyunVPCFullAccess),其他产品以此类推。此外,由于服务目录使用资源编排服务ROS创建资源,还需要添加ROS的管理权限(AliyunROSFullAccess)。
启动角色需要的权限 = 云产品权限 + ROS权限
创建启动约束
回到服务目录的控制台,点击刷新按钮,可以选择到上一步中创建的启动角色,完成启动约束的创建,这样就完成了启动角色的设置。多个产品可以使用同一个启动角色,在使用时需要添加对应云产品的权限。
多账号共享
管理员将产品组合共享给成员账号时,启动约束也同样会被共享。启动约束中配置的是角色名称,只需要在成员账号中创建对应名称的启动角色,就可以使用启动角色来代替终端用户创建资源。
启动约束的配置如下:
{ "ConstraintId": "cons-bp1ze4wp2g****", "ConstraintType": "Launch", "Description": "启动角色 ServiceCatalogLaunchRole", "Config": "{\"LocalRoleName\":\"ServiceCatalogLaunchRole\"}", "PortfolioId": "port-bp1174fn26****", "ProductId": "prod-bp125x4k29****", "ProductName": "ECS", "CreateTime": "2022-12-21T10:05:12Z"}