![在 GCP 中管理特定应用用户的最佳实践是什么](https://linux22.com/image/758733/%E5%9C%A8%20GCP%20%E4%B8%AD%E7%AE%A1%E7%90%86%E7%89%B9%E5%AE%9A%E5%BA%94%E7%94%A8%E7%94%A8%E6%88%B7%E7%9A%84%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E6%98%AF%E4%BB%80%E4%B9%88.png)
是否有用于管理 Google Cloud Platform 中虚拟机的应用程序特定用户的“最佳实践”?例如,在旧服务器世界中,您可能有一个用于 syslog 守护程序的“syslog”用户,或一个用于 nginx 的“nginx”用户。在那个世界中,我会为我的应用程序创建一个“myapp”用户,然后在该用户下运行该服务。
在 GCP 世界中,我们根据库存映像创建虚拟机,“myapp”用户将不存在。当然,我可以创建一个并制作自定义映像,但我很好奇是否有更好的(规范的 GCP)方法来做到这一点。
此服务不需要访问任何云 API,因此服务帐户对我来说没有立即意义。另外,我不确定是否可以在我的 systemd 单元文件中将服务帐户指定为用户。
我的目标是允许服务在虚拟机上的非特权帐户下运行。我的问题是:我必须使用传统的 unix 工具创建此帐户吗,还是有规范的 GCP 方法?或者也许这在 GCP 世界中没有完成?
答案1
我想到的一件事是“操作系统登录“GCP 中的功能:
OS Login 将您的 Linux 用户帐户与您的 Google 身份关联,从而简化 SSH 访问管理。通过设置 IAM 权限,管理员可以轻松管理实例或项目级别的实例访问。
实际上,当授权用户想要登录虚拟机时,他没有账户,但一个特殊工具(嵌入在操作系统映像中)检测到该登录尝试并“动态”为该用户创建一个账户,然后对用户进行身份验证。您可以在OS 登录的工作原理文档。它的主要目标是从 IAM 页面而不是从实例管理用户。这样您就可以集中控制用户。
syslog
但和你说的type users不完全一样。
这里还有一些关于如何设置操作系统登录。
没有特殊(或规范)的方法来管理非特权 Linux 帐户(用于运行特定应用程序),因此您必须采用“老式的方法”。
GCP 的虚拟机虽然是虚拟的,但也是带有用户的普通 Linux 机器。根据您的需要,您可能需要手动执行此操作。如果您的配置可重复,则创建一个自定义图像。
比客户形象更容易的是创建一个启动脚本在启动虚拟机时创建用户。这种方法的优点是不需要创建自定义映像,并且大多与您运行的 Linux 版本无关。