OS Login 简介


本页介绍 OS Login 服务及其工作原理。 如需了解如何设置 OS Login,请参阅设置 OS Login

利用 OS Login,您可以通过 IAM 管理对实例的 SSH 访问权限,而无需创建和管理单独的 SSH 密钥。OS Login 可在虚拟机实例之间保持一致的 Linux 用户身份,建议用来跨多个虚拟机或项目管理许多用户。

OS Login 的优势

OS Login 通过将 Linux 用户账号关联到 Google 身份来简化 SSH 访问权限管理。管理员可以通过设置 IAM 权限,在实例级别或项目级别轻松管理实例访问权限。

OS Login 具有以下优势:

  • 自动执行 Linux 账号生命周期管理 - 您可以直接将 Linux 用户账号与用户的 Google 身份关联,从而在同一项目或组织中的所有实例中使用同样的 Linux 账号信息。

  • 使用 Google IAM 进行精细授权 - 项目和实例级管理员可以使用 IAM 将 SSH 访问权限授予用户的 Google 身份,而无需授予更多权限。例如,您可以授予用户登录系统的权限,但不授予运行 sudo 之类命令的权限。Google 会检查这些权限,以确定用户是否可以登录虚拟机实例。

  • 自动更新权限 - 如果使用 OS Login,相应权限会在管理员更改 IAM 权限时自动更新。例如,如果您从 Google 身份中移除 IAM 权限,则对虚拟机实例的访问权限会被撤消。对于每次登录尝试,Google 都会检查权限以阻止不合规定的访问。

  • 能够导入现有 Linux 账号 - 管理员可以视情况同步本地设置的 Active Directory (AD) 和轻量级目录访问协议 (LDAP) 中的 Linux 账号信息。例如,您可以确保用户在云端和本地环境中使用同一用户 ID (UID)。

  • 与 Google 账号两步验证集成 - 您可以选择要求 OS Login 用户在连接到虚拟机时使用以下某种两步验证方法或验证类型来验证身份:

  • 与审核日志记录集成 - OS Login 提供审核日志记录,可用于监控与 OS Login 用户的虚拟机的连接。

OS Login 的工作原理

启用 OS Login 后,Compute Engine 会对虚拟机和 OS Login 用户的 Google 账号执行配置。

虚拟机配置

Google 提供的公共映像包含用于管理虚拟机访问权限的实用程序和组件。启用 OS Login 后,虚拟机上设置了以下组件和配置:

  • 删除虚拟机的 authorized_keys 文件。
  • 通过 AuthorizedKeysCommand 选项配置 OpenSSH 服务器。此命令会检索与 Linux 用户账号关联的 SSH 密钥,进而对登录尝试进行身份验证。

  • 配置 NSS(名称服务切换)功能,以向操作系统提供 OS Login 用户信息。

  • 添加一组可插入式身份验证模块 (PAM) 配置,以授权用户登录。PAM 配置针对登录和管理访问执行 IAM 权限检查。这些 PAM 配置还执行其他任务,例如设置 Linux 用户账号的主目录。

如需详细了解 OS Login 组件,请查看 OS Login GitHub 页面

用户账号配置

当您执行以下任一操作时,OS Login 会使用 POSIX 信息(包括用户名)配置您的 Google 账号。

  • 使用 Google Cloud 控制台连接到启用了 OS Login 的虚拟机
  • 使用 gcloud CLI 连接到启用了 OS Login 的虚拟机
  • 使用 gcloud CLI 导入 SSH 公钥
  • 使用 OS Login API 导入 SSH 公钥

OS Login 会使用以下值配置 POSIX 账号:

  • 用户名:采用 USERNAME_DOMAIN_SUFFIX 格式的用户名。如果用户来自不同于托管其启用了 OS Login 的虚拟机的 Google Workspace 组织,则其用户名以 ext_ 为前缀。如果用户是服务账号,则其用户名以 sa_ 为前缀。

    Cloud Identity 管理员可以修改用户名,Google Workspace 超级用户可以更改用户名格式以移除域名后缀

  • UID:随机生成的唯一符合 POSIX 标准的用户 ID。

  • GID:符合 POSIX 标准的群组 ID,与 UID 相同。

  • 主目录:指向用户主目录的路径。

组织管理员可以配置和更新用户的 POSIX 账号信息。如需了解详情,请参阅使用 Directory API 修改用户账号

后续步骤