設定 OS 登入


本文說明如何設定 OS 登入服務,以及如何設定 OS 登入服務的雙重驗證 (2FA) 功能。

OS 登入可讓您根據 IAM 權限控管虛擬機器 (VM) 執行個體的存取權。您可以使用 OS Login,並選擇是否啟用 2FA,但必須先啟用 OS Login,才能使用 2FA。如要進一步瞭解 OS 登入和 OS 登入雙重驗證,包括 OS 登入支援的驗證類型,請參閱「關於 OS 登入」。

事前準備

  • 如要使用 OS Login 2FA,請在網域或帳戶中啟用 2FA:
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. Terraform

        如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。

        1. Install the Google Cloud CLI.

        2. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        3. To initialize the gcloud CLI, run the following command:

          gcloud init
        4. If you're using a local shell, then create local authentication credentials for your user account:

          gcloud auth application-default login

          You don't need to do this if you're using Cloud Shell.

          If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

        詳情請參閱 Set up authentication for a local development environment

限制

下列 VM 不支援 OS 登入:
  • Windows Server 和 SQL Server VM
  • Fedora CoreOS VM。如要管理使用這些映像檔建立的 VM 執行個體存取權,請使用 Fedora CoreOS 點火系統

指派 OS 登入 IAM 角色

為連線至已啟用 OS 登入的 VM 的使用者,指派所有必要的 IAM 角色。

角色 必要使用者 授予層級
roles/compute.osLoginroles/compute.osAdminLogin 所有使用者

在「專案」或「執行個體」上。

如果使用者需要透過 Google Cloud 控制台或 Google Cloud CLI 進行 SSH 存取,您必須在專案層級授予這些角色,或在專案層級額外授予含有 compute.projects.get 權限的角色。

roles/iam.serviceAccountUser 如果 VM 有服務帳戶,則為所有使用者 在「服務帳戶」頁面。
roles/compute.osLoginExternalUser 使用者與所連線的 VM 屬於不同機構

在「機構」

這個角色必須由機構管理員授予。

啟用 OS 登入功能

您可以設定 OS Login 中繼資料,為單一 VM 或專案中的所有 VM 啟用 OS Login 或 OS Login 雙重驗證。

設定 OS 登入中繼資料時,Compute Engine 會刪除虛擬機的 authorized_keys 檔案,且不再接受專案或執行個體中繼資料中儲存的 SSH 金鑰連線。

為專案中的所有 VM 啟用 OS 登入功能

如要為專案中的所有 VM 啟用 OS 登入,請在專案中繼資料中設定下列值:

  1. 啟用 OS 登入:
    • 鍵:enable-oslogin
    • 值:TRUE
  2. (選用) 啟用雙重驗證:
    • 鍵:enable-oslogin-2fa
    • 值:TRUE

為單一 VM 啟用 OS 登入功能

如要為單一 VM 啟用 OS 登入,請在執行個體中繼資料中設定下列值:

  1. 啟用 OS 登入:
    • 鍵:enable-oslogin
    • 值:TRUE
  2. (選用) 啟用雙重驗證:
    • 鍵:enable-oslogin-2fa
    • 值:TRUE

在建立 VM 時啟用 OS 登入功能

使用 Google Cloud 控制台或 gcloud CLI 建立 VM 時,啟用 OS 登入 (可選擇啟用兩步驟驗證)。

主控台

如要建立 VM,並在啟動時啟用 OS 登入和 (選用) OS 登入 2FA,請從公開映像檔建立 VM,然後指定下列設定:

  1. 展開「Advanced options」(進階選項) 區段。
  2. 展開「安全性」部分。
  3. 展開「管理存取權」部分。
  4. 選取「透過 IAM 權限控管 VM 存取權」
  5. 選用:如要啟用 OS Login 雙重驗證,請選取「需要兩步驟驗證」
  6. 按一下「建立」即可建立並啟動 VM。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 執行下列其中一個 gcloud compute instance create 指令,建立在啟動時啟用 OS 登入和 (選用) OS 登入 2FA 的 VM:

    • 如要只啟用 OS Login,請執行下列指令:

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE
      
    • 如要啟用 OS Login 雙重驗證,請執行下列指令:

      gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE,enable-oslogin-2fa=TRUE
      

    更改下列內容:

    • VM_NAME:新 VM 的名稱。
    • IMAGE_FAMILY:Linux OS 的映像檔系列。這會使用未淘汰的最新 OS 映像檔建立 VM。如需所有公開映像檔系列的清單,請參閱「作業系統詳細資料」。
    • IMAGE_PROJECT:包含映像檔系列的映像檔專案。每個作業系統都有自己的映像檔專案。如要查看所有公開映像檔專案,請參閱「作業系統詳細資料」。

Terraform

您可以採用下列其中一個選項,將中繼資料值套用至專案或 VM:

  • 選項 1:在全專案範圍的中繼資料內設定 enable-oslogin,以將其套用至您專案中的所有 VM。

    使用 google_compute_project_metadata Terraform 資源,並設定中繼資料值,其中 oslogin=TRUE

    resource "google_compute_project_metadata" "default" {
      metadata = {
        enable-oslogin = "TRUE"
      }
    }

    或者,您也可以將 enable-oslogin 設為 FALSE 來停用 OS 登入。

  • 方法 2:在新或現有 VM 的中繼資料中設定 enable-oslogin

    使用 google_compute_instance Terraform 資源並設定 oslogin=TRUE。將 oslogin_instance_name 替換為 VM 名稱。

    resource "google_compute_instance" "oslogin_instance" {
      name         = "oslogin-instance-name"
      machine_type = "f1-micro"
      zone         = "us-central1-c"
      metadata = {
        enable-oslogin : "TRUE"
      }
      boot_disk {
        initialize_params {
          image = "debian-cloud/debian-11"
        }
      }
      network_interface {
        # A default network is created for all GCP projects
        network = "default"
        access_config {
        }
      }
    }

    或者,您也可以將 enable-oslogin 設為 FALSE,藉此停用 VM 的 OS 登入。

連線至已啟用 OS 登入功能的 VM

如要連線至已啟用 OS 登入功能的 VM,請使用「連線至 Linux VM」一文所述的方法。

連線至已啟用 OS 登入功能的 VM 時,Compute Engine 會使用貴機構管理員為您設定的使用者名稱。如果貴機構管理員尚未為您設定使用者名稱,Compute Engine 會以 USERNAME_DOMAIN_SUFFIX 格式產生使用者名稱。如要進一步瞭解使用者名稱,請參閱「OS Login 的運作原理」。

連線至已啟用 OS Login 2FA 的 VM 時,您也會看到系統根據所選兩步驟驗證方法或驗證類型發出的訊息。如果使用的方法是手機提示,請在手機或平板電腦上接受提示,才能繼續操作。如果是其他方法,請輸入您的安全碼或動態密碼。

排解 OS 登入問題

如要瞭解如何診斷及解決 OS 登入錯誤,請參閱「排解 OS 登入問題」。

後續步驟