Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform IAM角色到SSH到VM,无管理权限_Google Cloud Platform_Google Compute Engine_Google Iam - Fatal编程技术网

Google cloud platform IAM角色到SSH到VM,无管理权限

Google cloud platform IAM角色到SSH到VM,无管理权限,google-cloud-platform,google-compute-engine,google-iam,Google Cloud Platform,Google Compute Engine,Google Iam,背景 要在Google Compute Engine中将ssh连接到VM实例中,我需要向用户提供instanceAdmin角色,这将为用户提供管理控制,这有时可能是一个安全问题 查询 Google Compute Engine是否提供任何IAM角色,允许用户通过SSH连接实例,在其上运行程序,但不具有管理员权限(不向用户提供instanceAdmin角色)?TL;DR-不,在这种情况下,您不能使用IAM角色来实现您的要求 用于SSH密钥设置的IAM角色 以下角色允许SSH进入GCE虚拟机: Co

背景

要在Google Compute Engine中将ssh连接到VM实例中,我需要向用户提供instanceAdmin角色,这将为用户提供管理控制,这有时可能是一个安全问题

查询


Google Compute Engine是否提供任何IAM角色,允许用户通过SSH连接实例,在其上运行程序,但不具有管理员权限(不向用户提供instanceAdmin角色)?

TL;DR-不,在这种情况下,您不能使用IAM角色来实现您的要求

用于SSH密钥设置的IAM角色 以下角色允许SSH进入GCE虚拟机:

Compute引擎实例管理员
aka
roles/Compute.instanceAdmin.v1
服务帐户参与者
aka
roles/iam.serviceAccountActor

设置SSH密钥 由于GCE使用metadata server来提供SSH密钥,因此您将需要权限
compute.instances.setMetadata
来提供密钥。设置完成后,您必须使用自己的自定义机制来分发密钥

换句话说,您必须自己在GCE实例上创建具有所需权限的其他用户,并控制SSH密钥的供应/分发给所需用户

GCE提供了使用RESTAPI或
gcloud
管理SSH密钥的工具

请务必阅读以下详细说明流程的指南:

GCE将使用元数据服务器提供SSH密钥,并且仅在2016年2月/3月之后创建的以下映像上受支持

  • CentOS 6和7 2016年2月10日
  • Debian 8 2016年2月10日
  • openSUSE 13 2016年2月10日
  • 2016年2月10日RHEL 6日和7日
  • SUSE 11和12 2016年3月1日
  • Ubuntu 16.04 LTS和14.04 LTS 2016年3月3日
  • Ubuntu 12.04 LTS 2016年3月29日

您可以分配
Compute OS Login
Service Account User
IAM角色,同时将实例上的
enable oslogin
元数据设置为
true


这个答案现在可能已经过时了。见我的答复