本文档概述了向 IAM 项目管理员请求资源访问权限所需的 Identity and Access Management (IAM) 角色和权限。您必须拥有必要的 IAM 角色和权限,才能在 Google Distributed Cloud (GDC) 网闸隔离配置中的虚拟机 (VM) 上执行任务。
本文档适用于在 GDC 环境中创建和管理虚拟机的平台管理员或应用运维人员群组中的开发者。如需了解详情,请参阅适用于 GDC 网闸隔离配置文档的受众群体。
IAM 简介
Distributed Cloud 提供 Identity and Access Management (IAM),可让您授予对特定 Distributed Cloud 资源的精细访问权限,并防止对其他资源进行不必要的访问。IAM 遵循最小权限原则安全原则,并使用 IAM 角色和权限来控制谁有权访问给定资源。
准备工作
如需使用 gdcloud CLI 命令,请完成 gdcloud 命令行界面 (CLI) 部分中的必需步骤。Google Distributed Cloud 网闸隔离配置的所有命令都使用 gdcloud 或 kubectl CLI,并且需要操作系统 (OS) 环境。
获取 kubeconfig 文件路径
如需针对 Management API 服务器运行命令,请确保您拥有以下资源:
如果您没有 Management API 服务器的 kubeconfig 文件,请登录并生成该文件。
在这些说明中,请使用 Management API 服务器的 kubeconfig 文件的路径替换
MANAGEMENT_API_SERVER。
申请 IAM 角色
请与您的 IAM 项目管理员联系,请求在您的项目中授予以下角色:
虚拟机项目管理员 (project-vm-admin):在项目命名空间中创建、修改、列出和删除虚拟机。
虚拟机映像项目管理员 (project-vm-image-admin):在项目命名空间中创建、列出和删除虚拟机映像。
所有虚拟机角色都必须绑定到虚拟机所在项目的命名空间。
如需查看应用运维人员 (AO) 的所有预定义角色列表,请参阅角色说明。
如需授予或接收对虚拟机资源的访问权限,请参阅授予对项目资源的访问权限。
验证用户对虚拟机资源的访问权限
按照以下步骤登录 GDC 控制台或 gdcloud CLI,以验证对虚拟机资源和工作负载的访问权限:
控制台
- 以请求或验证权限的用户身份登录 GDC 控制台。
- 通过在 GDC 控制台主屏幕上验证组织和项目名称,确认您位于正确的项目中。
- 在导航菜单中,依次点击虚拟机 > 实例。
- 如需检查您是否有权在项目中创建虚拟机,请点击创建实例。
- 如果您可以继续创建虚拟机,则表示您有权创建虚拟机。
- 如果创建实例按钮不可用,或者您遇到指示缺少权限的错误消息,请与您的 IAM 项目管理员联系,并请求在虚拟机所在项目的命名空间中授予虚拟机项目管理员 (
project-vm-admin) 角色。
- 如需确定您是否可以查看和创建映像,请依次点击虚拟机 > 导入 > 创建映像。
- 如果您可以继续导入映像,则表示您有权创建
VirtualMachineImageImport资源。 - 如果导入或创建映像选项不可用,或者您遇到权限错误,请与您的 IAM 项目管理员联系,并请求在虚拟机所在项目的命名空间中授予虚拟机映像项目管理员 (
project-vm-image-admin) 角色。
- 如果您可以继续导入映像,则表示您有权创建
CLI
使用您的账号凭证或请求/验证权限的用户的凭证登录。
使用
kubectl命令验证您或用户是否可以创建虚拟机:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ auth can-i create virtualmachines.virtualmachine.gdc.goog根据以下定义替换变量:
变量 替换 MANAGEMENT_API_SERVERgdcloud auth login中的系统 kubeconfig 文件。PROJECT您在其中创建虚拟机映像的项目名称 - 如果输出为
yes,则表示您有权在项目PROJECT中创建虚拟机。 - 如果输出为
no,则表示您没有权限。请与您的 IAM 项目管理员联系,并请求在虚拟机所在项目的命名空间中授予虚拟机项目管理员 (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-vm-image-admin) 角色。
- 如果输出为