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

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    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. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.

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 1
  • 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 tidak dapat menetapkan kunci SSH untuk instance di organisasi 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 gmail.com Google konsumen.

Peran IAM roles/compute.osLoginExternalUser memungkinkan Akun Google eksternal berinteraksi dengan peran Login OS lainnya dengan memungkinkannya mengonfigurasi informasi akun POSIX.

Untuk memberikan roles/compute.osLoginExternalUser dan peran akses instance Login OS lainnya yang diperlukan kepada pengguna di luar organisasi Anda, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman IAM & Admin.

    Buka IAM & Admin

  2. Klik menu drop-down Select a project. Pada dialog Select a resource yang muncul, pilih organisasi Anda dengan melakukan hal berikut:
    1. Klik menu drop-down organisasi untuk melihat semua organisasi Anda.
    2. Pilih organisasi Anda dari menu drop-down.
  3. Klik Berikan akses untuk menambahkan peran baru kepada pengguna.
  4. Di kolom New principals, tambahkan alamat email untuk pengguna yang akses instance-nya ingin Anda konfigurasikan.
  5. Dari menu drop-down Role, pilih peran Compute OS Login External User.
  6. Klik Simpan.
  7. 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 (Tidak digunakan lagi)

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.

Menghapus konfigurasi grup POSIX

Dukungan grup POSIX Login OS tidak digunakan lagi. Sebaiknya hapus konfigurasi grup Login OS POSIX.

Anda harus menjadi administrator organisasi untuk menghapus konfigurasi grup POSIX Login OS.

  1. Jika Anda tidak mengetahui ID fasilitas organisasi, dapatkan ID fasilitas organisasi.
  2. Mencantumkan semua grup POSIX di organisasi Anda. Catat alamat email setiap grup.
  3. Untuk setiap grup POSIX di organisasi Anda, lakukan hal berikut:
    1. Ambil informasi grup. Perhatikan posixGroups.gid.
    2. Hapus grup POSIX.
  4. Secara opsional, pastikan semua grup telah dihapus dengan mencantumkan semua grup POSIX di organisasi Anda. Jika semua grup berhasil dihapus, respons akan kosong.

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 Kuota

Menggunakan workforce identity federation dengan Login OS

Organisasi yang menggunakan workforce identity federation dapat menggunakan Login OS untuk mengelola akses ke VM mereka. Jika federasi identitas tenaga kerja diaktifkan untuk organisasi, OS Login 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 workforce identity federation tidak dapat mengakses port serial VM.

Menghubungkan ke VM yang menggunakan Login OS dan federasi identitas tenaga kerja

Menghubungkan ke VM yang menggunakan Login OS dengan federasi identitas tenaga kerja menggunakan konsol Google Cloud, gcloud CLI, atau klien SSH lainnya.

Konsol

Saat Anda terhubung ke VM yang menggunakan Login OS dengan federasi identitas tenaga kerja menggunakan SSH di browser, Compute Engine akan mengonfigurasi sertifikat SSH untuk Anda saat Anda mencoba terhubung.

Untuk terhubung ke VM, lakukan hal berikut:

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

    SSH button next to instance name.

gcloud

Saat Anda terhubung ke VM yang menggunakan Login OS dengan federasi identitas tenaga kerja menggunakan gcloud CLI, Compute Engine akan mengonfigurasi sertifikat SSH untuk Anda saat Anda mencoba terhubung.

Terhubung ke VM menggunakan SSH dengan menjalankan perintah gcloud beta compute ssh:

  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. Jalankan perintah berikut:

    gcloud beta compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Ganti kode 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 federasi identitas tenaga kerja menggunakan IAP Desktop, Compute Engine akan mengonfigurasi sertifikat SSH untuk Anda saat Anda mencoba terhubung.

Untuk terhubung ke VM menggunakan Desktop IAP, lakukan langkah berikut:

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

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

  3. Jika diminta, login dengan workforce identity federation.

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

  5. Di jendela Project Explorer, klik kanan nama VM lagi, 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 hal 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 identitas 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 project yang berisi VM yang ingin Anda hubungkan.

    • LOCATION: zona tempat VM yang ingin Anda hubungkan berada.

    • PUBLIC_KEY: konten file kunci publik SSH Anda.

  3. Salin sertifikat SSH dari output metode user.signSshPublicKey dan simpan kontennya dalam 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