設定 OS 登入

本文說明如何設定 OS 登入。

OS 登入功能可讓您根據 IAM 權限,控管虛擬機器 (VM) 執行個體的存取權。如要進一步瞭解 OS 登入,請參閱「關於 OS 登入」。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • Terraform

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

    1. 安裝 Google Cloud CLI。

    2. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    3. 如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:

      gcloud auth application-default login

      如果您使用 Cloud Shell,則不需要執行這項操作。

      如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI

    詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。

限制

下列 VM 不支援 OS 登入:

如要確認特定 Linux 發行版本是否支援 OS Login,請參閱「作業系統詳細資料」。

指派 OS Login 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 登入功能

如要為單一 VM 或專案中的所有 VM 啟用 OS 登入功能,請在專案或執行個體中繼資料中,將 enable-oslogin 設為 TRUE

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

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

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

  • 鍵:enable-oslogin
  • 值:TRUE

為單一 VM 啟用 OS 登入功能

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

  • 鍵:enable-oslogin
  • 值:TRUE

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

使用 Google Cloud 控制台或 gcloud CLI 建立 VM 時,請啟用 OS 登入功能。

控制台

如要在啟動時啟用 OS 登入功能,請從公開映像檔建立 VM,並指定下列設定:

  1. 展開「Advanced options」(進階選項) 區段。
  2. 展開「安全性」部分。
  3. 展開「管理存取權」部分。
  4. 選取「透過 IAM 權限控管 VM 存取權」
  5. 按一下「建立」即可建立並啟動 VM。

gcloud

  1. 在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 執行下列 gcloud compute instance create 指令,建立在啟動時啟用 OS Login 的 VM:

    gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=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 或現有 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 登入功能並採用兩步驟驗證

如要提高安全性,您可以要求使用者連線至已啟用 OS 登入的 VM 時,必須使用雙重驗證 (2FA)。如果您打算使用 OS 登入的雙重驗證功能,使用者必須在帳戶中設定兩步驟驗證。如要瞭解支援的 2FA 方法,請參閱「關於 OS 登入」一文。

啟用兩步驟驗證前,請先啟用 OS 登入,如「啟用 OS 登入」一文所述。如要啟用 OS Login 雙重驗證,請在執行個體或專案中繼資料中設定下列中繼資料值:

  • 鍵:enable-oslogin-2fa
  • 值:TRUE

如要強制執行 OS Login 2FA,OS Login (enable-oslogin) 和 OS Login 2FA (enable-oslogin-2fa) 的中繼資料都必須設為 TRUE

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

排解 OS 登入問題

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

後續步驟