vSphere IaaS control plane 运维人员(包括负责操作 主管TKG 服务 集群的人员)分配权限的一种可选方法是,专门为这些运维人员创建专用的 vSphere 用户组和角色。

关于平台运维人员组和角色

安全最佳做法是,您可能希望避免将 vSphere 管理员角色分配给平台运维人员,因为此角色授予的特权多于操作 TKG 服务 集群所需的特权。按照最小特权原则,您可以创建一个专用用户组、一个服务(用户)帐户和一个自定义角色供平台运维人员使用,然后向该用户组授予对 vSphere 对象的自定义角色权限。
注: 您需要以 vSphere 管理员身份登录到 vCenter Server,才能执行本主题中的所有任务。
注: vSphere 组名称和角色名称是用户定义的字符串。此处提供的名称仅为示例,您可以根据安全和业务需求进行采用、调整或更改。
警告: 您必须根据安全和业务需求评估此处提供的示例角色权限,测试角色以确保合规性,并相应地进行调整。此处使用的权限可能并非全部符合您的需求,您可能还需要其他权限。有关 vSphere 权限和安全注意事项的完整列表,请参阅 vSphere 安全性文档。

第 1 部分:创建平台运维人员组和用户

在 vCenter 或与 vCenter 集成的 AD/LDAP 系统中,创建平台运维人员组和初始用户帐户。
  1. 通过 vSphere Client 以管理员身份登录 vCenter Server
  2. 转到管理 > Single Sign On > 用户和组
  3. 选择选项卡。
  4. 单击添加并创建新组:
    • 名称:platform-operators-group
    • 描述:用于主管和 TKG Service 集群的 Kubernetes 运维人员
    • 单击添加
  5. 选择用户选项卡。
  6. 单击添加并创建一个新用户用于测试。
    • 名称:platform-operator-00
    • 密码:输入符合要求的强密码
    • 单击添加
  7. 选择选项卡。
  8. 将该新用户添加到组。
    • 选择组 platform-operators-group
    • 单击添加成员
    • 选择 vsphere.local
    • 搜索用户名 platform-operator-00
    • 选择此用户,然后单击添加
    • 单击保存

第 2 部分:将平台运维人员组添加到服务提供商用户组

将平台运维人员组添加到服务提供商用户组。这样做将使平台运维人员组的成员能够在 vCenter 的清单 > 主机和集群屏幕中查看 vSphere 命名空间

  1. 转到管理 > Single Sign On > 用户和组
  2. 选择选项卡。
  3. 找到 ServiceProviderUsers 组。
  4. 编辑 ServiceProviderUsers 组,并将其添加为 platform-operators-group 的成员。
  5. 单击保存

第 3 部分:创建平台运维人员角色

为平台运维人员创建自定义 vCenter SSO 角色。
注: 此角色包含置备和操作 主管TKG 服务 集群所需的所有权限,包括管理内容库。您可能需要根据业务和安全需求调整分配给此角色的权限。此外,还必须测试此角色以确保其符合您的要求。
  1. 使用 vSphere Client 转到管理 > 访问控制 > 角色
  2. 选择新建,然后创建名为 platform-operators-role 的新角色。
  3. 为此角色定义以下特权。
  4. 完成后,单击保存
    - Alarms
      - Acknowledge alarm &
      - Create alarm &
      - Disable alarm action on entity &
      - Modify alarm &
      - Remove alarm &
      - Set alarm status &
    - Certificate Authority
      - Create/Delete (below Admins priv) &
    - Certificate Management
      - Create/Delete (below Admins priv) &
    - Cns
      - Searchable * &
    - Compute Policy
      - Create and Delete Compute Policy &
    - Content Library
      - Add library item &
      - Check in a template &
      - Check out a template &
      - Create local library &
      - Create subscribed library &
      - Delete library item &
      - Delete local library &
      - Delete subscribed library &
      - Download files &
      - Evict library item &
      - Evict subscribed library &
      - Import storage &
      - Probe subscription information &
      - Read storage &
      - Sync library item &
      - Sync subscribed library &
      - Type introspection &
      - Update configuration settings &
      - Update library &
      - Update library item &
      - Update local library &
      - Update subscribed library &
      - View configuration settings &
    - Datastore
      - Allocate space * & $
      - Browse datastore * &
      - Configure datastore &
      - Low level file operations * &
      - Remove file &
      - Rename datastore &
      - Update virtual machine files &
      - Update virtual machine metadata &
    - Extension
      - Register extension &
      - Unregister extension &
      - Update extension &
    - Folder
      - Create folder &
      - Delete folder &
      - Move folder &
      - Rename folder &
    - Global
      - Cancel task &
      - Disable methods * &
      - Enable methods * &
      - Global tag &
      - Health &
      - Licenses * &
      - Log event &
      - Manage custom attributes &
      - Service managers &
      - Set custom attribute &
      - System tag &
    - Host
      - Configuration
        - Network configuration $
    - Host profile
      - View &
    - Hybrid Linked Mode
      - Manage &
    - Namespaces
      - Modify cluster-wide configuration
      - Modify cluster-wide namespace self-service configuration
      - Modify namespace configuration
    - Network
      - Assign network * & $
    - Resource
      - Apply recommendation &
      - Assign vApp to resource pool * &
      - Assign virtual machine to resource pool &
      - Create resource pool &
      - Modify resource pool &
      - Move resource pool &
      - Query vMotion &
      - Remove resource pool &
      - Rename resource pool &
    - Scheduled task
      - Create tasks &
      - Modify task &
      - Remove task &
      - Run task &
    - Sessions
      - Message * &
      - Validate session * &
    - VM storage policies
      - View VM storage policies *
    - Storage views
      - View &
    - Supervisor Services
      - Manage Supervisor Services
    - Trusted Infrastructure administrator
      - Manage Trusted Infrastructure Hosts &
    - vApp
      - Add virtual machine &
      - Assign resource pool &
      - Assign vApp &
      - Clone &
      - Create &
      - Delete &
      - Export &
      - Import * $
      - Move &
      - Power off &
      - Power on &
      - Rename &
      - Suspend &
      - Unregister &
      - View OVF environment &
      - vApp application configuration &
      - vApp instance configuration &
      - vApp managedBy configuration &
      - vApp resource configuration &
    - Virtual machine
      - Change Configuration
        - Acquire disk lease &
        - Add existing disk * & $
        - Add new disk * &
        - Add or remove device * &
        - Advanced configuration * & $
        - Change CPU count * &
        - Change Memory * &
        - Change Settings * &
        - Change Swapfile placement &
        - Change Resource &
        - Configure Host USB device &
        - Configure Raw device * &
        - Configure managedBy &
        - Display connection settings &
        - Extend virtual disk * &
        - Modify device settings * &
        - Query Fault Tolerance compatibility &
        - Query unowned files &
        - Reload from path &
        - Remove disk * &
        - Rename &
        - Reset guest information &
        - Set annotation &
        - Toggle disk change tracking * &
        - Upgrade virtual machine compatibility &
      - Edit Inventory
        - Create from existing * &
        - Create new &
        - Move &
        - Remove * &
        - Register &
        - Unregister &
      - Guest operations
        - Guest operation alias modification &
        - Guest operation alias query &
        - Guest operation modifications &
        - Guest operation program execution &
        - Guest operation queries &
      - Interaction
        - Answer question &
        - Backup operation on virtual machine &
        - Configure CD media &
        - Configure floppy media &
        - Connect devices &
        - Console interaction &
        - Create screenshot &
        - Defragment all disks &
        - Drag and drop &
        - Guest operating system management by VIX API &
        - Inject USB HID scan codes &
        - Install VMware Tools &
        - Pause or Unpause &
        - Power off * &
        - Power on * &
        - Reset &
        - Suspend &
      - Provisioning
        - Allow disk access &
        - Allow file access &
        - Allow read-only disk access * &
        - Allow virtual machine download * &
        - Allow virtual machine files upload &
        - Clone template &
        - Clone virtual machine &
        - Create template from virtual machine &
        - Customize guest &
        - Deploy template * &
        - Mark as template &
        - Mark as virtual machine &
        - Modify customization specification &
        - Promote disks &
        - Read customization specifications &
      - Service configuration
        - Allow notifications &
        - Allow polling of global event notifications &
        - Manage service configurations &
        - Modify service configuration &
        - Query service configurations &
        - Read service configuration &
      - Snapshot management
        - Create snapshot * &
        - Remove snapshot * &
        - Rename snapshot &
        - Revert to snapshot &
      - vSphere Replication
        - Configure replication &
        - Manage replication &
        - Monitor replication &
    - Virtual Machine Classes
      - Manage Virtual Machine Classes
    - vSan
      - Cluster &
        - ShallowRekey &
    - vService
      - Create dependency &
      - Destroy dependency &
      - Reconfigure dependency configuration &
      - Update dependency &
    - vSphere Tagging
      - Assign or Unassign vSphere Tag &
      - Assign or Unassign vSphere Tag on Object &
      - Create vSphere Tag &
      - Create vSphere Tag Category &
      - Delete vSphere Tag &
      - Delete vSphere Tag Category &
      - Edit vSphere Tag &
      - Edit vSphere Tag Category &
      - Modify UsedBy Field For Category &
      - Modify UsedBy Field For Tag &

第 4 部分:为平台运维人员组和角色分配 vCenter 对象权限

为平台运维人员组分配对 主管TKG 服务 集群使用的 vCenter 对象的权限。
  1. 在 vCenter 中,选择清单视图。
  2. 对于下面列出的每个 vCenter 对象,右键单击这些对象,然后选择添加权限
  3. 对于“用户/组”,选择 platform-operators-group 组。
  4. 对于“角色”,选择角色 platform-operators-group-role
  5. 对于某些对象,您需要选中传播到子项,如下所示。
  • 主机和集群
    • 根 vCenter Server 对象。
    • 数据中心以及所有主机和集群文件夹,从数据中心对象下到管理 TKG 部署的集群。
    • 启用了 主管 且启用了传播到子项(对于 ESXi 主机等)的目标 vCenter 集群。
    • 启用了传播到子项的目标资源池。
  • 虚拟机和模板
    • 启用了传播到子项的顶层数据中心对象。
    • 或者,对于更细化的粒度,则是启用了传播到子项的目标虚拟机和模板文件夹。
  • 存储
    • 启用了传播到子项的顶层数据中心对象。
    • 或者,未启用传播到子项的共享数据存储对象(如 vsanDatastore),或者启用了传播到子项的单个数据存储和所有存储文件夹,从数据中心对象下到将用于 TKG 部署的数据存储。
  • 网络
    • 启用了传播到子项的顶层数据中心对象。
    • 或者,将向其分配集群的各个网络、分布式交换机和分布式端口组。

第 5 部分:关联平台运维人员组和角色

为平台运维人员组和角色分配权限。

  1. 使用 vSphere Client,转到系统管理 > 访问控制 > 全局权限 > 添加权限
  2. 将平台运维人员角色添加到平台运维人员组。
    • 单击添加
    • 对于“域”,选择 vsphere.local
    • 对于“用户/组”,输入 platform-operators-group 组。
    • 对于“角色”,选择角色 platform-operators-role
    • 选中传播到子项复选框。
    • 单击确定以更新组,在其中包含角色权限。
  3. 将 vSphere Kubernetes Manager 角色添加到平台运维人员组。
    • 单击添加
    • 对于“域”,选择 vsphere.local
    • 对于“用户/组”,输入 platform-operators-group 组。
    • 对于“角色”,选择角色 vSphere Kubernetes Manager
    • 选中传播到子项复选框。
    • 单击确定以更新组,在其中包含角色权限。

第 6 部分:验证平台运维人员组和角色

测试新的平台运维人员组和角色。您必须确保组和角色满足自己的安全和业务需求,并相应地进行调整。
  1. vSphere Client 中,使用 platform-operator-00 用户帐户登录到 vCenter Server
  2. 验证您是否具有 vSphere 对象(包括主机和集群、虚拟机和模板、存储和网络连接)的读取访问权限。
  3. 验证您是否可以创建和配置内容库。请参见管理用于 TKG 服务 集群的 Kubernetes 版本
  4. 验证您是否可以创建和配置 vSphere 命名空间,包括添加用户、关联内容库和分配存储策略。请参见配置 vSphere 命名空间 以便托管 TKG 服务 集群
  5. 验证您是否可以使用 适用于 vSphere 的 Kubernetes CLI 工具 登录到 主管。请参见使用 vCenter SSO 身份验证连接到 TKG 服务 集群
  6. 验证您是否可以使用 Kubectl 在 主管 上置备 TKG 集群。请参见使用 Kubectl 置备 TKG 集群的工作流
  7. 验证您是否可以使用 Kubectl 登录到 主管 上的 TKG 集群。请参见使用 Kubectl 以 vCenter Single Sign-On 用户身份连接到 TKG 服务 集群
  8. 验证您是否可以将工作负载部署到 主管 上的 TKG 集群。请参见在 TKG 服务 集群上部署工作负载
  9. 验证您是否可以对 主管 上的 TKG 集群执行各种操作任务。请参见操作 TKG Service 集群
  10. 使用 vSphere Client,验证您是否可以在 vSphere 命名空间 中查看在 主管 上置备的 TKG 集群。
  11. 使用 vSphere Client,验证您是否可以监控 主管 和 TKG 集群对象。
  12. 执行负向测试以确保您无法执行为 vSphere 管理员预留的某些任务。例如,您不应能够创建新的 vSphere 存储策略或 vSphere 网络连接。您可能还无法禁用工作负载管理。
  13. 相应地调整角色权限,以满足您的安全和业务需求。