Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk / Saran
Konten ini adalah kutipan dari eBook, Merancang Aplikasi .NET Cloud Native untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.
Tidak seperti aplikasi monolitik di mana semuanya berjalan dalam satu instans, aplikasi cloud-native terdiri dari layanan independen yang didistribusikan di seluruh komputer virtual, kontainer, dan wilayah geografis. Mengelola pengaturan konfigurasi untuk puluhan layanan yang saling bergantung dapat menjadi tantangan. Salinan duplikat pengaturan konfigurasi di berbagai lokasi rawan kesalahan dan sulit dikelola. Konfigurasi terpusat adalah persyaratan penting untuk aplikasi cloud-native terdistribusi.
Seperti yang dibahas dalam Bab 1, rekomendasi aplikasi Twelve-Factor memerlukan pemisahan yang ketat antara kode dan konfigurasi. Konfigurasi harus disimpan secara eksternal dari aplikasi dan dibaca saat diperlukan. Menyimpan nilai konfigurasi sebagai konstanta atau nilai harfiah dalam kode adalah pelanggaran. Nilai konfigurasi yang sama sering digunakan oleh banyak layanan dalam aplikasi yang sama. Selain itu, kita harus mendukung nilai yang sama di beberapa lingkungan, seperti dev, pengujian, dan produksi. Praktik terbaik adalah menyimpannya di penyimpanan konfigurasi terpusat.
Cloud Azure menyajikan beberapa opsi hebat.
Konfigurasi Aplikasi Azure
Azure App Configuration adalah layanan Azure yang dikelola sepenuhnya yang menyimpan pengaturan konfigurasi non-rahasia di lokasi yang aman dan terpusat. Nilai yang disimpan dapat dibagikan di antara beberapa layanan dan aplikasi.
Layanan ini mudah digunakan dan memberikan beberapa manfaat:
- Representasi dan pemetaan kunci/nilai yang fleksibel
- Penandaan dengan label Azure
- Antarmuka pengguna khusus untuk manajemen
- Enkripsi informasi sensitif
- Kueri dan pengambilan data secara kelompok
Azure App Configuration menyimpan perubahan yang diterapkan pada pengaturan nilai-kunci selama tujuh hari. Fitur snapshot titik waktu memungkinkan Anda untuk membangun kembali riwayat pengaturan dan bahkan rollback dalam kasus penyebaran yang gagal.
App Configuration secara otomatis menyimpan setiap pengaturan untuk menghindari panggilan berlebihan ke penyimpanan konfigurasi. Operasi refresh menunggu hingga nilai cache pengaturan kedaluwarsa untuk memperbarui pengaturan tersebut, bahkan ketika nilainya berubah di penyimpanan konfigurasi. Waktu kedaluwarsa cache default adalah 30 detik. Anda dapat mengubah waktu kedaluwarsa.
App Configuration mengenkripsi semua nilai konfigurasi saat transit dan tidak aktif. Nama kunci dan label digunakan sebagai indeks untuk mengambil data konfigurasi dan tidak dienkripsi.
Meskipun App Configuration memberikan keamanan yang diperkuat, Azure Key Vault masih menjadi tempat terbaik untuk menyimpan rahasia aplikasi. Key Vault menyediakan enkripsi tingkat perangkat keras, kebijakan akses terperinci, dan operasi manajemen seperti rotasi sertifikat. Anda dapat membuat nilai App Configuration yang mereferensikan rahasia yang disimpan di Key Vault.
Azure Key Vault
Key Vault adalah layanan terkelola untuk menyimpan dan mengakses rahasia dengan aman. Rahasia adalah apa pun yang ingin Anda kontrol aksesnya dengan ketat, seperti kunci API, kata sandi, atau sertifikat. Wadah adalah kelompok rahasia yang terorganisir secara logis.
Key Vault sangat mengurangi kemungkinan rahasia bocor secara tidak sengaja. Saat menggunakan Key Vault, pengembang aplikasi tidak perlu lagi menyimpan informasi keamanan dalam aplikasi mereka. Praktik ini menghilangkan kebutuhan untuk menyimpan informasi ini di dalam kode Anda. Misalnya, aplikasi mungkin perlu tersambung ke database. Alih-alih menyimpan string koneksi dalam kode aplikasi, Anda dapat menyimpannya dengan aman di Key Vault.
Aplikasi Anda dapat dengan aman mengakses informasi yang mereka butuhkan dengan menggunakan URI. URI ini memungkinkan aplikasi untuk mengambil versi rahasia tertentu. Tidak perlu menulis kode kustom untuk melindungi informasi rahasia yang disimpan di Key Vault.
Akses ke Key Vault memerlukan autentikasi dan otorisasi pemanggil yang tepat. Biasanya, setiap layanan mikro cloud-native menggunakan kombinasi ClientId/ClientSecret. Penting untuk menyimpan kredensial ini di luar kontrol sumber. Praktik terbaik adalah mengaturnya di lingkungan aplikasi. Akses langsung ke Key Vault dari AKS dapat dicapai menggunakan Key Vault FlexVolume.
Konfigurasi di eShop
Aplikasi eShopOnContainers mencakup file pengaturan aplikasi lokal dengan setiap layanan mikro. File-file ini diperiksa ke kontrol sumber, tetapi tidak menyertakan rahasia produksi seperti string koneksi atau kunci API. Dalam produksi, pengaturan individual dapat digantikan dengan variabel lingkungan untuk setiap layanan. Menyuntikkan rahasia dalam variabel lingkungan adalah praktik umum untuk aplikasi yang dihosting, tetapi tidak menyediakan penyimpanan konfigurasi pusat. Untuk mendukung manajemen pengaturan konfigurasi terpusat, setiap layanan mikro menyertakan pengaturan untuk beralih antara penggunaan pengaturan lokal atau pengaturan Azure Key Vault.
Referensi
- Arsitektur eShopOnContainers
- Mengatur layanan mikro dan aplikasi multikontainer untuk skalabilitas dan ketersediaan tinggi
- Azure API Management
- Gambaran Umum Azure SQL Database
- Azure Cache for Redis
- API Azure Cosmos DB untuk MongoDB
- Azure Service Bus
- Gambaran Umum Azure Monitor
- eShopOnContainers: Membuat kluster Kubernetes di AKS
- eShopOnContainers: Azure Dev Spaces
- Azure Dev Spaces