Dokumen ini menjelaskan cara menggunakan Login OS untuk mengelola akses ke instance VM di seluruh organisasi Anda.
Topik ini membahas tugas-tugas berikut:
- Mengaktifkan Login OS untuk organisasi menggunakan kebijakan organisasi: Gunakan kebijakan organisasi untuk memastikan bahwa semua instance VM baru di organisasi Anda telah mengaktifkan Login OS.
- Memberikan akses instance kepada pengguna di luar organisasi Anda: Izinkan akun pengguna di luar organisasi Anda menggunakan SSH agar terhubung ke instance Anda.
- Mengelola OS Login API: Izinkan atau tolak akses pengguna untuk menggunakan OS Login API. Selain itu, aktifkan atau nonaktifkan fitur OS Login API.
- Mengaudit peristiwa Login OS: Lacak peristiwa dan aktivitas terkait Login OS, seperti menambahkan, menghapus, atau memperbarui kunci SSH, atau menghapus informasi POSIX.
- Mengubah akun pengguna menggunakan Directory API: Perbarui properti pengguna, seperti nama pengguna dan informasi akun POSIX, menggunakan Directory API.
- Menggunakan grup Linux dengan Login OS: Kelola izin pengguna dalam VM menggunakan grup Linux dengan Login OS.
- Menggunakan Login OS dengan federasi identitas tenaga kerja (Pratinjau): Menghubungkan ke VM yang mengaktifkan Login OS saat organisasi Anda menggunakan penyedia identitas (IdP) eksternal.
Sebelum memulai
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan region dan zona default.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Kebijakan organisasi Login OS
Anda dapat menyiapkan batasan Login OS di organisasi untuk memastikan bahwa semua project baru, dan instance VM yang dibuat dalam project baru ini, telah mengaktifkan Login OS.
Saat batasan ini disiapkan, kondisi berikut akan diterapkan:
enable-oslogin=true
disertakan dalam metadata project untuk semua project baru.- Permintaan yang menetapkan
enable-oslogin
kefalse
dalam instance atau metadata project akan ditolak, untuk VM dan project baru maupun yang sudah ada.
Batasan
Login OS tidak didukung di produk, fitur, dan VM berikut:- Cloud Data Fusion versi 6.1.4 dan versi sebelumnya
- Cloud Composer
- Cluster publik Google Kubernetes Engine (GKE) yang menjalankan versi sebelum 1.23.5
- Cluster pribadi GKE yang menjalankan versi node pool sebelum 1.20.5
- Dataproc Serverless
- VM Windows Server dan SQL Server
- VM Fedora CoreOS. Untuk mengelola akses instance ke VM yang dibuat menggunakan image ini, gunakan sistem ignisi Fedora CoreOS
Solusi untuk Cloud Data Fusion, Cloud Composer, dan GKE
Untuk menggunakan Login OS di organisasi yang menggunakan Cloud Data Fusion, Cloud Composer, dan GKE, Anda dapat mengaktifkan batasan Login OS di tingkat organisasi, lalu secara selektif menonaktifkan batasan tersebut pada project atau folder untuk project yang terpengaruh.
Untuk mengetahui informasi selengkapnya tentang mengedit kebijakan organisasi, lihat membuat dan mengedit kebijakan.
Mengaktifkan kebijakan organisasi
Untuk mengaktifkan kebijakan Login OS, Anda dapat menetapkan batasan Login OS pada project dan folder tertentu menggunakan Google Cloud CLI. Anda juga dapat menetapkan batasan Login OS di seluruh organisasi menggunakan konsol Google Cloud atau Google Cloud CLI.
Konsol
Untuk menetapkan kebijakan organisasi Login OS dari konsol, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman Organization policies.
- Dalam daftar kebijakan, klik Require OS Login untuk melihat batasan Login OS.
- Klik Edit untuk mengedit batasan Login OS yang sudah ada.
- Pada halaman Edit, pilih Customize.
- Untuk mengaktifkan penerapan batasan ini, pilih On.
- Klik Save untuk menerapkan setelan batasan.
gcloud
Untuk menetapkan kebijakan organisasi Login OS, gunakan perintah gcloud beta resource-manager org-policies enable-enforce
.
Temukan ID organisasi Anda.
gcloud organizations list
Tetapkan batasan di organisasi. Ganti
organization-id
dengan ID organisasi Anda.gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \ --organization=organization-id
Anda juga dapat menerapkan kebijakan organisasi Login OS ke folder atau project dengan flag --folder
atau --project
, serta ID folder dan project ID.
Untuk folder, jalankan perintah berikut:
gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \ --folder=folder-id
Untuk project, jalankan perintah berikut:
gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \ --project=project-id
Ganti kode berikut:
folder-id
: ID folder Anda.project-id
: Project ID Anda.
Memberikan akses instance kepada pengguna di luar organisasi Anda
Secara default, pengguna di luar organisasi Anda tidak dapat menetapkan kunci SSH untuk instance di organisasi Anda atau diberi akses ke instance di organisasi Anda. Dalam beberapa situasi, Anda mungkin perlu memberikan akses instance kepada pengguna yang merupakan bagian dari organisasi lain atau yang memiliki akun Google gmail.com
konsumen.
Peran IAM roles/compute.osLoginExternalUser
memungkinkan Akun Google eksternal berinteraksi dengan peran Login OS lainnya dengan memungkinkannya mengonfigurasi informasi akun POSIX.
Untuk memberikan peran akses instance Login OS yang diperlukan kepada roles/compute.osLoginExternalUser
dan pengguna di luar organisasi Anda, selesaikan langkah-langkah berikut:
- Di konsol Google Cloud, buka halaman pemilihan project dan organisasi.
- Di menu drop-down Organization, pilih organisasi Anda.
- Klik All, untuk melihat semua organisasi Anda.
- Klik nama organisasi.
- Klik Add untuk menambahkan peran baru kepada pengguna.
- Tentukan nama pengguna untuk pengguna yang ingin Anda konfigurasi akses instance-nya.
- Klik Select a role untuk menentukan peran yang ingin Anda berikan kepada pengguna.
- Dalam daftar peran Compute Engine, pilih peran Compute OS Login External User.
- Klik Add untuk mengonfirmasi bahwa Anda ingin memberikan peran yang dipilih kepada pengguna.
- Jika Anda belum melakukannya, berikan peran akses instance Login OS lainnya kepada pengguna di tingkat project atau organisasi.
Sekarang pengguna dapat terhubung ke instance di project Anda yang mengaktifkan Login OS.
Mengelola OS Login API
Di tingkat organisasi, Anda dapat membatasi akses ke OS Login API dengan menyetel kontrol admin Google Workspace. Untuk mengonfigurasi kontrol admin Google Workspace atau melihat opsi konfigurasi, lihat Mengontrol siapa yang menggunakan Google Cloud di organisasi Anda. Sebagai admin Google Workspace, Anda juga dapat mengaktifkan atau menonaktifkan fitur tertentu dari OS Login API. Hal ini mencakup opsi berikut:
- Pilih apakah akan menyertakan akhiran domain dalam nama pengguna yang dibuat oleh OS Login API. Misalnya, dalam domain
example.com
, penggunauser@example.com
akan memiliki nama penggunauser
jika setelan untuk menyertakan akhiran domain tidak dicentang. - Tentukan apakah anggota organisasi Anda dapat mengelola kunci SSH menggunakan OS Login API.
- Batasi atau izinkan akses VM untuk pengguna di luar organisasi Anda.
Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan atau menonaktifkan setelan OS Login API, lihat Memilih setelan untuk Google Cloud Platform.
Mengaudit peristiwa Login OS
Sebagai Admin Google Workspace, Anda dapat menggunakan Google Workspace Admin SDK untuk mengaudit tindakan yang dilakukan dengan OS Login API. Dengan meninjau peristiwa ini, Anda dapat melacak kapan pengguna menambahkan, menghapus, atau memperbarui kunci SSH, atau menghapus informasi akun POSIX.
Anda dapat mengambil peristiwa aktivitas audit OS Login API, dari Google Workspace Admin SDK, dengan memanggil Activities.list()
dengan applicationName=gcp
. Untuk informasi selengkapnya, lihat peristiwa aktivitas Google Cloud dalam dokumentasi Reports API Google Workspace Admin SDK.
Mengubah akun pengguna menggunakan Directory API
Login OS menggunakan setelan pengguna Cloud Identity atau Google Workspace Anda saat terhubung ke instance. Jika Anda adalah admin organisasi, Anda dapat menggunakan Directory API untuk menyelesaikan tugas berikut bagi akun pengguna Google Workspace atau Cloud Identity Anda:
- Mengubah setelan login instance.
- Menjadikan suatu pengguna sebagai administrator
- Mengubah properti pengguna seperti nama akun dan email
- Menambahkan dan menghapus kunci SSH untuk suatu pengguna
- Mengubah informasi akun POSIX
- Mengubah nama pengguna yang terhubung ke pengguna di instance.
Contoh berikut menunjukkan cara mengubah atau menghapus akun pengguna menggunakan Directory API. Untuk mengetahui informasi selengkapnya tentang properti akun yang dapat Anda edit, lihat Referensi Directory API.
Mengubah properti akun
Untuk mengubah informasi akun POSIX pengguna atau mengelola kunci SSH pengguna, kirimkan permintaan PUT
ke metode directory.users.update
dan tentukan satu atau beberapa properti untuk diubah di akun pengguna.
Jika mengubah properti posixAccounts
pengguna, Anda harus menentukan nilai username
, uid
, dan gid
saat ini atau yang baru dalam permintaan.
Jika mengubah properti sshPublicKeys
pengguna, Anda harus menentukan nilai key
dalam permintaan.
Berikut adalah contoh permintaan PUT
:
PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY { "posixAccounts": [ { "username": "USERNAME", "uid": "UID", "gid": "GID", "homeDirectory": "USER_HOME_PATH", "shell": "SHELL_PATH" } ], "sshPublicKeys": [ { "key": "KEY_VALUE", "expirationTimeUsec": EXPIRATION_TIME } ], }
Ganti kode berikut:
USER_KEY
: alamat email utama, alamat email alias, atau ID pengguna unik milik pengguna.USERNAME
: nama pengguna yang ditambahkan Compute Engine ke VM untuk pengguna. Nilai ini harus unik dalam organisasi Anda dan tidak boleh diakhiri dengan tanda gelombang ("~") atau berisi titik (".").UID
: ID pengguna pada VM untuk pengguna ini. Properti ini harus berupa nilai antara1001
dan60000
, atau nilai antara65535
dan2147483647
. Untuk mengakses container-optimized OS,UID
harus memiliki nilai antara65536
dan214748646
.UID
harus bersifat unik dalam organisasi Anda.GID
: ID grup di VM tempat pengguna berada.USER_HOME_PATH
: (Opsional) direktori beranda di VM untuk pengguna. Contoh,/home/example_username
.SHELL_PATH
: (Opsional) jalur ke shell default untuk pengguna setelah mereka terhubung ke instance. Misalnya,/bin/bash
atau/bin/sh
.KEY_VALUE
: nilai kunci SSH publik.EXPIRATION_TIME
: (Opsional) waktu habis masa berlaku kunci dalam mikrodetik sejak epoch (1 detik = 106 mikrodetik).
Menghapus properti akun
Untuk menghapus data posixAccounts
dan sshPublicKeys
bagi pengguna, keluarkan permintaan PUT
ke metode directory.users.update
, yang menyetel kolom posixAccounts
dan sshPublicKeys
ke null
:
PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY { "posixAccounts": null, "sshPublicKeys": null }
Ganti USER_KEY
dengan alamat email utama, alamat email alias, atau ID pengguna unik pengguna.
Menggunakan grup Linux dengan Login OS
Admin organisasi dapat menggunakan Cloud Identity Groups API untuk mengonfigurasi grup Linux tambahan bagi pengguna Login OS dengan membuat dan mengelola grup POSIX. Login OS menautkan grup POSIX dengan grup Linux tambahan di VM organisasi Anda, sehingga Anda dapat mengelola izin yang dimiliki pengguna di VM Anda.
Mengelola keanggotaan pengguna di grup Linux
Untuk membuat grup POSIX, lihat Membuat dan memperbarui grup POSIX.
Untuk menambahkan pengguna ke grup, lihat Menambahkan atau mengundang pengguna ke grup.
Pembaruan keanggotaan akan diterapkan dalam waktu 10 menit. Perubahan grup tercermin di semua VM yang baru dibuat. Pembaruan grup POSIX mungkin memerlukan waktu hingga enam jam untuk diterapkan ke semua VM yang berjalan. Pengguna mungkin harus logout atau menggunakan perintah newgrp
untuk mengamati perubahan grup.
Batas kapasitas untuk grup Linux dengan Login OS
Grup Linux dengan Login OS menggunakan kuota oslogin.googleapis.com/metadata_server_groups_requests
. Secara default, batas kuota adalah 60 permintaan/menit, per project untuk region tertentu.
Jika memerlukan batas kapasitas yang lebih tinggi, Anda dapat meminta kuota tambahan dari halaman Quotas di konsol Google Cloud.
Menggunakan penggabungan identitas tenaga kerja dengan Login OS
Organisasi yang menggunakan federasi identitas tenaga kerja dapat menggunakan Login OS untuk mengelola akses ke VM mereka. Saat penggabungan identitas tenaga kerja diaktifkan untuk suatu organisasi, Login OS akan menggunakan autentikasi berbasis sertifikat, bukan autentikasi berbasis kunci untuk memverifikasi identitas pengguna.
Sebelum memulai
- Buat kumpulan identitas tenaga kerja.
- Siapkan pemetaan atribut
google.posix_username
. Konfigurasikan VM Anda untuk menggunakan Login OS dengan penggabungan identitas tenaga kerja dengan melakukan hal berikut:
Pastikan VM memiliki OpenSSH 7.4 atau yang lebih baru dengan menjalankan perintah berikut di VM:
ssh -V
Batasan
VM yang Anda hubungkan harus memiliki OpenSSH versi 7.4 atau yang lebih baru untuk menggunakan federasi identitas tenaga kerja dengan Login OS.
Pengguna di organisasi yang menggunakan penggabungan identitas tenaga kerja tidak dapat mengakses port serial VM.
Terhubung ke VM yang menggunakan Login OS dan federasi identitas tenaga kerja
Terhubung ke VM yang menggunakan Login OS dengan penggabungan identitas tenaga kerja menggunakan Konsol Google Cloud, gcloud CLI, atau klien SSH lainnya.
Konsol
Saat Anda terhubung ke VM yang menggunakan Login OS dengan penggabungan identitas tenaga kerja menggunakan SSH-in-browser, Compute Engine akan mengonfigurasi sertifikat SSH untuk Anda saat Anda mencoba terhubung.
Untuk terhubung ke VM, lakukan hal berikut:
- Di konsol Google Cloud, buka halaman Instance VM.
- Di daftar instance virtual machine, klik SSH di baris instance yang ingin Anda hubungkan.
gcloud
Saat Anda terhubung ke VM yang menggunakan Login OS dengan penggabungan identitas tenaga kerja menggunakan gcloud CLI, Compute Engine mengonfigurasi sertifikat SSH untuk Anda saat Anda mencoba terhubung.
Terhubung ke VM menggunakan SSH dengan menjalankan perintah gcloud compute ssh
:
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Jalankan perintah berikut:
gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME
Terhubung ke VM dengan menjalankan perintah berikut:
PROJECT_ID
: ID project yang berisi VMZONE
: nama zona tempat VM beradaVM_NAME
: nama VM
Jika telah menetapkan properti default untuk Google Cloud CLI, Anda dapat menghilangkan flag
--project
dan--zone
dari perintah ini. Contoh:gcloud compute ssh VM_NAME
Desktop IAP
Saat Anda terhubung ke VM yang menggunakan Login OS dengan penggabungan identitas tenaga kerja menggunakan IAP Desktop, Compute Engine akan mengonfigurasi sertifikat SSH atas nama Anda saat Anda mencoba untuk terhubung.
Untuk terhubung ke VM menggunakan IAP Desktop, lakukan hal berikut:
-
Instal IAP Desktop di workstation Anda jika belum melakukannya.
-
Buka Desktop IAP. Jendela Tambahkan project akan terbuka.
-
Jika diminta, login dengan gabungan identitas tenaga kerja.
-
Di jendela Add projects, masukkan project ID atau nama project yang berisi VM yang ingin Anda hubungkan.
-
Di jendela Project Explorer, klik kanan lagi nama VM, lalu pilih Connect untuk terhubung ke VM.
klien SSH
Untuk terhubung ke VM yang menggunakan Login OS dengan federasi identitas tenaga kerja menggunakan klien SSH, lakukan tindakan berikut:
- Buat kunci SSH jika Anda belum memilikinya.
Tanda tangani kunci SSH publik Anda menggunakan metode
users.projects.locations.signSshPublicKey
:POST https://oslogin.googleapis.com/v1beta/users/USER/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey { "ssh_public_key": "PUBLIC_KEY" }
Ganti kode berikut:
USER
: satu identitas dalam kumpulan tenaga kerja, dalam format berikut:principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
Ganti kode berikut:
POOL_ID
: kumpulan tenaga kerja yang mencakup pengguna.SUBJECT_ATTRIBUTE_VALUE
: nilai pemetaan atributgoogle.posix_username
pengguna.
PROJECT_ID
: project ID untuk project yang berisi VM yang ingin Anda hubungkan.LOCATION
: zona tempat VM yang ingin Anda hubungkan.PUBLIC_KEY
: konten file kunci publik SSH Anda.
Salin sertifikat SSH dari output metode
user.signSshPublicKey
dan simpan kontennya di file baru.Tetapkan izin pada file sertifikat SSH, dengan menjalankan perintah berikut:
sudo chmod 600 FILE_NAME
Ganti
FILE_NAME
dengan nama file.Hubungkan ke VM menggunakan perintah berikut:
ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
Ganti kode berikut:
PATH_TO_PRIVATE_KEY
: jalur ke file kunci SSH pribadi Anda.PATH_TO_SSH_CERTIFICATE
: jalur ke file sertifikat SSH Anda.USERNAME
: nilai pemetaan atributgoogle.posix_username
pengguna.EXTERNAL_IP
: alamat IP eksternal VM.
Langkah selanjutnya
- Pelajari cara menyiapkan Login OS.
- Pelajari cara menyiapkan Login OS dengan verifikasi 2 langkah.
- Baca ringkasan fitur Login OS.
- Memecahkan masalah Login OS