Tutorial: Menggunakan Azure Key Vault dengan komputer virtual di Python

Azure Key Vault membantu Anda melindungi kunci, rahasia, dan sertifikat, seperti kunci API dan string koneksi database.

Dalam tutorial ini, Anda menyiapkan aplikasi Python untuk membaca informasi dari Azure Key Vault dengan menggunakan identitas terkelola untuk sumber daya Azure. Anda akan mempelajari cara untuk:

  • Buat penyimpanan kunci
  • Menyimpan rahasia di Key Vault
  • Membuat komputer virtual Linux Azure
  • Mengaktifkan identitas terkelola untuk komputer virtual
  • Berikan izin yang diperlukan untuk aplikasi konsol untuk membaca data dari Key Vault
  • Mengambil data rahasia dari Key Vault

Sebelum memulai, baca konsep dasar Key Vault.

Jika Anda tidak memiliki langganan Azure, buat akun free.

Prasyarat

Untuk Windows, Mac, dan Linux:

  • Git
  • Versi Azure CLI saat ini. Jalankan az --version untuk memeriksa versi yang diinstal.

Masuk ke Azure

Masuk ke Azure dengan Azure CLI:

az login

Buat grup sumber daya dan Key Vault.

Panduan mulai cepat ini menggunakan brankas kunci Azure yang sudah dibuat sebelumnya. Anda dapat membuat brankas kunci dengan mengikuti langkah-langkah dalam panduan cepat ini:

Atau, Anda dapat menjalankan perintah Azure CLI atau Azure PowerShell ini.

Penting

Setiap key vault harus memiliki nama yang unik. Ganti <vault-name> dengan nama brankas kunci Anda dalam contoh berikut.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true

Mengisi penyimpanan kunci Anda dengan informasi rahasia

Mari membuat rahasia yang disebut mySecret, dengan nilai Berhasil!. Rahasia mungkin berupa kata sandi, string koneksi SQL, atau informasi lain yang Anda butuhkan untuk menjaga keamanan dan ketersediaan aplikasi Anda.

Untuk menambahkan rahasia ke brankas kunci yang baru dibuat, gunakan perintah berikut:

az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"

Membuat mesin virtual

Buat VM bernama myVM dengan menggunakan salah satu metode berikut:

Linux Windows
Azure CLI Azure CLI
PowerShell PowerShell
Portal Azure Portal Azure

Untuk membuat VM Linux menggunakan Azure CLI, gunakan perintah az vm create. Contoh berikut menambahkan akun pengguna bernama azureuser. Parameter --generate-ssh-keys digunakan untuk secara otomatis membuat kunci SSH, dan meletakkannya di lokasi kunci default (~/.ssh).

az vm create \
  --resource-group <resource-group> \
  --name myVM \
  --image Ubuntu2204 \
  --admin-username azureuser \
  --generate-ssh-keys

Catat nilai publicIpAddress dalam output.

Menetapkan identitas ke komputer virtual

Buat identitas terkelola yang ditetapkan sistem untuk VM dengan menggunakan perintah az vm identity assign :

az vm identity assign --name "myVM" --resource-group "<resource-group>"

Perhatikan identitas yang ditetapkan sistem dalam output:

{
  "systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "userAssignedIdentities": {}
}

Menetapkan izin ke identitas komputer virtual

Untuk mendapatkan izin ke brankas kunci Anda melalui Role-Based Access Control (RBAC), tetapkan peran ke "Nama Prinsipal Pengguna" (UPN) Anda menggunakan perintah Azure CLI az role assignment create.

az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"

Ganti <upn>, <subscription-id>, dan <vault-name> dengan nilai aktual Anda. Jika Anda menggunakan nama grup sumber daya yang berbeda, ganti "myResourceGroup" juga. UPN Anda biasanya akan dalam format alamat email (misalnya, username@domain.com).

Masuk ke VM

Untuk masuk ke VM, ikuti instruksi di Sambungkan dan masuk ke komputer virtual Azure yang menjalankan Linux atau Sambungkan dan masuk ke komputer virtual Azure yang berjalan Windows.

Untuk masuk ke VM Linux, gunakan ssh dengan <public-ip-address> dari langkah Buat komputer virtual :

ssh azureuser@<public-ip-address>

Menginstal pustaka Python pada VM

Pada VM, instal dua pustaka Python yang digunakan skrip sampel: azure-keyvault-secrets dan azure-identity.

Pada VM Linux, instal dengan pip3:

pip3 install azure-keyvault-secrets azure-identity

Membuat dan mengedit sampel skrip Python

Pada VM, buat file Python bernama sample.py. Tempelkan kode berikut ke dalam file, ganti <vault-name> dengan nama brankas kunci Anda:

from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential

key_vault_name = "<vault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"

credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)

print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")

Menjalankan sampel aplikasi Python

Jalankan sample.py. Jika semuanya dikonfigurasi dengan benar, aplikasi akan mencetak nilai rahasia:

python3 sample.py

The value of secret 'mySecret' in '<vault-name>' is: 'Success!'

Membersihkan sumber daya

Ketika Anda tidak lagi membutuhkannya, hapus VM dan brankas kunci. Cara tercepat adalah menghapus grup sumber daya milik mereka:

az group delete -g "myResourceGroup"

Langkah selanjutnya

Azure Key Vault REST API