无需管理员权限即可通过 SSH 连接到 VM 的 IAM 角色

Roh*_*han 4 google-compute-engine google-cloud-platform google-iam

背景

要通过 ssh 进入 Google Compute Engine 中的 VM 实例,我需要为用户提供 instanceAdmin 角色,这将管理控制权授予用户,这有时可能是一个安全问题。

询问

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

lar*_*161 7

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

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


Tux*_*ude 6

TL;DR - 不,在提供了 Google Compute Engine (GCE) IAM 角色列表的情况下,您不能使用 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.

请阅读以下详细解释该过程的指南:

支持的图像

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

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