本文档概述了从项目 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 文件路径
运行
gdcloud auth login到 Management API 服务器。记录生成文件的路径。以下是记录路径的示例:
/tmp/admin-kubeconfig-with-user-identity.yaml。使用该路径替换这些说明中的
MANAGEMENT_API_SERVER。
申请 IAM 角色
请与您的项目 IAM 管理员联系,请求为您的项目授予以下角色:
Project VirtualMachine Admin (project-vm-admin):在项目命名空间中创建、修改、列出和删除虚拟机。
项目虚拟机映像管理员 (project-vm-image-admin):在项目命名空间中创建、列出和删除虚拟机映像。
所有虚拟机角色都必须绑定到虚拟机所在项目的命名空间。
如需查看应用运营商 (AO) 的所有预定义角色列表,请参阅角色说明。
如需授予或接收对虚拟机资源的访问权限,请参阅授予对项目资源的访问权限。
验证用户对虚拟机资源的访问权限
按照以下步骤登录 GDC 控制台或 gdcloud CLI,以验证对虚拟机资源和工作负载的访问权限:
控制台
- 以申请或验证权限的用户身份登录 GDC 控制台。
- 通过验证 GDC 控制台主屏幕上的组织名称和项目名称,确认您是否位于正确的项目中。
- 在导航菜单中,依次点击虚拟机 > 实例。
- 如需检查您是否有权在项目中创建虚拟机,请点击创建实例。
- 如果您可以继续创建虚拟机,则表示您有权创建虚拟机。
- 如果创建实例按钮不可用,或者您遇到指示缺少权限的错误消息,请与项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予项目 VirtualMachine Admin (
project-vm-admin) 角色。
- 如需确定您是否可以查看和创建映像,请依次点击虚拟机 > 导入 > 创建映像。
- 如果您可以继续导入映像,则表示您有权创建
VirtualMachineImageImport资源。 - 如果导入或创建映像选项不可用,或者您遇到权限错误,请与项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予项目 VirtualMachine Image Admin (
project-vm-image-admin) 角色。
- 如果您可以继续导入映像,则表示您有权创建
CLI
以申请或验证权限的用户身份登录。
验证您或用户是否可以创建虚拟机:
kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i create virtualmachines.virtualmachine.gdc.goog -n PROJECT使用以下定义替换变量:
变量 替换 MANAGEMENT_API_SERVERManagement API 服务器 kubeconfig路径PROJECT您在其中创建虚拟机映像的项目名称 - 如果输出为
yes,则您有权在项目PROJECT中创建虚拟机。 - 如果输出为
no,则表示您没有相应权限。与您的项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予 Project VirtualMachine Admin (project-vm-admin) 角色。
- 如果输出为
验证您是否有权访问项目级虚拟机映像。运行
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_SERVERManagement API 服务器 kubeconfig路径PROJECT您在其中创建虚拟机映像的项目名称 - 如果输出为
yes,则表示用户有权访问项目 PROJECT 中的自定义虚拟机映像。 - 如果输出为
no,则表示您没有相应权限。请与您的项目 IAM 管理员联系,并请求在虚拟机所在项目的命名空间中授予 Project VirtualMachine Image Admin (project-vm-image-admin) 角色。
- 如果输出为