Mengelola Login OS dalam organisasi


Dokumen ini menjelaskan cara menggunakan Login OS untuk mengelola akses ke instance VM di seluruh organisasi Anda.

Topik ini membahas tugas-tugas berikut:

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

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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 ke false 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:

  1. Di konsol Google Cloud, buka halaman Organization policies.

    Buka halaman Organization policies

  2. Dalam daftar kebijakan, klik Require OS Login untuk melihat batasan Login OS.
  3. Klik Edit untuk mengedit batasan Login OS yang sudah ada.
  4. Pada halaman Edit, pilih Customize.
  5. Untuk mengaktifkan penerapan batasan ini, pilih On.
  6. Klik Save untuk menerapkan setelan batasan.

gcloud

Untuk menetapkan kebijakan organisasi Login OS, gunakan perintah gcloud beta resource-manager org-policies enable-enforce.

  1. Temukan ID organisasi Anda.

    gcloud organizations list
  2. 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:

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:

  1. Di konsol Google Cloud, buka halaman pemilihan project dan organisasi.

    Buka halaman pemilihan project dan organisasi

  2. Di menu drop-down Organization, pilih organisasi Anda.
    1. Klik All, untuk melihat semua organisasi Anda.
    2. Klik nama organisasi.
  3. Klik Add untuk menambahkan peran baru kepada pengguna.
  4. Tentukan nama pengguna untuk pengguna yang ingin Anda konfigurasi akses instance-nya.
  5. Klik Select a role untuk menentukan peran yang ingin Anda berikan kepada pengguna.
  6. Dalam daftar peran Compute Engine, pilih peran Compute OS Login External User.
  7. Klik Add untuk mengonfirmasi bahwa Anda ingin memberikan peran yang dipilih kepada pengguna.
  8. 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, pengguna user@example.com akan memiliki nama pengguna user 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 antara 1001 dan 60000, atau nilai antara 65535 dan 2147483647. Untuk mengakses container-optimized OS, UID harus memiliki nilai antara 65536 dan 214748646. 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.

Buka Quotas

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

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:

  1. Di konsol Google Cloud, buka halaman Instance VM.

    Buka VM instances

  2. Di daftar instance virtual machine, klik SSH di baris instance yang ingin Anda hubungkan.

    Tombol SSH di samping nama instance.

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:

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    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.

  2. 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 VM
    • ZONE: nama zona tempat VM berada
    • VM_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:

  1. Instal IAP Desktop di workstation Anda jika belum melakukannya.

  2. Buka Desktop IAP. Jendela Tambahkan project akan terbuka.

  3. Jika diminta, login dengan gabungan identitas tenaga kerja.

  4. Di jendela Add projects, masukkan project ID atau nama project yang berisi VM yang ingin Anda hubungkan.

  5. 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:

  1. Buat kunci SSH jika Anda belum memilikinya.
  2. 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:

    • 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.

  3. Salin sertifikat SSH dari output metode user.signSshPublicKey dan simpan kontennya di file baru.

  4. Tetapkan izin pada file sertifikat SSH, dengan menjalankan perintah berikut:

    sudo chmod 600 FILE_NAME
    

    Ganti FILE_NAME dengan nama file.

  5. 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 atribut google.posix_username pengguna.
    • EXTERNAL_IP: alamat IP eksternal VM.

Langkah selanjutnya