背景
要在Google Compute Engine中使用ssh进入VM实例,我需要向用户提供instanceAdmin Role,这会为用户提供Admin Control,这有时可能是一个安全问题。
查询
Google Compute Engine是否提供任何IAM角色,允许用户通过SSH连接到实例,在其上运行程序但没有管理员访问权限(不向用户提供instanceAdmin角色)??
答案 0 :(得分:3)
TL; DR - 不,使用the list of Google Compute engine (GCE) IAM roles provided,您无法使用IAM角色来实现您的要求。
以下角色允许SSH进入GCE VM:
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
管理SSH密钥的工具。
请阅读以下指南,详细说明该过程:
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 Login
和Service Account User
IAM角色,并将实例上的enable-oslogin
元数据设置为true
。
https://cloud.google.com/compute/docs/instances/managing-instance-access