本文說明如何設定 OS 登入。
OS 登入功能可讓您根據 IAM 權限,控管虛擬機器 (VM) 執行個體的存取權。如要進一步瞭解 OS 登入,請參閱「關於 OS 登入」。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
Terraform
如要在本頁的本機開發環境中使用 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
詳情請參閱 這篇文章,瞭解如何設定本機開發環境的驗證機制。
限制
下列 VM 不支援 OS 登入:- Windows Server 和 SQL Server VM。
- Fedora CoreOS VM。如要管理使用這些映像檔建立的 VM 執行個體存取權,請使用 Fedora CoreOS 啟動系統。
- SLES-16 VM。如要管理使用這些映像檔建立的 VM 執行個體存取權,請使用依中繼資料提供的安全殼層金鑰。
如要確認特定 Linux 發行版本是否支援 OS Login,請參閱「作業系統詳細資料」。
指派 OS Login IAM 角色
為連線至已啟用 OS 登入的 VM 的使用者,指派所有必要的 IAM 角色。
| 角色 | 必要使用者 | 授予層級 |
|---|---|---|
roles/compute.osLogin
或 roles/compute.osAdminLogin |
所有使用者 |
如果使用者需要透過 Google Cloud 控制台或 Google Cloud CLI 進行 SSH 存取,您必須在專案層級授予這些角色,或在專案層級額外授予含有 |
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,並指定下列設定:
- 展開「Advanced options」(進階選項) 區段。
- 展開「安全性」部分。
- 展開「管理存取權」部分。
- 選取「透過 IAM 權限控管 VM 存取權」。
- 按一下「建立」即可建立並啟動 VM。
gcloud
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
執行下列
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
更改下列內容:
Terraform
您可以採用下列其中一個選項,將中繼資料值套用至專案或 VM:
選項 1:在全專案範圍的中繼資料內設定
enable-oslogin,以將其套用至您專案中的所有 VM。使用
google_compute_project_metadataTerraform 資源,並設定中繼資料值,其中oslogin=TRUE:或者,您也可以將
enable-oslogin設為FALSE來停用 OS 登入。方法 2:在新 VM 或現有 VM 的中繼資料中設定
enable-oslogin。使用
google_compute_instanceTerraform 資源並設定oslogin=TRUE。將oslogin_instance_name替換為 VM 名稱。或者,您也可以將
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 登入問題」。
後續步驟
- 瞭解如何使用 SSH 連線至 Compute Engine 的 Linux VM。
- 瞭解如何使用 SSH 憑證 (搶先版) 連線至 VM。
- 瞭解如何使用安全金鑰搭配 SSH (預先發布版) 進一步限制 VM 存取權。