背景
要在 Google Compute Engine 中通过 ssh 连接到 VM 实例,我需要向用户提供 instanceAdmin 角色,从而为用户提供管理员控制权,这有时可能是一个安全问题。
询问
Google Compute Engine 是否提供任何 IAM 角色,这将允许用户通过 SSH 连接到实例,在其上运行程序但没有管理员访问权限(不向用户提供 instanceAdmin 角色)?
背景
要在 Google Compute Engine 中通过 ssh 连接到 VM 实例,我需要向用户提供 instanceAdmin 角色,从而为用户提供管理员控制权,这有时可能是一个安全问题。
询问
Google Compute Engine 是否提供任何 IAM 角色,这将允许用户通过 SSH 连接到实例,在其上运行程序但没有管理员访问权限(不向用户提供 instanceAdmin 角色)?
TL;DR - 不,使用提供的 Google Compute Engine (GCE) IAM 角色列表,您无法使用 IAM 角色来实现您的要求。
以下角色允许 SSH 进入 GCE 虚拟机:
Compute Engine Instance Admin
又名roles/compute.instanceAdmin.v1
Service account actor
_roles/iam.serviceAccountActor
由于 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 日
您可以分配IAM 角色,同时将实例上的Compute OS Login
元数据设置为。Service Account User
enable-oslogin
true
https://cloud.google.com/compute/docs/instances/managing-instance-access