Pratinjau: Masuk ke komputer virtual Linux di Azure dengan Direktori Aktif Azure menggunakan autentikasi alur kode perangkat

Perhatian

Fitur pratinjau umum yang dijelaskan dalam artikel ini tidak digunakan lagi pada 15 Agustus, 2021.

Fitur ini digantikan dengan kemampuan untuk menggunakan SSH berbasis Azure AD menggunakan autentikasi berbasis sertifikat openSSH. Fitur ini kini tersedia secara umum! Untuk informasi selengkapnya, lihat artikel, Masuk ke mesin virtual Linux di Azure dengan Azure Active Directory menggunakan autentikasi berbasis sertifikat SSH. Untuk bermigrasi dari versi lama ke versi ini, lihat Migrasi dari versi sebelumnya (pratinjau).

Untuk meningkatkan keamanan komputer virtual Linux (VM) di Azure, Anda dapat berintegrasi dengan autentikasi Direktori Aktif Azure (Azure AD). Saat Anda menggunakan autentikasi Azure AD untuk VM Linux, Anda mengontrol dan menerapkan kebijakan yang mengizinkan atau menolak akses ke VM secara terpusat. Artikel ini menunjukkan kepada Anda cara membuat dan mengonfigurasi VM Linux untuk menggunakan autentikasi Azure AD.

Ada banyak manfaat menggunakan autentikasi Azure AD untuk masuk ke VM Linux di Azure, termasuk:

  • Keamanan yang ditingkatkan:

    • Anda dapat menggunakan kredensial AD perusahaan Anda untuk masuk ke VM Linux Azure. Tidak perlu membuat akun administrator lokal dan mengelola masa pakai kredensial.
    • Dengan mengurangi keterganungan Anda pada akun administrator lokal, Anda tidak perlu khawatir tentang kehilangan/pencurian kredensial, dan pengguna yang mengonfigurasi kredensial yang lemah.
    • Kompleksitas kata sandi dan kebijakan masa pakai kata sandi yang dikonfigurasi untuk direktori Azure AD Anda juga membantu mengamankan VM Linux.
    • Untuk lebih mengamankan masuk ke komputer virtual Azure, Anda dapat mengonfigurasi autentikasi multifaktor.
    • Kemampuan masuk ke VM Linux dengan Direktori Aktif Azure juga berfungsi untuk pelanggan yang menggunakan Layanan Federasi.
  • Kolaborasi yang mulus: Dengan kontrol akses berbasis peran Azure (Azure RBAC), Anda dapat menentukan siapa yang dapat masuk ke VM sebagai pengguna biasa atau dengan hak istimewa administrator. Saat pengguna bergabung atau meninggalkan tim, Anda dapat memperbarui kebijakan Azure RBAC agar VM memberikan akses yang sesuai. Pengalaman ini jauh lebih sederhana daripada harus mengosongkan VM untuk menghapus kunci publik SSH yang tidak perlu. Saat karyawan meninggalkan organisasi Anda dan akun pengguna mereka dinonaktifkan atau dihapus dari Azure AD, mereka tidak lagi memiliki akses ke sumber daya Anda.

Distribusi Linux dan wilayah Azure yang didukung

Distribusi Linux berikut saat ini didukung selama pratinjau fitur ini:

Distribusi Versi
CentOS CentOS 6, CentOS 7
Debian Debian 9
openSUSE openSUSE Leap 42.3
RedHat Enterprise Linux RHEL 6, RHEL 7
Platform SUSE Linux Enterprise Server SLES 12
Ubuntu Server Ubuntu 14.04 LTS, Server Ubuntu 16.04, dan Server Ubuntu 18.04

Penting

Pratinjau tidak didukung di Azure Government atau sovereign cloud.

Tidak didukung untuk menggunakan ekstensi ini pada kluster Azure Kubernetes Service (AKS). Untuk informasi selengkapnya, lihat Kebijakan dukungan AKS.

Jika Anda memilih untuk menginstal dan menggunakan CLI secara lokal, tutorial ini mengharuskan Anda menjalankan Azure CLI versi 2.0.31 atau versi lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Persyaratan jaringan

Untuk mengaktifkan autentikasi Azure AD untuk VM Linux di Azure, Anda harus memastikan konfigurasi jaringan VM Anda mengizinkan akses keluar ke titik akhir berikut melalui port TCP 443:

  • https://login.microsoftonline.com
  • https://login.windows.net
  • https://device.login.microsoftonline.com
  • https://pas.windows.net
  • https://management.azure.com
  • https://packages.microsoft.com

Catatan

Saat ini, grup keamanan jaringan Azure tidak dapat dikonfigurasi untuk VM yang diaktifkan dengan autentikasi Azure AD.

Membuat komputer virtual Linux

Buat grup sumber daya dengan buat grup az, lalu buat VM dengan buat az vm menggunakan distro yang didukung dan di wilayah yang didukung. Contoh berikut menyebarkan VM bernama myVM yang menggunakan Ubuntu 16.04 LTS, ke dalam grup sumber daya bernama myResourceGroup, di wilayah southcentralus. Dalam contoh berikut, Anda dapat menyediakan grup sumber daya dan nama VM Anda sendiri sesuai kebutuhan.

az group create --name myResourceGroup --location southcentralus

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image UbuntuLTS \
    --admin-username azureuser \
    --generate-ssh-keys

Dibutuhkan beberapa menit untuk membuat VM dan sumber daya pendukung.

Instal ekstensi VM masuk Azure AD

Catatan

Jika menyebarkan ekstensi ini ke VM yang dibuat sebelumnya, pastikan komputer memiliki setidaknya 1GB memori yang dialokasikan jika tidak, ekstensi akan gagal diinstal.

Untuk masuk ke VM Linux dengan kredensial Azure AD, instal ekstensi VM masuk Direktori Aktif Azure. Ekstensi VM Azure adalah aplikasi kecil yang menyediakan konfigurasi pasca-penyebaran dan tugas otomatisasi pada komputer virtual Azure. Gunakan az vm extension set untuk menginstal ekstensi AADLoginForLinux pada VM bernama myVM di grup sumber daya myResourceGroup:

az vm extension set \
    --publisher Microsoft.Azure.ActiveDirectory.LinuxSSH \
    --name AADLoginForLinux \
    --resource-group myResourceGroup \
    --vm-name myVM

provisioningStateBerhasil ditampilkan setelah ekstensi berhasil diinstal pada komputer virtual. VM memerlukan agen VM yang sedang berjalan untuk menginstal ekstensi. Untuk informasi selengkapnya, lihat Gambaran Umum Agen VM.

Mengonfigurasi penetapan peran untuk VM

Kebijakan kontrol akses berbasis peran Azure (Azure RBAC) menentukan siapa yang dapat masuk ke VM. Dua peran Azure digunakan untuk mengotorisasi log masuk VM:

  • Upaya masuk Administrator Komputer Virtual: Pengguna yang ditetapkan peran ini dapat masuk ke komputer virtual Azure dengan hak istimewa administrator Windows atau pengguna root Linux.
  • Log Masuk Pengguna Komputer Virtual: Pengguna yang ditetapkan peran ini dapat masuk ke komputer virtual Azure dengan hak istimewa pengguna.

Catatan

Untuk mengizinkan pengguna masuk ke VM melalui SSH, Anda harus menetapkan peran Upaya Masuk Administrator Komputer Virtual atau Upaya Masuk Pengguna Komputer Virtual. Peran Log Masuk Administrator Komputer Virtual dan Log Masuk Pengguna Komputer Virtual menggunakan dataActions sehingga tidak dapat ditetapkan pada lingkup grup manajemen. Saat ini peran tersebut hanya dapat ditetapkan di lingkup langganan, grup sumber daya, atau sumber daya. Pengguna Azure dengan peran Pemilik atau Kontributor yang ditetapkan untuk VM, tidak secara otomatis memiliki hak istimewa untuk masuk ke VM melalui SSH.

Contoh berikut menggunakan az role assignment create untuk menetapkan peran Upaya Masuk Administrator Komputer Virtual ke VM untuk pengguna Azure Anda saat ini. Nama pengguna akun Azure aktif Anda diperoleh dengan az account show, dan cakupannya diatur ke VM yang dibuat pada langkah sebelumnya dengan az vm show. Cakupan juga dapat ditetapkan pada grup sumber daya atau tingkat langganan, dan izin pewarisan RBAC Azure normal berlaku. Untuk mengetahui informasi selengkapnya, lihat Azure RBAC.

username=$(az account show --query user.name --output tsv)
vm=$(az vm show --resource-group myResourceGroup --name myVM --query id -o tsv)

az role assignment create \
    --role "Virtual Machine Administrator Login" \
    --assignee $username \
    --scope $vm

Catatan

Jika domain AAD dan domain nama pengguna masuk Anda tidak cocok, Anda harus menentukan ID objek akun pengguna Anda dengan --assignee-object-id, bukan hanya nama pengguna untuk --assignee. Anda dapat memperoleh ID objek untuk akun pengguna Anda denganaz ad user list.

Untuk informasi selengkapnya tentang cara menggunakan Azure RBAC untuk mengelola akses ke sumber daya langganan Azure Anda, lihat menggunakan Azure CLI, Portal Azure, atau Azure PowerShell.

Menggunakan Akses Bersyarat

Anda dapat menerapkan kebijakan Akses Bersyarat seperti autentikasi multifaktor atau pemeriksaan risiko masuk pengguna sebelum mengotorisasi akses ke VM Linux di Azure yang diaktifkan dengan upaya masuk Azure AD. Untuk menerapkan kebijakan Akses Bersyarat, Anda harus memilih aplikasi "Upaya Masuk Komputer Virtual Linux Microsoft Azure" dari aplikasi cloud atau opsi penetapan tindakan, lalu gunakan risiko Masuk sebagai syarat dan/atau memerlukan autentikasi multifaktor sebagai pemberian kontrol akses.

Peringatan

Per pengguna Mengaktifkan/Memberlakukan Autentikasi Multifaktor Azure AD yang tidak didukung untuk log masuk VM.

Masuk ke komputer virtual Linux

Pertama, lihat alamat IP publik VM Anda dengan az vm show:

az vm show --resource-group myResourceGroup --name myVM -d --query publicIps -o tsv

Masuk ke komputer virtual Linux Azure menggunakan kredensial Azure AD Anda. Parameter -l ini memungkinkan Anda menentukan alamat akun Azure AD Anda sendiri. Ganti akun contoh dengan akun Anda sendiri. Alamat akun harus dimasukkan dalam huruf kecil semua. Ganti alamat IP contoh dengan alamat IP publik VM Anda dari perintah sebelumnya.

ssh -l azureuser@contoso.onmicrosoft.com 10.11.123.456

Anda diminta untuk masuk ke Azure AD dengan kode sekali pakai di https://microsoft.com/devicelogin. Salin dan tempel kode sekali pakai ke halaman masuk perangkat.

Saat diminta, masukkan kredensial masuk Azure AD Anda di halaman masuk.

Pesan berikut ini ditampilkan di browser web saat Anda berhasil diautentikasi: You have signed in to the Microsoft Azure Linux Virtual Machine Sign-In application on your device.

Tutup jendela browser, kembali ke perintah SSH, dan tekan tombol Enter.

Anda sekarang masuk ke komputer virtual Linux Azure dengan izin peran seperti yang ditetapkan, seperti Pengguna VM atau Administrator VM. Jika akun pengguna Anda diberi peran Upaya Masuk Administrator Komputer Virtual, Anda dapat menggunakan sudo untuk menjalankan perintah yang memerlukan hak istimewa root.

Upaya masuk AAD dan Sudo

Pertama kali Anda menjalankan sudo, Anda akan diminta untuk melakukan autentikasi untuk kedua kalinya. Jika Anda tidak ingin harus melakukan autentikasi lagi guna menjalankan sudo, Anda dapat mengedit file sudoers /etc/sudoers.d/aad_admins dan mengganti baris ini:

%aad_admins ALL=(ALL) ALL

Dengan baris ini:

%aad_admins ALL=(ALL) NOPASSWD:ALL

Memecahkan masalah proses masuk

Beberapa kesalahan umum yang terjadi saat Anda mencoba menerapkan SSH dengan kredensial Azure AD termasuk tidak adanya peran Azure yang ditetapkan, dan perintah berulang untuk masuk. Gunakan bagian berikut untuk memperbaiki masalah ini.

Akses ditolak: Peran Azure tidak ditetapkan

Jika Anda melihat kesalahan berikut pada permintaan SSH Anda, verifikasi bahwa Anda telah mengonfigurasi kebijakan Azure RBAC untuk komputer virtual yang memberi pengguna peran Upaya Masuk Administrator Komputer Virtual atau Upaya Masuk Pengguna Komputer Virtual:

login as: azureuser@contoso.onmicrosoft.com
Using keyboard-interactive authentication.
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code FJX327AXD to authenticate. Press ENTER when ready.
Using keyboard-interactive authentication.
Access denied:  to sign-in you be assigned a role with action 'Microsoft.Compute/virtualMachines/login/action', for example 'Virtual Machine User Login'
Access denied

Catatan

Jika Anda mengalami masalah dengan penetapan peran Azure, lihat Memecahkan Masalah Azure RBAC.

Perintah masuk SSH yang dilanjutkan

Jika Anda berhasil menyelesaikan langkah autentikasi di browser web, Anda mungkin segera diminta untuk masuk lagi dengan kode baru. Kesalahan ini biasanya disebabkan oleh ketidakcocokan antara nama masuk yang Anda tentukan di perintah SSH dan akun yang Anda masuki ke Azure AD. Untuk memperbaiki masalah ini:

  • Pastikan nama masuk yang Anda tentukan pada perintah SSH sudah benar. Kesalahan ketik di nama masuk biasanya disebabkan oleh ketidakcocokan antara nama masuk yang Anda tentukan di perintah SSH dan akun yang Anda masuki ke Azure AD. Misalnya, Anda mengetik azuresuer@contoso.onmicrosoft.com alih-alih azureuser@contoso.onmicrosoft.com.
  • Jika Anda memiliki beberapa akun pengguna, pastikan Anda tidak menyediakan akun pengguna lain di jendela browser saat masuk ke Azure AD.
  • Linux adalah sistem operasi yang sensitif terhadap huruf besar/kecil. Ada perbedaan antara 'Azureuser@contoso.onmicrosoft.com' dan 'azureuser@contoso.onmicrosoft.com', yang dapat menyebabkan ketidakcocokan. Pastikan Anda menentukan UPN dengan sensitivitas huruf besar/kecil yang benar pada perintah SSH.

Batasan lainnya

Pengguna yang mewarisi hak akses melalui grup bertumpuk atau penetapan peran saat ini tidak didukung. Pengguna atau grup harus secara langsung diberi penetapan peran yang diperlukan. Misalnya, penggunaan grup manajemen atau penetapan peran grup bertumpuk tidak akan memberikan izin yang benar guna mengizinkan pengguna masuk.

Pratinjau umpan balik

Bagikan umpan balik Anda tentang fitur pratinjau ini atau laporkan masalah menggunakannya di forum umpan balik Azure AD.

Langkah berikutnya

Untuk informasi selengkapnya tentang Azure Active Directory, lihat Apa itu Azure Active Directory.