服务提供商可以使用 VMware Cloud Director API 创建扩展,从而为租户提供额外的 VMware Cloud Director 功能。如果服务提供商已授予您访问权限,则您可以管理定义的实体并与其他租户共享。

服务提供商可以创建运行时定义的实体类型,从而使扩展能够在 VMware Cloud Director 中存储和操作扩展特定的信息。例如,Kubernetes 扩展可以将有关其管理的 Kubernetes 集群的信息存储在运行时定义的实体中。然后,该扩展可以提供扩展 API,从而使用运行时定义的实体中的信息管理这些集群。如果服务提供商与您共享运行时定义的实体类型的权限包,则您可以创建该类型的实例。

在一个租户组织中创建定义的实体时,无法与另一个组织中的租户共享该定义的实体。您无法将定义的实体的所有者更改为另一个组织中的用户。

访问定义的实体

两种相互补充的机制控制对运行时定义的实体的访问。

  • 权限 - 当服务提供商创建运行时定义的实体类型时,他们会为该类型创建一个权限包。服务提供商必须为您分配一个或多个(共 5 个)特定于类型的权限:查看:类型编辑:类型完全控制:类型管理员查看:类型以及管理员完全控制:类型

    查看:类型编辑:类型完全控制:类型权限仅与 ACL 条目结合使用。

  • 访问控制列表 (ACL) - ACL 表包含的条目定义用户对系统中的特定实体具有的访问权限。ACL 表对这些实体提供额外的一层控制。例如,编辑:类型权限指定用户可以修改其有权访问的实体时,ACL 表定义用户有权访问哪些实体。
表 1. RDE 操作的权限和 ACL 条目
实体操作 选项 描述
读取 管理员查看:类型权限 具有此权限的用户可以查看组织中此类型的所有运行时定义的实体。
查看:类型权限 + ACL 条目 >= 查看 具有此权限和读取级别 ACL 的用户可以查看此类型的运行时定义的实体。
修改 管理员完全控制:类型权限 具有此权限的用户可以创建、查看、修改和删除所有组织中此类型的运行时定义的实体。
编辑:类型权限 + ACL 条目 >= 更改 具有此权限和修改级别 ACL 的用户可以创建、查看和修改此类型的运行时定义的实体。
删除 管理员完全控制:类型权限 具有此权限的用户可以创建、查看、修改和删除所有组织中此类型的运行时定义的实体。
完全控制:类型权限 + ACL 条目 = 完全控制 具有此权限和完全控制级别 ACL 的用户可以创建、查看、修改和删除此类型的运行时定义的实体。

与其他用户共享定义的实体

如果系统管理员已为定义的实体类型发布权限包并授予您 ReadWriteFullControl 访问权限,或者您是定义的实体所有者,则您可以与其他用户共享这些实体的访问权限。

  1. 将权限包中的查看:类型编辑:类型完全控制:类型权限分配给您希望对定义的实体具有特定级别访问权限的用户角色。

    注: 您必须以 系统管理员组织管理员身份登录才能分配权限。

    例如,如果您希望具有 tkg_viewer 角色的用户可以查看组织中的 Tanzu Kubernetes 集群,则必须向该角色添加查看:Tanzu Kubernetes 客户机集群权限。如果您希望具有 tkg_author 角色的用户可以创建、查看和修改此组织内的 Tanzu Kubernetes 集群,请向该角色添加编辑:Tanzu Kubernetes 客户机集群权限。如果您希望具有 tkg_admin 角色的用户可以创建、查看、修改和删除此组织内的 Tanzu Kubernetes 集群,请向该角色添加完全控制:Tanzu Kubernetes 客户机集群权限。

  2. 进行以下 REST API 调用,向特定用户授予访问控制列表 (ACL)。

    POST https://[address]/cloudapi/1.0.0/entities/urn:vcloud:entity:[vendor]:[type name]:[version]:[UUID]/accessControls
     {
       "grantType" : "MembershipAccessControlGrant",
       "accessLevelId" : "urn:vcloud:accessLevel:[Access_level]",
       "memberId" : "urn:vcloud:user:[User_ID]"
     }

    Access_level 必须是 ReadOnlyReadWriteFullControlUser_ID 必须是要向其授予对定义的实体的访问权限的用户的 ID。

    您必须对实体具有 ReadWriteFullControl 访问权限才能向该实体授予 ACL 访问权限。

    具有 tkg_viewer 角色的用户(如示例中所述)无法授予 ACL 访问权限。具有 tkg_authortkg_admin 角色的用户可以通过使用 API 请求授予 ACL 访问权限,与具有 tkg_viewertkg_authortkg_admin 角色的用户共享对 VMWARE:TKGCLUSTER 实体的访问权限。

    具有管理员完全控制:Tanzu Kubernetes 客户机集群权限的用户可以向任何 VMWARE:TKGCLUSTER 实体授予 ACL 访问权限。

    还可以使用 REST API 调用撤销访问权限,或者查看哪些用户有权访问实体。请参见 https://developer.vmware.com/ 上的 VMware Cloud Director REST API 文档。

更改已定义实体的所有者

已定义实体的所有者或具有管理员完全控制:类型权限的用户可以通过更新定义的实体模型并使用新所有者的 ID 更改所有者字段将所有权转移给其他用户。