You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置GCP IAM策略 仅通过IAP访问指定VM且禁止控制台登录

GCP 跨供应商最小权限开放最优配置方案

核心思路是全程不授予项目级宽权限,所有权限绑定到单资源粒度,从根上砍掉控制台访问、跨资源查看的权限基础,具体配置步骤如下:

一、先堵死控制台访问路径

  • 不要给外部供应商账号绑定任何项目级基础角色,尤其不能给roles/owner、roles/editor、roles/viewer三个默认角色,这类角色自带项目资源枚举、控制台访问的基础权限。
  • 不要给供应商账号授予roles/resourcemanager.projects.get权限:这个权限是账号能在控制台检索到项目、进入项目视图的前置必要条件,没有该权限时,账号登录GCP控制台后完全看不到对应项目的存在,从入口层面堵死控制台登录可能。

二、IAP访问权限严格限定单台VM

所有IAP相关权限直接绑定到目标VM实例的资源级IAM策略上,绝对不要在项目层级授予:

  • 找到目标无公网IP的VM实例,在该实例的IAM权限绑定页,给供应商账号仅添加roles/iap.tunnelResourceAccessor角色,该角色仅允许用户通过IAP隧道建立到这台VM的连接,没有其他任何资源操作权限。
  • 配套配置VPC防火墙规则,仅放行IAP官方服务网段35.235.240.0/20访问目标VM的SSH(22端口)或RDP(3389端口),拒绝其他所有来源的访问请求,从网络层确保VM没有其他可被访问的路径。
  • 不给供应商账号授予任何计算资源查看类权限,包括roles/compute.viewer、roles/compute.instanceAdmin等,没有这类权限的用户无法枚举、查看项目内其他VM、网络等资源的信息。

三、服务账号权限兜底隔离

  • 不要给供应商账号授予目标VM绑定服务账号的roles/iam.serviceAccountUser、roles/iam.serviceAccountTokenCreator权限:用户登录VM操作系统后,可直接通过元数据服务获取VM绑定服务账号的凭据访问资源,不需要额外给用户本身授予服务账号模拟权限,避免用户在本地直接冒用服务账号身份绕过VM访问链路。
  • 给VM绑定的服务账号配置最小权限:仅授予指定私有GKE集群所需的操作权限、指定GCS存储桶的对应读写权限,不要给项目级的存储、容器服务宽权限,把服务账号的权限范围严格限定在要求开放的三类资源内。

配置完成后必做校验

用供应商测试账号逐一验证以下场景,确保符合管控要求:

  • 登录GCP控制台,确认无法检索到目标项目,无法进入项目管理视图
  • 本地通过gcloud compute ssh [目标VM名称] --zone [VM所在可用区] --tunnel-through-iap --project [项目ID]命令,确认可正常通过IAP连接目标VM
  • 尝试通过gcloud或API枚举项目下的VM实例、GKE集群、GCS存储桶列表,确认返回权限不足
  • 登录到VM操作系统内部后,验证访问私有GKE集群、读写指定GCS路径的权限正常

避坑提醒:最常见的配置错误是图省事在项目级授予IAP访问角色、漏收回resourcemanager.projects.get权限,这两个错误都会直接导致权限越界,配置时需要重点核查。

内容的提问来源于stack exchange,提问作者Vedant Shetty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:01:58