Pertimbangan keamanan untuk SQL Server di Microsoft Azure Virtual Machines

Berlaku untuk:SQL Server di Azure VM

Artikel ini mencakup panduan keamanan keseluruhan yang membantu membangun akses aman ke instans SQL Server di komputer virtual (VM) Azure.

Azure mematuhi beberapa peraturan dan standar industri yang dapat memungkinkan Anda untuk membangun solusi yang sesuai dengan SQL Server yang berjalan di komputer virtual. Untuk informasi tentang kepatuhan terhadap peraturan dengan Azure, lihat Pusat Kepercayaan Azure.

Pertama-tama, tinjau praktik terbaik keamanan untuk VM SQL Server dan Azure, kemudian tinjau artikel ini untuk praktik terbaik yang berlaku untuk SQL Server pada VM Azure secara khusus.

Untuk mempelajari selengkapnya tentang praktik terbaik VM SQL Server, lihat artikel lain dalam seri ini: Daftar periksa, Ukuran VM, Konfigurasi HADR, dan Kumpulan garis besar.

Daftar periksa

Tinjau daftar periksa berikut dalam bagian ini untuk ringkasan singkat tentang praktik terbaik yang dibahas pada bagian lain artikel secara lebih mendetail.

Fitur dan kemampuan SQL Server menyediakan metode keamanan pada tingkat data dan bagaimana Anda mencapai pertahanan secara mendalam di tingkat infrastruktur untuk solusi berbasis cloud dan hibrid. Selain itu, dengan langkah-langkah keamanan Azure, dimungkinkan untuk mengenkripsi data sensitif Anda, melindungi mesin virtual dari virus dan malware, mengamankan lalu lintas jaringan, mengidentifikasi dan mendeteksi ancaman, memenuhi persyaratan kepatuhan, dan menyediakan satu metode untuk administrasi dan pelaporan untuk kebutuhan keamanan apa pun di cloud hibrid.

  • Gunakan Microsoft Defender untuk Cloud untuk mengevaluasi dan mengambil tindakan untuk meningkatkan postur keamanan lingkungan data Anda. Kemampuan seperti Azure Advanced Threat Protection (ATP) dapat dimanfaatkan di seluruh beban kerja hibrid Anda untuk menyempurnakan evaluasi keamanan serta memberikan kemampuan untuk bereaksi terhadap risiko. Mendaftarkan komputer virtual SQL Server Anda dengan ekstensi SQL IaaS Agent muncul Microsoft Defender untuk Cloud penilaian dalam sumber daya komputer virtual SQL dari portal Azure.
  • Gunakan Pertahanan Microsoft untuk SQL untuk menemukan dan mengurangi potensi kerentanan database, serta mendeteksi aktivitas anomali yang dapat menunjukkan ancaman terhadap instans dan lapisan database SQL Server Anda.
  • Penilaian Kerentanan adalah bagian dari Pertahanan Microsoft untuk SQL yang dapat menemukan dan membantu memulihkan potensi risiko terhadap lingkungan SQL Server Anda. Penilaian ini memberikan visibilitas ke dalam status keamanan Anda, dan menyertakan langkah yang dapat ditindaklanjuti untuk mengatasi masalah keamanan.
  • Gunakan VM rahasia Azure untuk memperkuat perlindungan data Anda yang sedang digunakan, dan data tidak aktif terhadap akses operator host. VM rahasia Azure memungkinkan Anda menyimpan data sensitif Anda dengan percaya diri di cloud dan memenuhi persyaratan kepatuhan yang ketat.
  • Jika Anda menggunakan SQL Server 2022, pertimbangkan untuk menggunakan autentikasi Microsoft Entra untuk menyambungkan ke instans SQL Server Anda.
  • Azure Advisor menganalisis konfigurasi sumber daya dan telemetri penggunaan Anda, lalu merekomendasikan solusi yang dapat membantu Anda meningkatkan efektivitas biaya, performa, ketersediaan, dan keamanan sumber daya Azure Anda. Manfaatkan Azure Advisor di tingkat mesin virtual, grup sumber daya, atau langganan untuk membantu mengidentifikasi dan menerapkan praktik terbaik untuk mengoptimalkan penyebaran Azure Anda.
  • Gunakan Azure Disk Encryption ketika kebutuhan kepatuhan dan keamanan mengharuskan Anda mengenkripsi data secara menyeluruh menggunakan kunci enkripsi Anda, termasuk enkripsi disk ephemeral (terlampir secara lokal untuk sementara).
  • Disk Terkelola dienkripsi saat tidak aktif secara default menggunakan Enkripsi Layanan Azure Storage, di mana kunci enkripsinya adalah kunci yang dikelola Microsoft di Azure.
  • Untuk perbandingan opsi enkripsi disk terkelola, tinjau bagan perbandingan enkripsi disk terkelola
  • Port manajemen harus ditutup pada mesin virtual Anda - Port manajemen jarak jauh yang terbuka akan mengekspos VM Anda ke tingkat risiko yang tinggi dari serangan berbasis internet. Serangan ini mencoba untuk memaksa info masuk guna mendapatkan akses admin ke komputer.
  • Aktifkan akses Just-in-time (JIT) untuk mesin virtual Azure
  • Gunakan Azure Bastion pada Protokol Desktop Jarak Jauh (RDP).
  • Kunci port dan hanya izinkan lalu lintas aplikasi yang diperlukan menggunakan Azure Firewall yang merupakan Firewall sebagai Layanan (FaaS) terkelola yang memberikan/menolak akses server berdasarkan alamat IP asal.
  • Gunakan Grup Keamanan Jaringan (NSG) untuk memfilter lalu lintas jaringan menuju dan dari sumber daya Azure di Azure Virtual Network
  • Manfaatkan Grup Keamanan Aplikasi untuk server grup bersama dengan persyaratan pemfilteran port yang serupa, dengan fungsi serupa, seperti server web dan server database.
  • Untuk server web dan aplikasi, manfaatkan perlindungan Azure Distributed Denial of Service (DDoS). Serangan DDoS dirancang untuk membanjiri dan menguras sumber daya jaringan, membuat aplikasi menjadi lambat atau tidak responsif. Serangan DDos yang menargetkan antarmuka pengguna merupakan hal yang umum terjadi. Perlindungan Azure DDoS membersihkan lalu lintas jaringan yang tidak diinginkan, sebelum memengaruhi ketersediaan layanan
  • Gunakan ekstensi VM untuk membantu mengatasi anti-malware, status yang diinginkan, deteksi ancaman, pencegahan, dan remediasi untuk mengatasi ancaman di tingkat sistem operasi, mesin, dan jaringan:
  • Gunakan Azure Policy untuk membuat aturan bisnis yang dapat diterapkan ke lingkungan Anda. Azure Policies mengevaluasi sumber daya Azure dengan membandingkan properti sumber daya tersebut dengan aturan yang ditentukan dalam format JSON.
  • Azure Blueprints memungkinkan arsitek cloud dan grup teknologi informasi pusat untuk menentukan kumpulan sumber daya Azure yang dapat diulang yang menerapkan dan mematuhi standar, pola, dan persyaratan organisasi. Azure Blueprints berbeda dengan Azure Policy.

Untuk informasi selengkapnya tentang praktik terbaik keamanan, lihat Praktik terbaik keamanan SQL Server dan Mengamankan SQL Server.

Pertahanan Microsoft untuk SQL pada komputer

Microsoft Defender untuk Cloud adalah sistem manajemen keamanan terpadu yang dirancang untuk mengevaluasi dan memberikan peluang untuk meningkatkan postur keamanan lingkungan data Anda. Pertahanan Microsoft menawarkan Microsoft Defender untuk SQL pada perlindungan komputer untuk SQL Server di Azure VM. Gunakan Pertahanan Microsoft untuk SQL untuk menemukan dan mengurangi potensi kerentanan database, dan mendeteksi aktivitas anomali yang dapat menunjukkan ancaman terhadap instans dan lapisan database SQL Server Anda.

Pertahanan Microsoft untuk SQL menawarkan manfaat berikut:

  • Penilaian Kerentanan dapat menemukan dan membantu memulihkan potensi risiko pada lingkungan SQL Server Anda. Penilaian ini memberikan visibilitas ke dalam status keamanan Anda, dan menyertakan langkah yang dapat ditindaklanjuti untuk mengatasi masalah keamanan.
  • Gunakan skor keamanan di Microsoft Defender untuk Cloud.
  • Tinjau daftar rekomendasi komputasi dan data yang tersedia saat ini untuk mengetahui detail lebih lanjut.
  • Mendaftarkan VM SQL Server Anda dengan Ekstensi Agen IaaS SQL Server akan menampilkan rekomendasi Pertahanan Microsoft untuk SQL untuk sumber daya mesin virtual SQL di portal Azure.

Manajemen portal

Setelah mendaftarkan komputer virtual SQL Server Anda dengan ekstensi SQL IaaS Agent, Anda dapat mengonfigurasi sejumlah pengaturan keamanan menggunakan sumber daya komputer virtual SQL di portal Azure, seperti mengaktifkan integrasi Azure Key Vault, atau autentikasi SQL.

Selain itu, setelah mengaktifkan Microsoft Defender untuk SQL pada komputer, Anda dapat melihat fitur Defender untuk Cloud langsung dalam sumber daya komputer virtual SQL di portal Azure, seperti penilaian kerentanan dan pemberitahuan keamanan.

Lihat mengelola mesin virtual SQL Server di portal untuk mempelajari lebih lanjut.

Mesin virtual rahasia

VM rahasia Azure menyediakan batas yang kuat dan diberlakukan perangkat keras yang memperkuat perlindungan OS tamu terhadap akses operator host. Memilih ukuran VM rahasia untuk SQL Server Anda di Azure VM memberikan lapisan perlindungan ekstra, memungkinkan Anda menyimpan data sensitif Anda dengan percaya diri di cloud dan memenuhi persyaratan kepatuhan yang ketat.

VM rahasia Azure memanfaatkan prosesor AMD dengan teknologi SEV-SNP yang mengenkripsi memori VM menggunakan kunci yang dihasilkan oleh prosesor. Ini membantu melindungi data saat sedang digunakan (data yang diproses di dalam memori proses SQL Server) dari akses tidak sah dari OS host. Disk OS komputer virtual rahasia juga dapat dienkripsi dengan kunci yang terikat ke chip Trusted Platform Module (TPM) komputer virtual, yang menguatkan perlindungan untuk data tidak aktif.

Untuk langkah-langkah penyebaran terperinci, lihat Mulai Cepat: Menyebarkan SQL Server ke VM rahasia.

Rekomendasi untuk enkripsi disk berbeda untuk VM rahasia daripada untuk ukuran VM lainnya. Lihat enkripsi disk untuk mempelajari lebih lanjut.

Autentikasi Microsoft Entra

Dimulai dengan SQL Server 2022, Anda dapat tersambung ke SQL Server menggunakan salah satu metode autentikasi berikut dengan ID Microsoft Entra (sebelumnya Azure Active Directory):

  • Kata sandi menawarkan autentikasi dengan kredensial Microsoft Entra
  • Universal dengan MFA menambahkan autentikasi multifaktor
  • Terintegrasi menggunakan penyedia federasi seperti Layanan Federasi Direktori Aktif (ADFS) untuk mengaktifkan pengalaman akses menyeluruh (SSO)
  • Perwakilan Layanan memungkinkan autentikasi dari aplikasi Azure
  • Identitas Terkelola memungkinkan autentikasi dari aplikasi yang ditetapkan identitas Microsoft Entra

Untuk memulai, tinjau Mengonfigurasi autentikasi Microsoft Entra untuk komputer virtual SQL Server Anda.

Azure Advisor

Azure Advisor adalah konsultan cloud yang dipersonalisasi yang membantu Anda mengikuti cara terbaik untuk mengoptimalkan pengoperasian Azure Anda. Azure Advisor menganalisis konfigurasi sumber daya dan telemetri penggunaan Anda, lalu merekomendasikan solusi yang dapat membantu Anda meningkatkan efektivitas biaya, performa, ketersediaan, dan keamanan sumber daya Azure Anda. Azure Advisor dapat mengevaluasi pada tingkat mesin virtual, grup sumber daya, atau langganan.

Integrasi Azure Key Vault

Ada beberapa fitur enkripsi SQL Server, seperti enkripsi data transparan (TDE), enkripsi tingkat kolom (CLE), dan enkripsi cadangan. Bentuk enkripsi ini mengharuskan Anda untuk mengelola dan menyimpan kunci kriptografi yang Anda gunakan untuk enkripsi. Layanan Azure Key Vault dirancang untuk meningkatkan keamanan dan manajemen kunci ini di lokasi yang aman dan sangat tersedia. SQL Server Connector memungkinkan SQL Server untuk menggunakan kunci ini dari Azure Key Vault.

Pertimbangkan hal berikut:

  • Azure Key Vault menyimpan rahasia aplikasi di lokasi cloud terpusat untuk mengontrol izin akses dengan aman, dan pengelogan akses terpisah.
  • Saat membawa kunci Anda sendiri ke Azure, disarankan untuk menyimpan rahasia dan sertifikat di Azure Key Vault.
  • Azure Disk Encryption menggunakan Azure Key Vault untuk mengontrol dan mengelola kunci dan rahasia enkripsi disk.

Kontrol akses

Ketika Anda membuat komputer virtual SQL Server dengan sebuah gambar galeri Azure, opsi Konektivitas SQL Server memberi Anda pilihan Lokal (di dalam komputer virtual), Privat (dalam Virtual Network), atau Publik (Internet).

Diagram showing SQL Server connectivity.

Untuk keamanan terbaik, pilih opsi yang paling ketat untuk skenario Anda. Misalnya, jika Anda menjalankan sebuah aplikasi yang mengakses SQL Server pada komputer virtual yang sama, maka Lokal adalah pilihan yang paling aman. Jika Anda menjalankan sebuah aplikasi Azure yang memerlukan akses ke SQL Server, maka Privat mengamankan komunikasi ke SQL Server hanya dalam jaringan virtual Azure yang ditentukan. Jika Anda memerlukan akses (internet) Publik ke komputer virtual SQL Server, maka pastikan untuk mengikuti praktik terbaik lainnya dalam topik ini untuk mengurangi area permukaan serangan Anda.

Opsi yang dipilih di portal menggunakan aturan keamanan masuk pada grup keamanan jaringan (NSG) komputer virtual untuk mengizinkan atau menolak lalu lintas jaringan ke komputer virtual Anda. Anda dapat memodifikasi atau membuat aturan NSG masuk baru untuk mengizinkan lalu lintas ke port SQL Server (default 1433). Anda juga dapat menentukan alamat IP tertentu yang diizinkan untuk berkomunikasi melalui port ini.

Diagram showing network security group rules.

Selain aturan NSG untuk membatasi lalu lintas jaringan, Anda juga dapat menggunakan Windows Firewall pada komputer virtual.

Jika Anda menggunakan titik akhir dengan model penyebaran klasik, hapus titik akhir apa pun di komputer virtualnya jika Anda tidak menggunakannya. Untuk instruksi tentang cara menggunakan ACL dengan titik akhir, lihat Mengelola ACL di titik akhir. Ini tidak diperlukan untuk komputer virtual yang menggunakan Azure Resource Manager.

Pertimbangkan untuk mengaktifkan koneksi terenkripsi untuk instans SQL Server Database Engine di mesin virtual Azure Anda. Konfigurasikan instans SQL Server dengan sertifikat yang ditandatangani. Untuk informasi selengkapnya, lihat Mengaktifkan Koneksi Terenkripsi ke Mesin Database dan Sintaks String Koneksi.

Pertimbangkan hal berikut saat mengamankan konektivitas atau perimeter jaringan:

  • Azure Firewall - Firewall as a Service (FaaS) yang stateful, terkelola, yang memberikan/menolak akses server berdasarkan alamat IP asal, untuk melindungi sumber daya jaringan.
  • Perlindungan Azure Distributed Denial of Service (DDoS) - Serangan DDoS membanjiri dan menguras sumber daya jaringan, sehingga membuat aplikasi menjadi lambat atau tidak responsif. Perlindungan Azure DDoS membersihkan lalu lintas jaringan yang tidak diinginkan, sebelum memengaruhi ketersediaan layanan.
  • Grup Keamanan Jaringan (NSG) - Memfilter lalu lintas jaringan menuju dan dari sumber daya Azure di Azure Virtual Network
  • Grup Keamanan Aplikasi - Menyediakan pengelompokan server dengan persyaratan penyaringan port serupa, dan mengelompokkan server bersama dengan fungsi serupa, seperti server web.

Enkripsi disk

Bagian ini menyediakan panduan untuk enkripsi disk, tetapi rekomendasinya bervariasi tergantung pada apakah Anda menyebarkan SQL Server konvensional di Azure VM, atau SQL Server ke VM rahasia Azure.

VM konvensional

Disk terkelola yang disebarkan ke VM yang bukan VM rahasia Azure menggunakan enkripsi sisi server, dan Azure Disk Encryption. Enkripsi pada sisi server menyediakan enkripsi saat tidak aktif dan melindungi data Anda untuk memenuhi komitmen keamanan dan kepatuhan organisasi Anda. Azure Disk Encryption menggunakan teknologi BitLocker atau DM-Crypt, dan terintegrasi dengan Azure Key Vault untuk mengenkripsi OS dan disk data.

Pertimbangkan hal berikut:

  • Azure Disk Encryption - Enkripsi disk mesin virtual Anda menggunakan Azure Disk Encryption untuk mesin virtual Windows dan Linux.
    • Ketika persyaratan kepatuhan dan keamanan mengharuskan Anda mengenkripsi data secara menyeluruh menggunakan kunci enkripsi Anda, termasuk enkripsi disk sementara (terpasang secara lokal untuk sementara), menggunakan enkripsi disk Azure.
    • Azure Disk Encryption (ADE) memanfaatkan fitur BitLocker standar industri Windows dan fitur DM-Crypt Linux untuk menyediakan enkripsi volume untuk OS dan disk data.
  • Enkripsi Disk Terkelola
    • Disk Terkelola dienkripsi saat tidak aktif secara default menggunakan Enkripsi Layanan Azure Storage, di mana kunci enkripsinya adalah kunci yang dikelola Microsoft di Azure.
    • Data di disk yang dikelola Azure dienkripsi secara transparan menggunakan enkripsi AES 256-bit, salah satu cipher blok terkuat yang tersedia, dan sesuai dengan FIPS 140-2.
  • Untuk perbandingan opsi enkripsi disk terkelola, tinjau bagan perbandingan enkripsi disk terkelola.

VM rahasia Azure

Jika Anda menggunakan Azure Confidential VM, pertimbangkan rekomendasi berikut untuk memaksimalkan manfaat keamanan:

  • Konfigurasikan enkripsi disk OS rahasia, yang mengikat kunci enkripsi disk OS ke chip Trusted Platform Module (TPM) komputer virtual, dan membuat konten disk yang dilindungi hanya dapat diakses oleh VM.
  • Enkripsi disk data Anda (disk apa pun yang berisi file database, file log, atau file cadangan) dengan BitLocker, dan aktifkan pembukaan kunci otomatis - tinjau kelola-bde autounlock atau EnableBitLockerAutoUnlock untuk informasi selengkapnya. Pembukaan kunci otomatis memastikan kunci enkripsi disimpan pada disk OS. Bersama dengan enkripsi disk OS rahasia, ini melindungi data tidak aktif yang disimpan ke disk VM dari akses host yang tidak sah.

Peluncuran Tepercaya

Saat Anda menyebarkan komputer virtual generasi 2 , Anda memiliki opsi untuk mengaktifkan peluncuran tepercaya, yang melindungi dari teknik serangan tingkat lanjut dan persisten.

Dengan peluncuran tepercaya, Anda dapat:

  • Terapkan komputer virtual dengan aman dengan pemuat boot terverifikasi, kernel OS, dan driver.
  • Lindungi kunci, sertifikat, dan rahasia dengan aman di komputer virtual.
  • Dapatkan wawasan dan kepercayaan diri dari seluruh integritas rantai boot.
  • Pastikan beban kerja tepercaya dan dapat diverifikasi.

Fitur berikut saat ini tidak didukung saat Anda mengaktifkan peluncuran tepercaya untuk SQL Server Anda di Azure VM:

  • Azure Site Recovery
  • Disk ultra
  • Gambar terkelola
  • Virtualisasi berlapis

Mengelola akun

Anda tidak ingin penyerang dengan mudah menebak nama akun atau kata sandinya. Gunakan tips berikut untuk membantu Anda:

  • Buat akun administrator lokal unik yang tidak bernama Admin.

  • Gunakan kata sandi kuat yang kompleks untuk semua akun Anda. Untuk informasi selengkapnya tentang cara membuat kata sandi yang kuat, lihat artikel Membuat kata sandi yang kuat.

  • Secara default, Azure memilih Autentikasi Windows selama penyiapan komputer virtual SQL Server. Oleh karena itu, login SA dinonaktifkan dan kata sandi ditetapkan oleh penyiapan. Kami menyarankan bahwa login SA agar tidak boleh digunakan atau diaktifkan. Jika Anda harus memiliki login SQL, gunakan salah satu strategi berikut:

    • Buat akun SQL dengan nama unik yang memiliki sysadmin pada bagian keanggotaannya. Anda dapat melakukan ini dari portal dengan mengaktifkan Autentikasi SQL selama provisi.

      Tip

      Jika Anda tidak mengaktifkan Autentikasi SQL selama provisi, Anda harus mengubah mode autentikasi secara manual ke SQL Server dan Mode Autentikasi Windows. Untuk informasi selengkapnya, lihat Mengubah Mode Autentikasi Server.

    • Jika Anda harus menggunakan login SA, aktifkan loginnya setelah provisi dan tetapkan kata sandi baru yang kuat.

Catatan

Koneksi ke komputer virtual SQL Server menggunakan Microsoft Entra Domain Services tidak didukung - gunakan akun domain Direktori Aktif sebagai gantinya.

Audit dan pelaporan

Audit dengan peristiwa dokumen Log Analytics dan menulis ke log audit di akun Azure Blob Storage yang aman. Log Analytics dapat digunakan untuk menafsirkan detail log audit. Audit memberi Anda kemampuan untuk menyimpan data ke akun penyimpanan terpisah dan membuat jejak audit dari semua peristiwa pilihan Anda. Anda juga dapat memanfaatkan Power BI terhadap log audit untuk analitik cepat dan wawasan tentang data Anda, serta untuk memberikan pandangan terhadap kepatuhan terhadap peraturan. Untuk mempelajari selengkapnya tentang pengauditan di tingkat VM dan Azure, lihat Pencatatan dan audit keamanan Azure.

Akses tingkat Mesin Virtual

Tutup port manajemen pada mesin Anda - Port manajemen jarak jauh yang terbuka membuat VM Anda berisiko tinggi terhadap serangan berbasis internet. Serangan ini mencoba untuk memaksa info masuk guna mendapatkan akses admin ke komputer.

Ekstensi Komputer Virtual

Ekstensi Azure Virtual Machine adalah ekstensi Microsoft atau pihak ke-3 tepercaya yang dapat membantu mengatasi kebutuhan dan risiko tertentu seperti antivirus, malware, perlindungan ancaman, dan banyak lagi.

  • Ekstensi Konfigurasi Tamu
    • Untuk memastikan konfigurasi yang aman dari pengaturan in-guest mesin Anda, instal ekstensi Guest Configuration.
    • Pengaturan tamu mencakup konfigurasi sistem operasi, konfigurasi atau keberadaan aplikasi, dan pengaturan lingkungan.
    • Setelah diinstal, kebijakan tamu akan tersedia seperti 'Windows Exploit guard harus diaktifkan'.
  • Agen pengumpulan data lalu lintas jaringan
    • Microsoft Defender untuk Cloud menggunakan agen Dependensi Microsoft untuk mengumpulkan data lalu lintas jaringan dari komputer virtual Azure Anda.
    • Agen ini mengaktifkan fitur perlindungan jaringan, seperti visualisasi lalu lintas pada peta jaringan, rekomendasi pengerasan jaringan, dan ancaman jaringan yang spesifik.
  • Evaluasi ekstensidari Microsoft dan pihak ketiga untuk mengatasi anti-malware, status yang diinginkan, deteksi ancaman, pencegahan, dan remediasi untuk mengatasi ancaman pada tingkat sistem operasi, mesin, dan jaringan.

Langkah berikutnya

Tinjau praktik terbaik keamanan untuk VM SQL Server dan Azure, kemudian tinjau artikel ini untuk praktik terbaik yang berlaku untuk SQL Server pada VM Azure secara khusus.

Untuk topik lain yang terkait dengan menjalankan SQL Server di komputer virtual Azure, lihat ringkasan SQL Server di Microsoft Azure Virtual Machines. Jika Anda mempunyai pertanyaan tentang komputer virtual SQL Server, lihat Tanya Jawab Umum.

Untuk mempelajari selengkapnya, lihat artikel lain dalam seri praktik terbaik ini: