11

一直试图弄清楚这一点,但到目前为止还没有运气。与 AWS 相比,实现起来非常困难。

我有一个运行多个计算实例和其他服务的 Google Cloud Platform (GCP) 项目。

我需要向外部开发团队授予对单个计算实例的 root 访问权限,但不授予任何其他服务。

在“计算引擎”视图中,当我选择实例并将用户添加为计算管理员(完全控制所有计算引擎资源)但他仍然无法ssh进入实例。

尝试#1:

出现错误:“需要compute.instance.get许可。”

所以我去给那个用户一个包含该权限的角色。

尝试#2:

收到错误“用户无权访问服务帐户...”

问题 #1 究竟需要做些什么才能让角色访问 GCP 中的单个计算实例?

在 AWS 上,有一个特定的角色可以被授予单个资源访问权限,但这里似乎确实如此。

问题 #2 如果实际上没有授予任何权限,那么“Compute Engine”视图中的“Permissions”右侧边栏的用途是什么。

谢谢!

4

2 回答 2

16

我有同样的问题并找到了解决方案。我将尝试回答您的问题:

问题 #1:到底需要做些什么才能让角色访问 GCP 中的单个计算实例?

您需要授予用户以下权限:

1- 在主 IAM 页面中,https: //console.cloud.google.com/iam-admin/iam?project=your_project授予用户“计算查看者”和“服务帐户用户”角色。

2- 在虚拟机页面https://console.cloud.google.com/compute/instances?folder=&organizationId=&project=your_project,选择一个或多个虚拟机并授予用户“计算实例管理员(v1) “ 角色。

现在用户可以通过 SSH 连接到虚拟机。

问题 #2 如果实际上没有授予任何权限,那么“Compute Engine”视图中的“权限”右侧边栏的用途是什么。

在 GCP 中有项目级别和资源级别的权限。“Compute Engine”中的“Permissions”右侧边栏设置单个资源的权限。

希望这可以帮助!

在此处输入图像描述

在此处输入图像描述

于 2019-08-05T21:30:21.543 回答
0

在此链接中,您将找到向项目添加新用户的不同方式,以及如何为 Compute Engine 资源设置访问控制。

注意:如果您想向用户提供 SSH 到虚拟机实例但阻止访问所有 API,请将用户的 SSH 密钥添加到项目或实例,而不是将用户添加到项目并授予他们广泛的权限。

  1. 如果您只想授予用户对 VM 实例的 SSH 访问权限,则可以将用户的公钥添加到项目中,或者将用户的公钥添加到特定实例。这在此处的链接中有所提及。

  2. 使用 OS Login 管理实例访问,此功能使您可以更精细地控制哪些用户可以连接到您的实例以及他们拥有的权限级别。有关其他详细信息,请参阅此文档

于 2018-10-11T16:08:58.900 回答