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

如何在Google Compute Engine中仅向外部人员开放单个实例访问权限?

为外部人员授予单个实例访问权限:服务账号方案指南

完全理解你的顾虑——直接给SSH私钥风险太高,一旦密钥泄露或者人员离职,收回权限的成本和安全隐患都很大,选择服务账号确实是更可控、更安全的方向。下面就针对你的需求拆解服务账号方案的核心要点和实操方向:

为什么服务账号比直接给私钥更优

  • 权限粒度更精准:可以严格绑定到目标单个实例,甚至能限制操作范围(比如只允许读取日志、执行特定运维命令,而非开放完全的root权限)
  • 权限生命周期易管理:人员离职或项目结束时,直接禁用/删除服务账号即可,无需担心私钥被流传或滥用
  • 审计追踪更清晰:服务账号的所有操作都会留下独立的访问日志,方便后续合规检查和问题溯源

实现服务账号访问单个实例的关键步骤

1. 创建专用限制型服务账号

优先创建独立的专属账号,避免复用现有业务账号:

# 以Linux实例为例,创建带家目录但限制登录权限的账号(按需调整shell类型)
sudo useradd -m -s /bin/bash contractor-single-instance-access

2. 绑定最小必要权限

  • 如果是云平台实例(比如EC2、Compute Engine):在IAM控制台创建自定义角色,仅授予该实例的ConnectInstance、DescribeInstances等必要权限,再将角色绑定到新建的服务账号,杜绝跨实例访问
  • 如果是本地自建实例:通过sudoers文件限制账号仅能执行指定操作,比如:
# 编辑sudoers文件(优先用visudo避免语法错误)
sudo visudo
# 添加规则示例:允许账号重启指定服务,禁止其他无授权操作
contractor-single-instance-access ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx.service

3. 配置安全的访问路径

  • 禁用密码登录,改用SSH证书或云平台的实例连接服务(比如Session Manager、OS Login),无需分发私钥,通过服务账号的身份凭证实现临时授权访问
  • 强制开启MFA(多因素认证),进一步降低未授权访问风险

4. 建立权限回收机制

  • 给服务账号设置过期时间,比如项目结束前自动失效
  • 定期审计服务账号的权限配置和访问日志,及时清理冗余权限

额外注意事项

  • 严格遵循最小权限原则,绝不分配超出业务需求的权限
  • 对于敏感操作(比如修改配置、删除数据),可添加审批流程或双人验证机制
  • 若使用长期凭证,定期轮换凭证内容,降低泄露风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:44:41