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 primer 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 untuk menyuntikkan info masuk runtime untuk akun Azure Cosmos DB Anda tanpa perlu pengembang untuk 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 Azure Cosmos DB untuk akun NoSQL. Anda dapat melakukan banyak langkah yang sama menggunakan API lain.

Prasyarat

Sebelum memulai: Dapatkan kredensial Azure Cosmos DB

Sebelum memulai, Anda akan mendapatkan kredensial untuk akun yang sudah ada.

  1. Navigasi ke halaman portal Microsoft Azure untuk akun Azure Cosmos DB for NoSQL yang sudah ada.

  2. Dari halaman akun Azure Cosmos DB for NoSQL, pilih opsi menu navigasi Kunci .

    Cuplikan layar halaman akun Azure Cosmos DB SQL API. Opsi Kunci disorot di menu navigasi.

  3. Catat nilai dari bidang URI dan KUNCI PRIMER. Anda akan menggunakan nilai-nilai ini nanti dalam tutorial ini.

    Cuplikan layar halaman Kunci dengan berbagai kredensial untuk akun Azure Cosmos DB SQL API.

Membuat sumber daya Azure Key Vault

Pertama, buat brankas kunci baru untuk menyimpan API Anda untuk kredensial NoSQL.

  1. Masuk ke portal Microsoft Azure.

  2. Pilih Buat sumber daya > Keamanan > Key Vault.

  3. Pada halaman Buat brankas kunci , masukkan informasi berikut ini:

    Pengaturan Deskripsi
    Langganan Pilih langganan Azure yang ingin Anda gunakan di akun Azure Cosmos.
    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.
  4. Biarkan pengaturan yang tersisa ke nilai defaultnya.

  5. Pilih Tinjau + buat.

  6. Tinjau pengaturan yang Anda berikan, lalu pilih Buat. Dibutuhkan beberapa menit untuk membuat akun. Tunggu halaman portal 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.

  1. Pilih Buka sumber daya untuk masuk ke halaman sumber daya Azure Key Vault.

  2. Dari halaman sumber daya Azure Key Vault, pilih opsi menu navigasi Rahasia .

  3. Pilih Buat/Impor dari menu.

    Cuplikan layar opsi Buat/Impor di menu brankas kunci.

  4. Pada halaman Buat rahasia , masukkan informasi berikut ini:

    Pengaturan Deskripsi
    Opsi pengunggahan Manual
    Nama titik akhir kosmos
    Nilai rahasia Masukkan URI yang Anda salin sebelumnya dalam tutorial ini.

    Cuplikan layar dialog Buat rahasia di portal Microsoft Azure dengan detail untuk rahasia URI.

  5. Pilih Buat untuk membuat rahasia titik akhir kosmos baru.

  6. Pilih Buat/Impor dari menu lagi. Pada halaman Buat rahasia , masukkan informasi berikut ini:

    Pengaturan Deskripsi
    Opsi pengunggahan Manual
    Nama cosmos-readwrite-key
    Nilai rahasia Masukkan KUNCI PRIMER yang Anda salin sebelumnya dalam tutorial ini.

    Cuplikan layar dialog Buat rahasia di portal Microsoft Azure dengan detail untuk rahasia KUNCI PRIMER.

  7. Pilih Buat untuk membuat rahasia cosmos-readwrite-key baru.

  8. Setelah rahasia dibuat, lihat di daftar rahasia dalam halaman Rahasia .

    Cuplikan layar daftar rahasia untuk brankas kunci.

  9. 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 akan 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 versi jika 83b995e363d947999ac6cf487ae0e12e; maka pengidentifikasi rahasia adalah https://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e.

    Cuplikan layar pengidentifikasi rahasia untuk rahasia brankas kunci bernama cosmos-readwrite-key.

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.

  1. Buat repositori GitHub baru menggunakan templat cosmos-db-nosql-dotnet-sample-web-environment-variables.

  2. Di portal Microsoft Azure, pilih Buat sumber daya > Web > App.

  3. Pada halaman Buat Aplikasi Web dan tab Dasar , masukkan informasi berikut ini:

    Pengaturan Deskripsi
    Langganan Pilih langganan Azure yang ingin Anda gunakan di akun Azure Cosmos.
    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.
    Terbitkan 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.
  4. Biarkan pengaturan yang tersisa ke nilai defaultnya.

  5. Pilih Berikutnya: Penyebaran.

  6. Pada tab Penyebaran , masukkan informasi berikut ini:

    Pengaturan Deskripsi
    Penyebaran berkelanjutan Pilih 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.
  7. Pilih Tinjau + buat.

  8. Tinjau pengaturan yang Anda berikan, lalu pilih Buat. Dibutuhkan beberapa menit untuk membuat akun. Tunggu halaman portal menampilkan Penyebaran Anda selesai sebelum melanjutkan.

  9. 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.

    Cuplikan layar aplikasi web dalam status default tanpa kredensial.

  10. Pilih opsi menu navigasi Identitas .

  11. Pada halaman Identitas , pilih Aktif untuk Identitas terkelola yang ditetapkan sistem , lalu pilih Simpan.

    Cuplikan layar identitas terkelola yang ditetapkan sistem diaktifkan dari halaman Identitas.

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.

  1. Kembali ke halaman brankas kunci di portal Microsoft Azure. Pilih Kebijakan akses dari menu navigasi.

  2. Pada halaman Kebijakan akses , pilih Buat dari menu.

    Cuplikan layar opsi Buat di menu Kebijakan akses.

  3. Pada tab Izin dari halaman Buat kebijakan akses , pilih opsi Dapatkan di bagian Izin rahasia . Pilih Selanjutnya.

    Cuplikan layar izin Dapatkan diaktifkan untuk izin Rahasia.

  4. Pada tab Utama , pilih nama aplikasi web yang Anda buat sebelumnya dalam tutorial ini. Pilih Selanjutnya.

    Cuplikan layar identitas terkelola aplikasi web yang ditetapkan ke izin.

    Catatan

    Dalam contoh cuplikan layar ini, aplikasi web diberi nama msdocs-dotnet-web.

  5. Pilih Berikutnya lagi untuk melewati tab Aplikasi . Pada tab Tinjau + buat , tinjau pengaturan yang Anda berikan, lalu pilih Buat.

  6. Kembali ke halaman aplikasi web di portal Microsoft Azure. Pilih Konfigurasi dari menu navigasi.

  7. Pada halaman Konfigurasi , pilih Pengaturan aplikasi baru. Dalam dialog Tambahkan/Edit pengaturan aplikasi , masukkan informasi berikut:

    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 garis bawah tunggal. Garis bawah ganda adalah pembatas kunci yang didukung oleh .NET di 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/69621c59ef5b4b7294b5def118921b07, maka referensinya adalah @Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07).

    Cuplikan layar dialog pengaturan Tambahkan/Edit aplikasi dengan pengaturan aplikasi baru yang mereferensikan rahasia brankas kunci.

  8. Pilih OK untuk mempertahankan pengaturan aplikasi baru

  9. 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>).
  10. Kembali ke halaman Konfigurasi , pilih Simpan untuk memperbarui pengaturan aplikasi untuk aplikasi web.

    Cuplikan layar opsi Simpan di menu halaman Konfigurasi.

  11. Tunggu beberapa menit hingga aplikasi web dimulai ulang dengan pengaturan aplikasi baru. Pada titik ini, pengaturan aplikasi baru harus menunjukkan bahwa mereka adalah Referensi Brankas kunci.

    Cuplikan layar penentuan Referensi brankas kunci pada dua pengaturan aplikasi di aplikasi web.

  12. Pilih Gambaran Umum dari menu navigasi. Pilih Telusuri untuk melihat aplikasi dengan kredensial yang diisi.

    Cuplikan layar aplikasi web dengan kredensial akun Azure Cosmos DB for NoSQL yang valid.

Langkah berikutnya