Zona pendaratan Azure - Pertimbangan desain modul Terraform

Artikel ini membahas area penting yang perlu dipertimbangkan saat menggunakan modul Terraform zona pendaratan Azure. Modul ini menyediakan pendekatan berpendapat untuk menyebarkan dan mengoperasikan platform Azure berdasarkan arsitektur konseptual zona pendaratan Azure sebagaimana dirinci dalam Cloud Adoption Framework (CAF).

Terraform adalah alat Infrastruktur sebagai Kode (IaC) sumber terbuka, yang dibuat oleh HashiCorp, yang menggunakan sintaks deklaratif untuk menyebarkan sumber daya infrastruktur. Ini dapat diperluas, memiliki dukungan lintas platform dan memungkinkan infrastruktur yang tidak dapat diubah melalui pelacakan status.


Penting

Modul ini tersedia di Terraform Registry: Modul Terraform zona pendaratan Azure. Anda dapat menggunakannya sebagai titik awal dan mengonfigurasinya sesuai kebutuhan Anda.

Catatan

Ada implementasi untuk beberapa teknologi penyebaran, termasuk templat ARM berbasis portal, dan modul Terraform. Pilihan teknologi penyebaran tidak boleh memengaruhi penyebaran zona pendaratan Azure yang dihasilkan.

Akselerator Terraform ALZ

Untuk mulai menyebarkan ALZ dengan Terraform dengan cepat, Anda dapat memanfaatkan ALZ Terraform Accelerator yang dirancang untuk digunakan sebagai templat. Repositori ini menyediakan implementasi pendukung modul Terraform Zona Pendaratan Azure, dengan alur Azure DevOps dan alur kerja tindakan GitHub.

ALZ Terraform Accelerator mengikuti pendekatan fase 3:

  1. Prasyarat: Instruksi untuk mengonfigurasi kredensial dan langganan.
  2. Bootstrap: Jalankan skrip PowerShell untuk menghasilkan lingkungan pengiriman berkelanjutan.
  3. Jalankan: Perbarui modul (jika diperlukan) agar sesuai dengan kebutuhan organisasi Anda dan sebarkan melalui pengiriman berkelanjutan.

Mulailah dengan panduan pengguna dengan langkah demi langkah untuk menyiapkan dan menjalankan lingkungan Azure Landing Zone Anda.

Rancang

Diagram showing the Azure landing zones conceptual architecture.

Arsitektur ini memanfaatkan sifat Terraform yang dapat dikonfigurasi dan terdiri dari modul orkestrasi utama. Modul ini merangkum beberapa kemampuan arsitektur konseptual zona pendaratan Azure. Anda dapat menyebarkan setiap kemampuan satu per satu atau sebagian. Misalnya, Anda hanya dapat menyebarkan jaringan hub, atau hanya Azure DDoS Protection, atau hanya sumber daya DNS. Saat melakukannya, Anda perlu memperhitungkan bahwa kemampuan memiliki dependensi.

Arsitektur menggunakan pendekatan orkestrator untuk menyederhanakan pengalaman penyebaran. Anda mungkin lebih suka mengimplementasikan setiap kemampuan menggunakan satu atau beberapa instans modul khusus di mana masing-masing didedikasikan untuk bagian tertentu dari arsitektur. Ini semua dimungkinkan dengan konfigurasi yang benar

Modul

Konsep inti dalam Terraform adalah penggunaan modul. Modul memungkinkan Anda mengatur penyebaran ke dalam pengelompokan logis. Dengan modul, Anda meningkatkan keterbacaan file Terraform Anda dengan merangkum detail kompleks penyebaran Anda. Anda juga dapat dengan mudah menggunakan kembali modul untuk penyebaran yang berbeda.

Kemampuan untuk menggunakan kembali modul menawarkan manfaat nyata saat menentukan dan menyebarkan zona pendaratan. Ini memungkinkan lingkungan yang dapat diulang dan konsisten dalam kode sambil mengurangi upaya yang diperlukan untuk menyebarkan dalam skala besar.

Implementasi Terraform dari zona pendaratan Azure dikirimkan menggunakan satu modul yang bertindak sebagai lapisan orkestrasi. Lapisan orkestrasi memungkinkan Anda memilih sumber daya mana yang disebarkan dan dikelola menggunakan modul. Modul dapat digunakan beberapa kali di lingkungan yang sama untuk menyebarkan sumber daya secara independen satu sama lain. Ini dapat berguna dalam organisasi di mana tim yang berbeda bertanggung jawab atas berbagai kemampuan, atau kumpulan sub-sumber daya.

Lapisan dan penahapan

Implementasi berfokus pada hierarki sumber daya pusat dari arsitektur konseptual zona pendaratan Azure. Desainnya berpusat di sekitar kemampuan berikut:

  • Sumber daya inti
  • Sumber daya manajemen
  • Sumber daya konektivitas
  • Sumber daya identitas

Modul mengelompokkan sumber daya ke dalam kemampuan ini karena dimaksudkan untuk disebarkan bersama-sama. Grup-grup ini membentuk tahapan logis implementasi.

Anda mengontrol penyebaran masing-masing kemampuan ini dengan menggunakan bendera fitur. Manfaat dari pendekatan ini adalah kemampuan untuk menambahkan ke lingkungan Anda secara bertahap dari waktu ke waktu. Misalnya, Anda dapat memulai dengan sejumlah kecil kemampuan. Anda dapat menambahkan kemampuan yang tersisa di tahap selanjutnya saat Anda siap.

Sumber daya inti

Kemampuan sumber daya inti modul selaras dengan area desain organisasi sumber daya dari Cloud Adoption Framework. Ini menyebarkan sumber daya dasar arsitektur konseptual untuk zona pendaratan Azure.

Diagram showing the core Azure landing zones architecture deployed by the Terraform module.

Arketipe

Konsep penting dalam kemampuan sumber daya inti adalah dimasukkannya arketipe.

Arketipe menyediakan pendekatan berbasis kode yang dapat digunakan kembali untuk menentukan definisi kebijakan, definisi set kebijakan, penetapan kebijakan, definisi peran, dan penetapan peran yang dapat digunakan kembali pada cakupan tertentu. Dalam implementasi Terraform, keputusan ini dirangkum sebagai Definisi Arketipe.

Untuk membuat zona pendaratan, grup manajemen dikaitkan dengan definisi arketipe. Dalam contoh di bawah ini untuk zona pendaratan corp, archetype_config memiliki penunjuk ke definisi arketipe "es_corp". Definisi tersebut berisi semua konfigurasi kebijakan dan peran yang akan ditambahkan ke grup manajemen ini.

  es_corp_landing_zones = {
    "contoso-corp" = {
      display_name               = "Corp"
      parent_management_group_id = "contoso-landing-zones"
      subscription_ids           = []
      archetype_config           = {
        archetype_id ="es_corp"
        parameters   = {}
        access_control = {}
    }
  }

Saat arketipe bawaan tidak selaras dengan kebutuhan Anda, modul menyediakan opsi untuk membuat arketipe baru atau membuat perubahan pada yang sudah ada.

Sumber daya manajemen

Kemampuan sumber daya manajemen modul selaras dengan area desain manajemen Cloud Adoption Framework. Kemampuan ini menyediakan opsi untuk menyebarkan sumber daya manajemen dan pemantauan ke zona pendaratan platform manajemen.

Sumber daya konektivitas

Kemampuan sumber daya konektivitas modul menyediakan opsi untuk menyebarkan topologi jaringan dan konektivitasarsitektur konseptual untuk zona pendaratan Azure.

Sumber daya identitas

Kemampuan sumber daya identitas modul selaras dengan area desain manajemen identitas dan akses Azure dari Cloud Adoption Framework. Kemampuan ini menyediakan opsi untuk mengonfigurasi kebijakan pada zona pendaratan platform Identitas.

Catatan

Tidak ada sumber daya yang disebarkan dengan kemampuan ini. deploy_identity_resources Saat variabel diatur ke true, penetapan Azure Policy dikonfigurasi yang melindungi sumber daya di langganan zona pendaratan platform identitas.

Deskripsi modul

Bagian ini memberikan gambaran umum tingkat tinggi tentang sumber daya yang disebarkan oleh modul ini.

Lapisan Jenis Sumber Daya Deskripsi Tautan yang Berguna
Inti Grup Manajemen Grup manajemen adalah sumber daya tingkat tertinggi dalam penyewa Azure. Grup manajemen memungkinkan Anda mengelola sumber daya dengan lebih mudah. Anda dapat menerapkan kebijakan di tingkat grup manajemen dan sumber daya tingkat yang lebih rendah akan mewarisi kebijakan tersebut. Secara khusus, Anda dapat menerapkan item berikut di tingkat grup manajemen yang akan diwarisi oleh langganan di bawah grup manajemen:
  • Kebijakan Azure
  • Penetapan peran Azure Role Based Access Controls (RBAC)
  • Kontrol biaya
Inti Definisi kebijakan, penetapan kebijakan, dan definisi kumpulan kebijakan Kebijakan DeployIfNotExists (DINE) atau Modifikasi membantu memastikan langganan dan sumber daya yang membentuk zona pendaratan sesuai. Kebijakan ditetapkan ke grup manajemen melalui penetapan kebijakan. Kebijakan tersebut meringankan beban pengelolaan zona pendaratan. Kebijakan menetapkan definisi kumpulan kebijakan bersama-sama.

Tidak semua pelanggan dapat menggunakan kebijakan DINE atau Modifikasi. Jika demikian, panduan CAF tentang kebijakan kustom memberikan panduan.
Inti Definisi peran dan penetapan peran Kontrol akses berbasis peran (RBAC) menyederhanakan pengelolaan hak pengguna dalam sistem. Alih-alih mengelola hak individu, Anda menentukan hak yang diperlukan untuk peran yang berbeda dalam sistem Anda. Azure RBAC memiliki beberapa peran bawaan. Definisi peran kustom memungkinkan Anda membuat peran kustom untuk lingkungan Anda.

Manajemen identitas dan akses (IAM) adalah batas keamanan utama dalam komputasi cloud. Azure RBAC memungkinkan Anda melakukan penetapan peran bawaan atau definisi peran kustom ke Perwakilan Layanan, Identitas Terkelola, atau grup keamanan di seluruh grup manajemen dan langganan.
Manajemen Azure Monitor, Azure Automation, dan Microsoft Sentinel Azure Monitor, Azure Automation, dan Microsoft Sentinel memungkinkan Anda memantau dan mengelola infrastruktur dan beban kerja Anda. Azure Monitor adalah solusi yang memungkinkan Anda mengumpulkan, menganalisis, dan bertindak berdasarkan telemetri dari lingkungan Anda.

Microsoft Sentinel adalah manajemen peristiwa dan informasi keamanan cloud-native (SIEM). Ini memungkinkan Anda untuk:
  • Kumpulkan - Kumpulkan data di seluruh infrastruktur Anda
  • Deteksi - Mendeteksi ancaman yang sebelumnya tidak terdeteksi
  • Respons - Menanggapi ancaman yang sah dengan orkestrasi bawaan
  • Menyelidiki - Menyelidiki ancaman dengan kecerdasan buatan

Azure Automation adalah sistem otomatisasi berbasis cloud. Ini termasuk:
  • Manajemen konfigurasi - Inventarisasi dan lacak perubahan untuk komputer virtual Linux dan Windows dan kelola konfigurasi status yang diinginkan
  • Manajemen pembaruan - Menilai kepatuhan sistem Windows dan Linux dan membuat penyebaran terjadwal untuk memenuhi kepatuhan
  • Otomatisasi proses - Mengotomatiskan tugas manajemen
Konektivitas Jenis sumber daya jaringan inti tercantum di sini Topologi jaringan adalah pertimbangan utama dalam penyebaran zona pendaratan Azure. CAF berfokus pada dua pendekatan jaringan inti:
  • Topologi berdasarkan Azure Virtual WAN
  • Topologi tradisional
Konektivitas Azure DDoS Protection Panduan zona pendaratan Azure merekomendasikan untuk mengaktifkan Azure DDoS Network Protection. Layanan ini menawarkan perlindungan turnkey terhadap serangan DDoS.
Konektivitas Zona DNS, Zona DNS Privat, dan Tautan Jaringan Virtual Zona DNS Privat Zona DNS privat dapat disebarkan untuk mendukung penggunaan titik akhir privat. Titik akhir privat adalah NIC yang diberi alamat IP privat dari jaringan virtual Anda. Anda dapat menggunakan alamat IP privat untuk berkomunikasi dengan aman ke layanan yang mendukung Azure Private Link. Zona DNS privat dapat dikonfigurasi untuk menyelesaikan nama domain yang sepenuhnya memenuhi syarat (FQDN) layanan ke alamat IP privat titik akhir privat.

Menggunakan modul Terraform

Menyebarkan sumber daya inti

Secara default, modul akan menyebarkan hierarki berikut, yang merupakan kumpulan inti grup manajemen zona pendaratan:

  • Akar
    • Platform
      • Identitas
      • Manajemen
      • Konektivitas
    • Zona arahan
    • Dinonaktifkan
    • Kotak Pasir

Grup manajemen zona pendaratan SAP, Corp, dan Online tidak berlaku untuk semua orang sehingga tidak disebarkan secara default. Berikut ini adalah cara untuk menyebarkan ini:

  1. Untuk tujuan demo, Anda dapat mengatur deploy_demo_landing_zones variabel ke true yang akan menyebarkan zona pendaratan SAP, Corp, dan Online
  2. Untuk tujuan produksi, Anda dapat mengaktifkan grup manajemen yang Anda inginkan dengan mengatur variabel berikut ke true:
    • deploy_corp_landing_zones
    • deploy_online_landing_zones
    • deploy_sap_landing_zones
  3. Anda dapat menyebarkan grup manajemen zona pendaratan kustom Anda sendiri dengan membuat definisi zona pendaratan kustom

Menyebarkan sumber daya manajemen

Untuk menyebarkan sumber daya manajemen, deploy_management_resources variabel harus diatur ke true dan subscription_id_management variabel harus diatur ke ID langganan manajemen tempat sumber daya akan disebarkan.

deploy_management_resources = true
subscription_id_management = <management subscription id>

Menyebarkan sumber daya konektivitas

Menyebarkan sumber daya Koneksi ivity memberikan panduan tentang cara menyebarkan topologi ini.

Menyebarkan sumber daya identitas

Untuk menyebarkan kemampuan identitas, deploy_identity_resources variabel harus diatur ke true dan subscription_id_identity variabel harus diatur ke ID langganan identitas tempat kebijakan akan dikonfigurasi.

deploy_identity_resources = true
subscription_id_identity = <identity subscription id>

Menyesuaikan implementasi Terraform

Implementasi zona pendaratan Azure yang disediakan sebagai bagian dari Cloud Adoption Framework sesuai dengan berbagai persyaratan dan kasus penggunaan. Namun, sering kali ada skenario di mana penyesuaian diperlukan untuk memenuhi kebutuhan bisnis tertentu.

Modul Terraform zona pendaratan Azure dapat digunakan sebagai dasar penyebaran yang disesuaikan. Ini memberi Anda cara untuk mempercepat implementasi Anda dengan menghapus kebutuhan untuk memulai dari awal karena perubahan tertentu yang diperlukan yang membuat aturan opsi siap pakai keluar.

GitHub logo Informasi tentang menyesuaikan modul tersedia di gitHub wiki repositori GitHub: Modul Terraform zona pendaratan Azure - Wiki. Anda dapat menggunakannya sebagai titik awal dan mengonfigurasinya sesuai kebutuhan Anda.