IAM在没有Admin Priveleges的情况下SSH到VM的角色

时间:2017-06-16 07:10:30

标签: google-cloud-platform google-compute-engine google-iam

背景

要在Google Compute Engine中使用ssh进入VM实例,我需要向用户提供instanceAdmin Role,这会为用户提供Admin Control,这有时可能是一个安全问题。

查询

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

2 个答案:

答案 0 :(得分:3)

TL; DR - 不,使用the list of Google Compute engine (GCE) IAM roles provided,您无法使用IAM角色来实现您的要求。

SSH密钥配置的IAM角色

以下角色允许SSH进入GCE VM:

Compute Engine Instance Admin又名roles/compute.instanceAdmin.v1 Service account actor又名roles/iam.serviceAccountActor

配置SSH密钥

由于GCE使用元数据服务器来配置SSH密钥,因此您需要权限compute.instances.setMetadata来配置密钥。配置完成后,您将不得不使用自己的自定义机制来分发密钥。

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

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

请阅读以下指南,详细说明该过程:

Supported Images

GCE将使用元数据服务器来配置SSH密钥,并且仅在2016年2月/ 3月之后创建的以下图像支持。

  
      
  • 2016年2月10日CentOS 6和7
  •   
  • Debian 2016年2月10日,
  •   
  • openSUSE 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日
  •   

答案 1 :(得分:0)

您可以分配Compute OS LoginService Account User IAM角色,并将实例上的enable-oslogin元数据设置为true

https://cloud.google.com/compute/docs/instances/managing-instance-access