准备 IAM 权限

本文档概述了从项目 IAM 管理员处请求资源访问权限所需的 Identity and Access Management (IAM) 角色和权限。您必须拥有必要的 IAM 角色和权限,才能在 Google Distributed Cloud (GDC) 气隙式设备中对虚拟机 (VM) 执行任务。

本文档适用于平台管理员或应用运维人员群组中的开发者,这些开发者在 GDC 环境中创建和管理虚拟机。

IAM 简介

GDC air-gapped appliance 提供 Identity and Access Management (IAM),可让您分配对特定 GDC air-gapped appliance 资源的精细访问权限,并防止对其他资源进行不必要的访问。IAM 遵循最小权限原则这一安全原则,并使用 IAM 角色和权限来控制谁有权访问指定资源。

准备工作

如需使用 gdcloud CLI 命令,请完成 gdcloud 命令行界面 (CLI) 部分中的必需步骤。Google Distributed Cloud 网闸隔离配置设备的所有命令都使用 gdcloud 或 kubectl CLI,并且需要操作系统 (OS) 环境。

获取 kubeconfig 文件路径

  1. 运行 gdcloud auth login 到 Management API 服务器。

    1. 记录生成文件的路径。以下是记录路径的示例:
      /tmp/admin-kubeconfig-with-user-identity.yaml。

    2. 使用该路径替换这些说明中的 MANAGEMENT_API_SERVER。

申请 IAM 角色

请与您的项目 IAM 管理员联系,请求为您的项目授予以下角色:

  • Project VirtualMachine Admin (project-vm-admin):在项目命名空间中创建、修改、列出和删除虚拟机。

  • 项目虚拟机映像管理员 (project-vm-image-admin):在项目命名空间中创建、列出和删除虚拟机映像。

所有虚拟机角色都必须绑定到虚拟机所在项目的命名空间。

如需查看应用运营商 (AO) 的所有预定义角色列表,请参阅角色说明。

如需授予或接收对虚拟机资源的访问权限,请参阅授予对项目资源的访问权限。

验证用户对虚拟机资源的访问权限

按照以下步骤登录 GDC 控制台或 gdcloud CLI,以验证对虚拟机资源和工作负载的访问权限:

控制台

  1. 以申请或验证权限的用户身份登录 GDC 控制台。
  2. 通过验证 GDC 控制台主屏幕上的组织名称和项目名称,确认您是否位于正确的项目中。
  3. 在导航菜单中,依次点击虚拟机 > 实例。
  4. 如需检查您是否有权在项目中创建虚拟机,请点击创建实例。
    • 如果您可以继续创建虚拟机,则表示您有权创建虚拟机。
    • 如果创建实例按钮不可用,或者您遇到指示缺少权限的错误消息,请与项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予项目 VirtualMachine Admin (project-vm-admin) 角色。
  5. 如需确定您是否可以查看和创建映像,请依次点击虚拟机 > 导入 > 创建映像。
    • 如果您可以继续导入映像,则表示您有权创建 VirtualMachineImageImport 资源。
    • 如果导入或创建映像选项不可用,或者您遇到权限错误,请与项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予项目 VirtualMachine Image Admin (project-vm-image-admin) 角色。

CLI

  1. 以申请或验证权限的用户身份登录。

  2. 验证您或用户是否可以创建虚拟机:

    kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i create virtualmachines.virtualmachine.gdc.goog -n PROJECT
    

    使用以下定义替换变量:

    变量 替换
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 路径
    PROJECT 您在其中创建虚拟机映像的项目名称
    • 如果输出为 yes,则您有权在项目 PROJECT 中创建虚拟机。
    • 如果输出为 no,则表示您没有相应权限。与您的项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予 Project VirtualMachine Admin (project-vm-admin) 角色。
  3. 验证您是否有权访问项目级虚拟机映像。运行 kubectl 命令,验证您是否可以在项目级层创建和使用 VirtualMachineImage 资源:

    kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i get virtualmachineimages.virtualmachine.gdc.goog -n PROJECT \
    kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i create virtualmachineimageimports.virtualmachine.gdc.goog -n PROJECT
    

    使用以下定义替换变量。

    变量 替换
    MANAGEMENT_API_SERVER Management API 服务器 kubeconfig 路径
    PROJECT 您在其中创建虚拟机映像的项目名称
    • 如果输出为 yes,则表示用户有权访问项目 PROJECT 中的自定义虚拟机映像。
    • 如果输出为 no,则表示您没有相应权限。请与您的项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予 Project VirtualMachine Image Admin (project-vm-image-admin) 角色。

接下来怎么做?