Tutorial: Menyimpan dan menggunakan kredensial Azure Cosmos DB dengan Azure Key Vault
BERLAKU UNTUK:
NoSQL
MongoDB
Cassandra
Gremlin
Meja
Penting
Disarankan untuk mengakses Azure Cosmos DB adalah menggunakan identitas terkelola yang ditetapkan sistem. Jika solusi identitas terkelola dan solusi berbasis sertifikasi tidak memenuhi kebutuhan Anda, silakan gunakan solusi Azure Key vault dalam artikel ini.
Jika Anda menggunakan Azure Cosmos DB sebagai database, Anda tersambung ke database, kontainer, dan item dengan menggunakan SDK, titik akhir API, dan kunci utama atau sekunder.
Ini bukan praktik yang baik untuk menyimpan URI titik akhir dan kunci baca-tulis sensitif langsung dalam kode aplikasi atau file konfigurasi. Idealnya, data ini dibaca dari variabel lingkungan dalam host. Di Azure App Service, pengaturan aplikasi memungkinkan Anda menyuntikkan kredensial runtime untuk akun Azure Cosmos DB Anda tanpa perlu pengembang menyimpan kredensial ini dengan cara teks yang tidak aman.
Azure Key Vault melakukan iterasi pada praktik terbaik ini lebih lanjut dengan memungkinkan Anda menyimpan kredensial ini dengan aman sambil memberikan layanan seperti akses terkelola Azure App Service ke kredensial. Azure App Service akan membaca kredensial Anda dengan aman dari Azure Key Vault dan menyuntikkan kredensial tersebut ke dalam aplikasi anda yang sedang berjalan.
Dengan praktik terbaik ini, pengembang dapat menyimpan kredensial untuk alat seperti emulator Azure Cosmos DB atau Coba Azure Cosmos DB gratis selama pengembangan. Kemudian, tim operasi dapat memastikan bahwa pengaturan produksi yang benar disuntikkan pada runtime.
Dalam tutorial ini, Anda akan mempelajari cara:
- Membuat instans Azure Key Vault
- Menambahkan kredensial Azure Cosmos DB sebagai rahasia ke brankas kunci
- Membuat dan mendaftarkan sumber daya Azure App Service dan memberikan izin "kunci baca"
- Menyuntikkan rahasia brankas kunci ke sumber daya App Service
Catatan
Tutorial ini dan aplikasi sampel menggunakan akun Azure Cosmos DB for NoSQL. Anda dapat melakukan banyak langkah yang sama menggunakan API lain.
Prasyarat
- Akun Azure Cosmos DB for NoSQL yang sudah ada.
- Jika Anda memiliki langganan Azure, buat akun baru.
- Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Atau, Anda dapat mencoba Azure Cosmos DB gratis sebelum berkomitmen.
- Akun GitHub.
Sebelum Memulai: Mendapatkan kredensial Azure Cosmos DB
Sebelum memulai, Anda akan mendapatkan kredensial untuk akun yang sudah ada.
Navigasi ke halaman portal Azure untuk akun Azure Cosmos DB for NoSQL yang ada.
Dari halaman akun Azure Cosmos DB for NoSQL, pilih opsi menu navigasi Kunci .
Catat nilai dari bidang URI dan KUNCI PRIMER. Anda akan menggunakan nilai-nilai ini nanti dalam tutorial ini.
Membuat sumber daya Azure Key Vault
Pertama, buat brankas kunci baru untuk menyimpan API Anda untuk kredensial NoSQL.
Masuk ke portal Azure.
Pilih Buat sumber daya > Keamanan > Key Vault.
Pada halaman Buat brankas kunci, masukkan informasi berikut ini:
Pengaturan Deskripsi Langganan Pilih langganan Azure yang ingin Anda gunakan untuk akun Azure Cosmos ini. Grup sumber daya Pilih grup sumber daya, atau pilih Buat baru, lalu masukkan nama unik untuk grup sumber daya baru. Nama brankas kunci Masukkan nama unik global untuk brankas kunci Anda. Wilayah Pilih lokasi geografis untuk menghosting akun Azure Cosmos DB Anda. Gunakan lokasi yang paling dekat dengan pengguna Anda untuk memberi mereka akses tercepat ke data. Tingkat harga Pilih Standar. Biarkan pengaturan yang tersisa ke nilai defaultnya.
Pilih Tinjau + buat.
Tinjau pengaturan yang Anda berikan, kemudian pilih Buat. Dibutuhkan beberapa menit untuk membuat akun. Tunggu halaman portal untuk menampilkan Penyebaran Anda selesai sebelum melanjutkan.
Menambahkan kunci akses Azure Cosmos DB pada Key Vault
Sekarang, simpan kredensial Azure Cosmos DB Anda sebagai rahasia di brankas kunci.
Pilih Buka sumber daya untuk masuk ke halaman sumber daya Azure Key Vault.
Dari halaman sumber daya Azure Key Vault, pilih opsi menu navigasi Rahasia .
Pilih Hasilkan/Impor dari menu.
Pada halaman Buat rahasia , masukkan informasi berikut ini:
Pengaturan Deskripsi Opsi unggah Manual Nama titik akhir kosmos Nilai rahasia Masukkan URI yang Anda salin sebelumnya dalam tutorial ini. Pilih Buat untuk membuat rahasia titik akhir kosmos baru.
Pilih Buat/Impor dari menu lagi. Pada halaman Buat rahasia , masukkan informasi berikut ini:
Pengaturan Deskripsi Opsi unggah Manual Nama cosmos-readwrite-key Nilai rahasia Masukkan KUNCI PRIMER yang Anda salin sebelumnya dalam tutorial ini. Pilih Buat untuk membuat rahasia cosmos-readwrite-key baru.
Setelah rahasia dibuat, lihat di daftar rahasia dalam halaman Rahasia .
Pilih setiap kunci, pilih versi terbaru, lalu salin Pengidentifikasi Rahasia. Anda akan menggunakan pengidentifikasi untuk rahasia cosmos-endpoint dan cosmos-readwrite-key nanti dalam tutorial ini.
Tip
Pengidentifikasi rahasia dalam format
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>
ini . Misalnya, jika nama brankas kunci adalah msdocs-key-vault, nama kuncinya adalah cosmos-readwrite-key, dan versinya adalah aaaaaaaa-0b0b-1c1c-2d2d-33333333333333; maka pengidentifikasi rahasia adalahhttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/aaaaaaaa-0b0b-1c1c-2d2d-333333333333
:
Membuat dan mendaftarkan Azure Web App dengan Azure Key Vault
Di bagian ini, buat Azure Web App baru, sebarkan aplikasi sampel, lalu daftarkan identitas terkelola Aplikasi Web dengan Azure Key Vault.
Buat repositori GitHub baru menggunakan templat cosmos-db-nosql-dotnet-sample-web-environment-variables.
Di portal Azure, pilih Buat sumber daya > Web > App.
Pada halaman Buat Aplikasi Web dan tab Dasar , masukkan informasi berikut ini:
Pengaturan Deskripsi Langganan Pilih langganan Azure yang ingin Anda gunakan untuk akun Azure Cosmos ini. Grup sumber daya Pilih grup sumber daya, atau pilih Buat baru, lalu masukkan nama unik untuk grup sumber daya baru. Nama Masukkan nama unik global untuk aplikasi web Anda. Menerbitkan Pilih Kode. Tumpukan runtime Pilih .NET 6 (LTS). Sistem Operasi Pilih Windows. Wilayah Pilih lokasi geografis untuk menghosting akun Azure Cosmos DB Anda. Gunakan lokasi yang paling dekat dengan pengguna Anda untuk memberi mereka akses tercepat ke data. Biarkan pengaturan yang tersisa ke nilai defaultnya.
Pilih Berikutnya: Penyebaran.
Pada tab Penyebaran , masukkan informasi berikut ini:
Pengaturan Deskripsi Penerapan Berkelanjutan Klik Aktifkan. Akun GitHub Pilih Otorisasi. Ikuti perintah otorisasi akun GitHub untuk memberikan izin Azure untuk membaca repositori GitHub yang baru dibuat. Organisasi Pilih organisasi untuk repositori GitHub baru Anda. Repositori Pilih nama repositori GitHub baru Anda. Cabang Pilih utama. Pilih Tinjau + buat.
Tinjau pengaturan yang Anda berikan, kemudian pilih Buat. Dibutuhkan beberapa menit untuk membuat akun. Tunggu halaman portal untuk menampilkan Penyebaran Anda selesai sebelum melanjutkan.
Anda mungkin perlu menunggu beberapa menit tambahan agar aplikasi web awalnya disebarkan ke aplikasi web. Dari halaman sumber daya Azure Web App, pilih Telusuri untuk melihat status default aplikasi.
Pilih opsi menu navigasi Identitas.
Pada halaman Identitas , pilih Aktif untuk Identitas terkelola yang ditetapkan sistem, lalu pilih Simpan.
Menyuntikkan rahasia Azure Key Vault sebagai pengaturan aplikasi Azure Web App
Terakhir, masukkan rahasia yang disimpan di brankas kunci Anda sebagai pengaturan aplikasi dalam aplikasi web. Pengaturan aplikasi akan, pada gilirannya, menyuntikkan kredensial ke dalam aplikasi saat runtime tanpa menyimpan kredensial dalam teks yang jelas.
Kembali ke halaman brankas kunci di portal Azure. Pilih Kebijakan akses dari menu navigasi.
Pada halaman Kebijakan akses , pilih Buat dari menu.
Pada tab Izin dari halaman Buat kebijakan akses, pilih opsi Dapatkan di bagian Izin rahasia. Pilih Selanjutnya.
Pada tab Utama , pilih nama aplikasi web yang Anda buat sebelumnya dalam tutorial ini. Pilih Selanjutnya.
Catatan
Dalam contoh cuplikan layar ini, aplikasi web diberi nama msdocs-dotnet-web.
Pilih Berikutnya lagi untuk melewati tab Aplikasi . Pada tab Tinjau + buat , tinjau pengaturan yang Anda sediakan, lalu pilih Buat.
Kembali ke halaman aplikasi web di portal Azure. Pilih Konfigurasi dari menu navigasi.
Pada halaman Konfigurasi , pilih Pengaturan aplikasi baru. Dalam dialog Tambahkan/Edit pengaturan aplikasi, masukkan informasi berikut ini:
Pengaturan Deskripsi Nama CREDENTIALS__ENDPOINT
Kunci Dapatkan pengidentifikasi rahasia untuk rahasia titik akhir kosmos di brankas kunci yang Anda buat sebelumnya dalam tutorial ini. Masukkan pengidentifikasi dalam format berikut: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Tip
Pastikan bahwa variabel lingkungan memiliki nilai garis bawah ganda (
__
) alih-alih satu garis bawah. Garis bawah ganda adalah pembatas kunci yang didukung oleh .NET pada semua platform. Untuk informasi selengkapnya, lihat konfigurasi variabel lingkungan.Catatan
Misalnya, jika pengidentifikasi rahasia adalah
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/AB0CD1EF2GH3IJ4KL5MN6OP7QR8ST9
, maka referensinya adalah@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/AB0CD1EF2GH3IJ4KL5MN6OP7QR8ST9)
:Pilih OK untuk mempertahankan pengaturan aplikasi baru
Pilih Pengaturan aplikasi baru lagi. Dalam dialog Tambahkan/Edit pengaturan aplikasi, masukkan informasi berikut lalu pilih OK:
Pengaturan Deskripsi Nama CREDENTIALS__KEY
Kunci Dapatkan pengidentifikasi rahasia untuk rahasia cosmos-readwrite-key di brankas kunci yang Anda buat sebelumnya dalam tutorial ini. Masukkan pengidentifikasi dalam format berikut: @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Kembali ke halaman Konfigurasi , pilih Simpan untuk memperbarui pengaturan aplikasi untuk aplikasi web.
Tunggu beberapa menit hingga aplikasi web dimulai ulang dengan pengaturan aplikasi baru. Pada titik ini, pengaturan aplikasi baru harus menunjukkan bahwa pengaturan tersebut adalah Referensi Brankas kunci.
Pilih Gambaran Umum dari menu navigasi. Pilih Telusuri untuk melihat aplikasi dengan kredensial yang diisi.
Langkah berikutnya
- Untuk mengonfigurasi firewall pada Azure Cosmos DB, lihat artikel dukungan firewall.
- Untuk mengonfigurasi titik akhir layanan jaringan virtual, lihat artikel akses aman dengan menggunakan titik akhir layanan VNet.