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 用户在连接到虚拟机时使用以下某种两步验证 (2FA) 方法或验证类型来验证身份:

  • 支持基于证书的身份验证(预览版)- 您可以使用 SSH 证书身份验证连接到使用 OS Login 的虚拟机。如需了解详情,请参阅通过 OS Login 要求使用 SSH 证书

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

OS Login 的工作原理

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

虚拟机配置

启用 OS Login 后,Compute Engine 会删除虚拟机的 authorized_keys 文件并配置 OpenSSH 服务器。此服务器会检索与 Linux 用户账号关联的 SSH 密钥,以便对登录尝试进行身份验证。

即使启用了 OS Login,您也可以配置 authorized_keys 文件来为本地用户账号预配访问权限。authorized_keys 文件中配置的 SSH 公钥用于对本地用户的用户登录尝试进行身份验证。本地用户账号的用户名和 UID 必须与 OS Login 用户的不同。

如需详细了解 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 修改用户账号

后续步骤