曾经试图弄清楚这一点,但到目前为止还没有运气。与AWS相比很难实现。
我有一个Google Cloud Platform(GCP)项目,其中正在运行多个计算实例和其他服务。
我需要授予对单个计算实例的超级用户访问权限,而无需向外部开发团队提供任何其他服务。
在“ Compute Engine”视图中,当我选择实例并将用户添加为Compute Admin(对Compute Engine所有资源的完全控制)时,他仍然无法ssh
进入实例。
尝试#1:
出现错误:“需要compute.instance.get
权限。”
所以我去给那个用户一个包含该权限的角色。
尝试#2:
出现错误“用户无权访问服务帐户...”
问题#1 为了给角色提供对GCP中单个计算实例的访问权,到底需要做什么?
在AWS上,可以给特定的角色提供单个资源访问权限,但是在这里确实如此。
问题#2 另外,如果“ Compute Engine”视图中的“权限”右侧栏实际上没有提供任何权限,它的用途是什么。
谢谢!
答案 0 :(得分:3)
我遇到了同样的问题并找到了解决方案。我会尽力回答您的问题:
问题#1:到底该如何做才能让角色访问GCP中的单个计算实例?
您需要向用户授予这些权限:
1-在IAM主页中,https://console.cloud.google.com/iam-admin/iam?project=your_project向用户授予“计算查看器”和“服务帐户用户”角色。
2-在VMs页面https://console.cloud.google.com/compute/instances?folder=&organizationId=&project=your_project中,选择一个或多个VM,然后向用户授予“计算实例管理员(v1)”角色。
现在用户可以通过SSH进入虚拟机。
问题2:如果“ Compute Engine”视图中的“权限”实际上没有任何权限,那么它的目的是什么?
在GCP中,有项目级别和资源级别的权限。 “ Compute Engine”中右侧的“权限”栏可以设置单个资源的权限。
希望这会有所帮助!
答案 1 :(得分:0)
在此link中,您将找到向项目添加新用户的不同方法,以及如何为Compute Engine资源设置访问控制。
注意:如果要将用户SSH授予虚拟机实例,但阻止访问所有API,则将用户的SSH密钥添加到项目或实例中,而不是将用户添加到项目并为其授予广泛的权限。
如果仅想授予用户对VM实例的SSH访问权限,则可以将用户的公钥添加到项目中,或将用户的公钥添加到特定实例。 link here中提到了这一点。
使用OS登录管理实例访问,此功能使您可以更精细地控制哪些用户可以连接到您的实例以及他们具有的权限级别。有关更多详细信息,请参见this document。