在 GKE 中启用和配置 OS Login


本页面介绍如何启用 OS Login 以及如何配置组织政策,以便为专用 GKE 集群和节点强制执行 OS Login。如需了解 OS Login Service,请参阅有关 OS Login 的 Compute Engine 文档

概览

您可以在组织中设置 OS Login 限制条件,以确保所有新项目和在这些新项目中创建的虚拟机实例都启用了 OS Login。OS Login 已迅速成为 Google Cloud 安全最佳做法,建议您通过组织政策来强制执行使用。

以下说明详细介绍了如何使用 GKE 中的组织政策启用 OS Login。

准备工作

在开始之前,请确保您已执行以下任务:

使用以下任一方法设定默认的 gcloud 设置:

  • 使用 gcloud init(如果您想要在系统引导下完成默认设置)。
  • 使用 gcloud config(如果您想单独设置项目 ID、区域和地区)。

使用 gcloud init

如果您收到 One of [--zone, --region] must be supplied: Please specify location 错误,请完成本部分。

  1. 运行 gcloud init 并按照说明操作:

    gcloud init

    如果您要在远程服务器上使用 SSH,请使用 --console-only 标志来防止命令启动浏览器:

    gcloud init --console-only
  2. 按照说明授权 gcloud 使用您的 Google Cloud 帐号。
  3. 创建新配置或选择现有配置。
  4. 选择 Google Cloud 项目。
  5. 为可用区级集群选择默认 Compute Engine 可用区,或为区域级集群或 Autopilot 集群选择区域。

使用 gcloud config

  • 设置默认项目 ID
    gcloud config set project PROJECT_ID
  • 如果您使用的是可用区级集群,请设置默认计算可用区
    gcloud config set compute/zone COMPUTE_ZONE
  • 如果您使用的是 Autopilot 集群或区域级集群,请设置默认计算区域
    gcloud config set compute/region COMPUTE_REGION
  • gcloud 更新到最新版本:
    gcloud components update

更新现有项目以使用 OS Login

在设置组织政策之前,请迁移任何现有的专用集群以使用 OS Login。

  1. 将项目中的所有节点池中的版本更新为受支持的版本:

    gcloud container clusters upgrade CLUSTER_NAME \
        --node-pool=NODE_POOL_NAME \
        --cluster-version VERSION
    

    请替换以下内容:

    • CLUSTER_NAME:现有集群的名称。
    • NODE_POOL_NAME:节点池的名称。
    • VERSION:与 OS Login 兼容的版本,它可以是 1.20.5 版或更高版本。
  2. enable-oslogin 标志设置为 TRUE,以默认在所有现有和新的虚拟机实例上启用 OS Login。您无需重新启动节点。

    gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE
    

设置 OS Login 组织政策

如需在组织级层设置 OS Login 限制条件,请执行以下操作:

  1. 运行以下命令,查找您的组织 ID:

    gcloud organizations list
    
  2. 设置 OS Login 组织政策。将 ORGANIZATION_ID 替换为您的组织 ID。

    gcloud resource-manager org-policies enable-enforce \
        compute.requireOsLogin \
        --organization=ORGANIZATION_ID
    

设置组织政策后,将应用以下条件:

  • 在所有新项目的项目元数据中,enable-oslogin 设置为 true
  • 在实例或项目元数据中将 enable-oslogin 设置为 false 的更新请求被拒绝。

管理节点访问权限

启用 OS Login 组织政策后,您无需管理 SSH 密钥即可做出授权决策。OS Login 将授权管理移至 Identity and Access Management。如需管理针对节点的 SSH 访问权限,请使用 OS Login。如需了解详情,请参阅设置 OS Login

后续步骤