【问题标题】:IAM Role to SSH to VM without Admin PrivelegesIAM 角色到没有管理员权限的 SSH 到 VM
【发布时间】:2017-06-16 07:10:30
【问题描述】:

背景

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

查询

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

【问题讨论】:

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


    【解决方案1】:

    TL;DR - 不,对于 the list of Google Compute engine (GCE) IAM roles provided,您无法使用 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 来管理 SSH 密钥的工具。

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

    Supported Images

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

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

    【讨论】:

    • 这个答案现在可能已经过时了。查看我的回复
    【解决方案2】:

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

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

    【讨论】:

    • 创建一个具有所有提到角色的子权限的自定义角色,它就像魅力一样。
    猜你喜欢
    • 1970-01-01
    • 2015-09-14
    • 2013-09-13
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多