7

背景

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

询问

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

4

2 回答 2

7

TL;DR - 不,使用提供的 Google Compute Engine (GCE) IAM 角色列表,您无法使用 IAM 角色来实现您的要求。

用于 SSH 密钥配置的 IAM 角色

以下角色允许 SSH 进入 GCE 虚拟机:

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 8 2016 年 2 月 10 日
  • openSUSE 13 2016 年 2 月 10 日
  • 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 日
于 2017-06-16T19:27:07.920 回答
5

您可以分配IAM 角色,同时将实例上的Compute OS Login元数据设置为。Service Account Userenable-oslogintrue

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

于 2019-01-07T19:59:32.070 回答