Gambaran umum keamanan server yang didukung Azure Arc

Artikel ini menjelaskan konfigurasi dan pertimbangan keamanan yang harus Anda evaluasi sebelum menyebarkan server dengan dukungan Azure Arc di perusahaan Anda.

Identitas dan Access Control

Kontrol akses berbasis peran Azure digunakan untuk mengontrol akun mana yang dapat melihat dan mengelola server berkemampuan Azure Arc Anda. Dari halaman Access Control (IAM) di portal Microsoft Azure, Anda dapat memverifikasi siapa yang memiliki akses ke server dengan dukungan Azure Arc Anda.

Azure Arc-enabled server access control

Pengguna dan aplikasi yang diberi akses peran kontributor atau administrator ke sumber daya dapat membuat perubahan pada sumber daya, termasuk menyebarkan atau menghapus ekstensi pada mesin. Ekstensi dapat mencakup skrip arbitrer yang berjalan dalam konteks istimewa, jadi, pertimbangkan kontributor apa pun pada sumber daya Azure untuk menjadi administrator server tidak langsung.

Peran Azure Connected Machine Onboarding tersedia untuk onboarding dalam skala besar, dan hanya dapat membaca atau membuat server baru yang diaktifkan Azure Arc di Azure. Peran ini tidak dapat digunakan untuk menghapus server yang sudah terdaftar atau mengelola ekstensi. Sebagai praktik terbaik, kami sarankan hanya menetapkan peran ini ke perwakilan layanan Microsoft Entra yang digunakan untuk melakukan onboarding komputer dalam skala besar.

Pengguna sebagai anggota peran Administrator Sumber Daya Azure Connected Machine dapat membaca, memodifikasi, melakukan onboard ulang, dan menghapus komputer. Peran ini dirancang untuk mendukung manajemen server dengan yang diaktifkan Azure Arc, tetapi bukan sumber daya lain dalam grup sumber daya atau langganan.

Keamanan dan izin agen

Untuk mengelola agen Azure Connected Machine (azcmagent) di Windows, akun pengguna Anda harus menjadi anggota grup Administrator lokal. Di Linux, Anda harus memiliki izin akses akar.

Azure Connected Machine agent terdiri dari tiga layanan, yang berjalan di komputer Anda.

  • Layanan Hybrid Instance Metadata Service (himds) bertanggung jawab atas semua fungsionalitas inti Arc. Ini termasuk mengirim heartbeat ke Azure, mengekspos layanan metadata instans lokal untuk aplikasi lain guna mempelajari tentang ID sumber daya Azure mesin, dan mengambil token Microsoft Entra untuk mengautentikasi ke layanan Azure lainnya. Layanan ini berjalan sebagai akun layanan virtual yang tidak istimewa (NT SERVICE\himds) di Windows, dan sebagai pengguna himds di Linux. Akun layanan virtual memerlukan Log masuk sebagai Layanan langsung di Windows.

  • Layanan Guest Configuration (GCService) bertanggung jawab untuk mengevaluasi Azure Policy pada komputer.

  • Layanan Ekstensi Konfigurasi Tamu (ExtensionService) bertanggung jawab untuk menginstal, meningkatkan, dan menghapus ekstensi (agen, skrip, atau perangkat lunak lainnya) pada komputer.

Layanan konfigurasi dan ekstensi tamu berjalan sebagai Sistem Lokal di Windows, dan sebagai akar di Linux.

Kontrol keamanan agen lokal

Dimulai dengan agen versi 1.16, Anda dapat secara opsional membatasi ekstensi yang dapat diinstal di server Anda dan menonaktifkan Konfigurasi Tamu. Kontrol ini dapat berguna saat menyambungkan server ke Azure untuk satu tujuan, seperti mengumpulkan log peristiwa, tanpa mengizinkan kemampuan manajemen lain digunakan di server.

Kontrol keamanan ini hanya dapat dikonfigurasi dengan menjalankan perintah di server itu sendiri dan tidak dapat dimodifikasi dari Azure. Pendekatan ini mempertahankan niat admin server saat mengaktifkan skenario manajemen jarak jauh dengan Azure Arc, tetapi juga berarti bahwa mengubah pengaturan lebih sulit jika Anda kemudian memutuskan untuk mengubahnya. Fitur ini ditujukan untuk server sensitif (misalnya, Active Directory Domain Controllers, server yang menangani data pembayaran, dan server tunduk pada langkah-langkah kontrol perubahan yang ketat). Dalam kebanyakan kasus lain, tidak perlu mengubah pengaturan ini.

Daftar izin ekstensi dan daftar blokir

Untuk membatasi ekstensi mana yang dapat diinstal di server Anda, Anda dapat mengonfigurasi daftar ekstensi yang ingin Anda izinkan dan blokir di server. Manajer ekstensi mengevaluasi semua permintaan untuk menginstal, memperbarui, atau meningkatkan ekstensi terhadap daftar yang diizinkan dan daftar blokir untuk menentukan apakah ekstensi dapat diinstal di server. Permintaan penghapusan selalu diizinkan.

Opsi yang paling aman adalah secara eksplisit memungkinkan ekstensi yang Anda harapkan untuk diinstal. Ekstensi apa pun yang tidak ada dalam daftar yang diizinkan diblokir secara otomatis. Untuk mengonfigurasi agen Azure Koneksi ed Machine untuk hanya mengizinkan Agen Azure Monitor untuk Linux, jalankan perintah berikut di setiap server:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Anda dapat memblokir satu atau beberapa ekstensi dengan menambahkannya ke daftar blokir. Jika ekstensi ada dalam daftar yang diizinkan dan daftar blokir, ekstensi akan diblokir. Untuk memblokir ekstensi Skrip Kustom untuk Linux, jalankan perintah berikut:

azcmagent config set extensions.blocklist "Microsoft.Azure.Extensions/CustomScript"

Tentukan ekstensi dengan penerbit dan jenisnya, dipisahkan oleh garis miring /. Lihat daftar ekstensi yang paling umum di dokumen atau cantumkan ekstensi VM yang sudah diinstal di server Anda di portal, Azure PowerShell, atau Azure CLI.

Tabel menjelaskan perilaku saat melakukan operasi ekstensi terhadap agen yang memiliki daftar izin atau daftar blokir yang dikonfigurasi.

Operasi Dalam daftar yang diizinkan Dalam daftar blokir Dalam daftar izin dan daftar blokir Tidak dalam daftar apa pun, tetapi daftar yang diizinkan dikonfigurasi
Menginstal ekstensi Diizinkan Terblokir Terblokir Terblokir
Memperbarui ekstensi (konfigurasi ulang) Diizinkan Terblokir Terblokir Terblokir
Tingkatkan ekstensi Diizinkan Terblokir Terblokir Terblokir
Hapus ekstensi Diizinkan Diizinkan Diizinkan Diizinkan

Penting

Jika ekstensi sudah diinstal di server Anda sebelum Anda mengonfigurasi daftar yang diizinkan atau daftar blokir, ekstensi tidak akan dihapus secara otomatis. Anda bertanggung jawab untuk menghapus ekstensi dari Azure untuk sepenuhnya menghapusnya dari komputer. Permintaan penghapusan selalu diterima untuk mengakomodasi skenario ini. Setelah dihapus, daftar izin dan daftar blokir menentukan apakah akan mengizinkan upaya penginstalan di masa mendatang atau tidak.

Dimulai dengan agen versi 1.35, ada nilai Allow/Nonedaftar izin khusus , yang menginstruksikan manajer ekstensi untuk berjalan, tetapi tidak mengizinkan ekstensi apa pun diinstal. Ini adalah konfigurasi yang direkomendasikan saat menggunakan Azure Arc untuk mengirimkan Pembaruan Keamanan Diperpanjang (ESU) Windows Server 2012 tanpa berniat menggunakan ekstensi lain.

azcmagent config set extensions.allowlist "Allow/None"

Mengaktifkan atau menonaktifkan Konfigurasi Tamu

Fitur Konfigurasi Tamu Azure Policy memungkinkan Anda mengaudit dan mengonfigurasi pengaturan di server Anda dari Azure. Anda dapat menonaktifkan Konfigurasi Tamu agar tidak berjalan di server Jika Anda tidak ingin mengizinkan fungsionalitas ini dengan menjalankan perintah berikut:

azcmagent config set guestconfiguration.enabled false

Saat Konfigurasi Tamu dinonaktifkan, kebijakan Konfigurasi Tamu apa pun yang ditetapkan ke komputer di Azure ditampilkan sebagai tidak patuh. Pertimbangkan untuk membuat pengecualian untuk komputer ini atau mengubah cakupan penetapan kebijakan Anda jika Anda tidak ingin melihat mesin ini dilaporkan sebagai tidak patuh.

Mengaktifkan atau menonaktifkan manajer ekstensi

Manajer ekstensi bertanggung jawab untuk menginstal, memperbarui, dan menghapus Ekstensi VM di server Anda. Anda dapat menonaktifkan manajer ekstensi untuk mencegah pengelolaan ekstensi apa pun di server Anda, tetapi sebaiknya gunakan daftar izinkan dan blokir sebagai gantinya untuk kontrol yang lebih terperinci.

azcmagent config set extensions.enabled false

Menonaktifkan manajer ekstensi tidak akan menghapus ekstensi apa pun yang sudah diinstal di server Anda. Ekstensi yang dihosting di layanan Windows atau Linux mereka sendiri, seperti Agen Analitik Log, mungkin terus berjalan meskipun manajer ekstensi dinonaktifkan. Ekstensi lain yang dihosting oleh manajer ekstensi itu sendiri, seperti Agen Azure Monitor, tidak berjalan jika manger ekstensi dinonaktifkan. Anda harus menghapus ekstensi apa pun sebelum menonaktifkan manajer ekstensi untuk memastikan tidak ada ekstensi yang terus berjalan di server.

Praktik terbaik mesin terkunci

Saat mengonfigurasi agen Azure Koneksi ed Machine dengan serangkaian kemampuan yang berkurang, penting untuk mempertimbangkan mekanisme yang dapat digunakan seseorang untuk menghapus batasan tersebut dan menerapkan kontrol yang sesuai. Siapa pun yang mampu menjalankan perintah sebagai administrator atau pengguna root di server dapat mengubah konfigurasi agen Azure Koneksi ed Machine. Ekstensi dan kebijakan konfigurasi tamu dijalankan dalam konteks istimewa di server Anda, dan dengan demikian mungkin dapat mengubah konfigurasi agen. Jika Anda menerapkan kontrol keamanan agen lokal untuk mengunci agen, Microsoft merekomendasikan praktik terbaik berikut untuk memastikan hanya admin server lokal yang dapat memperbarui konfigurasi agen:

  • Gunakan daftar izin untuk ekstensi alih-alih daftar blokir jika memungkinkan.
  • Jangan sertakan Ekstensi Skrip Kustom dalam daftar yang diizinkan ekstensi untuk mencegah eksekusi skrip arbitrer yang dapat mengubah konfigurasi agen.
  • Nonaktifkan Konfigurasi Tamu untuk mencegah penggunaan kebijakan Konfigurasi Tamu kustom yang dapat mengubah konfigurasi agen.

Contoh konfigurasi untuk skenario pemantauan dan keamanan

Biasanya menggunakan Azure Arc untuk memantau server Anda dengan Azure Monitor dan Microsoft Sentinel dan mengamankannya dengan Microsoft Defender untuk Cloud. Bagian ini berisi contoh cara mengunci agen untuk hanya mendukung skenario pemantauan dan keamanan.

Khusus Agen Azure Monitor

Di server Windows Anda, jalankan perintah berikut di konsol perintah yang ditingkatkan:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Di server Linux Anda, jalankan perintah berikut:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics dan dependensi (Azure Monitor VM Insights) saja

Konfigurasi ini untuk agen Analitik Log warisan dan agen dependensi.

Di server Windows Anda, jalankan perintah berikut di konsol yang ditingkatkan:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Di server Linux Anda, jalankan perintah berikut:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Pemantauan dan keamanan

Microsoft Defender untuk Cloud menyebarkan ekstensi di server Anda untuk mengidentifikasi perangkat lunak yang rentan di server Anda dan mengaktifkan Microsoft Defender untuk Titik Akhir (jika dikonfigurasi). Microsoft Defender untuk Cloud juga menggunakan Konfigurasi Tamu untuk fitur kepatuhan terhadap peraturannya. Karena penetapan Konfigurasi Tamu kustom dapat digunakan untuk membatalkan batasan agen, Anda harus mengevaluasi dengan hati-hati apakah Anda memerlukan fitur kepatuhan peraturan atau tidak dan, akibatnya, Konfigurasi Tamu diaktifkan pada komputer.

Di server Windows Anda, jalankan perintah berikut di konsol perintah yang ditingkatkan:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Di server Linux Anda, jalankan perintah berikut:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Mode agen

Cara yang lebih sederhana untuk mengonfigurasi kontrol keamanan lokal untuk skenario pemantauan dan keamanan adalah dengan menggunakan mode monitor, tersedia dengan agen versi 1.18 dan yang lebih baru. Mode adalah konfigurasi yang telah ditentukan sebelumnya dari daftar izin ekstensi dan agen konfigurasi tamu yang dikelola oleh Microsoft. Saat ekstensi baru tersedia yang memungkinkan skenario pemantauan, Microsoft akan memperbarui daftar izin dan konfigurasi agen untuk menyertakan atau mengecualikan fungsionalitas baru, sebagaimana mewajarkan.

Ada dua mode yang dapat dipilih:

  1. full - mode default. Ini memungkinkan semua fungsionalitas agen.
  2. monitor - mode terbatas yang menonaktifkan agen kebijakan konfigurasi tamu dan hanya memungkinkan penggunaan ekstensi yang terkait dengan pemantauan dan keamanan.

Untuk mengaktifkan mode monitor, jalankan perintah berikut:

azcmagent config set config.mode monitor

Anda dapat memeriksa mode agen saat ini dan ekstensi yang diizinkan dengan perintah berikut:

azcmagent config list

Saat dalam mode pemantauan, Anda tidak dapat mengubah daftar izin ekstensi atau daftar blokir. Jika Anda perlu mengubah salah satu daftar, ubah agen kembali ke mode penuh dan tentukan daftar izin dan daftar blokir Anda sendiri.

Untuk mengubah agen kembali ke mode penuh, jalankan perintah berikut:

azcmagent config set config.mode full

Menggunakan identitas terkelola dengan server berkemampuan Azure Arc

Secara default, identitas yang ditetapkan sistem Microsoft Entra yang digunakan oleh Arc hanya dapat digunakan untuk memperbarui status server dengan dukungan Azure Arc di Azure. Misalnya, status heartbeat terakhir dilihat. Secara opsional, Anda dapat menetapkan peran lain ke identitas jika aplikasi di server Anda menggunakan identitas yang ditetapkan sistem untuk mengakses layanan Azure lainnya. Untuk mempelajari selengkapnya tentang mengonfigurasi identitas terkelola yang ditetapkan sistem untuk mengakses sumber daya Azure, lihat Mengautentikasi terhadap sumber daya Azure dengan server yang diaktifkan Azure Arc.

Meskipun Layanan Metadata Instans Hibrid dapat diakses oleh aplikasi apa pun yang berjalan di komputer, hanya aplikasi resmi yang dapat meminta token Microsoft Entra untuk identitas yang ditetapkan sistem. Pada upaya pertama untuk mengakses URI token, layanan menghasilkan blob kriptografi yang dihasilkan secara acak di lokasi pada sistem file yang hanya dapat dibaca oleh penelepon tepercaya. Pemanggil kemudian harus membaca file (membuktikan memiliki izin yang sesuai) dan mencoba kembali permintaan dengan konten file di header otorisasi agar berhasil mengambil token Microsoft Entra.

  • Di Windows, pemanggil harus menjadi anggota grup Administrator lokal atau grup Hybrid Agent Extension Applications untuk membaca blob.

  • Di Linux, pemanggil harus menjadi anggota grup himds untuk membaca blob.

Untuk mempelajari selengkapnya tentang menggunakan identitas terkelola dengan server yang dilengkapi Arc untuk mengautentikasi dan mengakses sumber daya Azure, lihat video berikut ini.

Menggunakan enkripsi disk

Azure Connected Machine agent menggunakan autentikasi kunci publik untuk berkomunikasi dengan layanan Azure. Setelah Anda melakukan onboarding server ke Azure Arc, kunci privat disimpan ke disk dan digunakan setiap kali agen berkomunikasi dengan Azure. Jika dicuri, kunci privat dapat digunakan di server lain untuk berkomunikasi dengan layanan dan bertindak seolah-olah server tersebut adalah yang asli. Ini termasuk mendapatkan akses ke identitas yang ditetapkan sistem dan sumber daya apa pun yang dapat diakses oleh identitas. File kunci privat dilindungi untuk hanya mengizinkan akses akun himds untuk membacanya. Untuk mencegah serangan offline, sebaiknya gunakan enkripsi disk penuh (misalnya, BitLocker, dm-crypt, dll.) pada volume sistem operasi server Anda.

Langkah berikutnya

  • Sebelum mengevaluasi atau mengaktifkan server yang diaktifkan Azure Arc di beberapa mesin hibrida, tinjau Ringkasan agen Connected Machine untuk memahami persyaratan, detail teknis tentang agen, dan metode penyebaran.

  • Tinjau Panduan Perencanaan dan penyebaran untuk merencanakan penerapan server yang diaktifkan Azure Arc dalam skala apa pun dan terapkan manajemen dan pemantauan terpusat.