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 brankas kunci
- Menyimpan rahasia di Key Vault
- Membuat komputer virtual Azure Linux
- Mengaktifkan identitas terkelola untuk komputer virtual
- Memberikan izin yang diperlukan untuk aplikasi konsol untuk membaca data dari Key Vault
- Menampilkan rahasia dari Key Vault
Sebelum Anda memulai, baca konsep dasar Key Vault.
Jika Anda tidak memiliki langganan Azure, buat akun gratis.
Prasyarat
Untuk Windows, Mac, dan Linux:
- Git
- Tutorial ini mengharuskan Anda menjalankan Azure CLI secara lokal. Anda harus menginstal Azure CLI versi 2.0.4 atau yang lebih baru. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu menginstal atau meningkatkan CLI, lihat Menginstal Azure CLI 2.0
Masuk ke Azure
Untuk masuk ke Azure dengan menggunakan Azure CLI, masukkan:
az login
Buat grup sumber daya dan brankas kunci
Mulai cepat ini menggunakan brankas kunci Azure yang dibuat sebelumnya. Anda dapat membuat key vault dengan mengikuti langkah-langkah di mulai cepat Azure CLI, mulai cepat Azure PowerShell, atau mulai cepat portal Microsoft Azure.
Atau, Anda dapat menjalankan perintah Azure CLI atau Azure PowerShell ini.
Penting
Setiap key vault harus memiliki nama yang unik. Ganti <your-unique-keyvault-name> dengan nama brankas kunci Anda dalam contoh berikut.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
Mengisi brankas kunci Anda dengan rahasia
Mari membuat rahasia yang disebut mySecret, dengan nilai Berhasil!. Rahasia mungkin berupa kata sandi, string koneksi SQL, atau informasi lain yang Anda perlukan agar tetap aman dan tersedia untuk aplikasi Anda.
Untuk menambahkan rahasia ke brankas kunci yang baru dibuat, gunakan perintah berikut:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Membuat mesin virtual
Buat komputer virtual disebut myVM menggunakan salah satu metode berikut:
Linux | Windows |
---|---|
Azure CLI | Azure CLI |
PowerShell | PowerShell |
Portal Azure | Portal Microsoft Azure |
Untuk membuat komputer virtual Linux menggunakan Azure CLI, gunakan perintah buat vm az 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 myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Catat nilai publicIpAddress
dalam output.
Menetapkan identitas ke komputer virtual
Buat identitas yang ditetapkan sistem untuk komputer virtual dengan menggunakan perintah Azure CLI tetapkan identitas vm az:
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
Catat identitas yang ditetapkan sistem yang ditampilkan dalam kode berikut. Output dari perintah sebelumnya adalah:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Menetapkan izin ke identitas komputer virtual
Untuk memberikan izin aplikasi Anda ke brankas kunci Anda melalui Kontrol Akses Berbasis Peran (RBAC), tetapkan peran menggunakan perintah Azure CLI az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<app-id>" --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Ganti <app-id>
, <subscription-id>
, <resource-group-name>
dan <your-unique-keyvault-name>
dengan nilai aktual Anda. <app-id>
adalah ID Aplikasi (klien) dari aplikasi terdaftar Anda di Microsoft Entra.
Masuk ke komputer virtual
Untuk masuk ke komputer virtual, ikuti instruksi di Sambungkan dan masuk ke komputer virtual Azure yang menjalankan Linux atau Sambungkan dan masuk ke komputer virtual Azure yang menjalankan Windows.
Untuk masuk ke VM Linux, Anda dapat menggunakan perintah ssh dengan <publicIpAddress> yang diberikan pada langkah Buat mesin virtual:
ssh azureuser@<PublicIpAddress>
Menginstal pustaka Python di komputer virtual
Pada mesin virtual, instal dua pustaka Python yang akan kita gunakan dalam skrip Python: azure-keyvault-secrets
dan azure.identity
.
Pada komputer virtual Linux, misalnya, Anda dapat menginstalnya menggunakan pip3
:
pip3 install azure-keyvault-secrets
pip3 install azure.identity
Membuat dan mengedit contoh skrip Python
Pada mesin virtual, buat file Python yang disebut sample.py. Edit file agar berisi kode berikut, ganti <nama-keyvault-unik-Anda> dengan nama brankas kunci Anda:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<your-unique-keyvault-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}'")
Jalankan sampel aplikasi Python
Terakhir, jalankan sample.py. Jika semuanya berjalan dengan baik, akan mengembalikan nilai rahasia Anda:
python3 sample.py
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Membersihkan sumber daya
Saat tidak lagi diperlukan, hapus komputer virtual dan brankas kunci Anda. Anda dapat dilakukan dengan cepat dengan menghapus grup sumber daya tempat grup sumber daya berada:
az group delete -g myResourceGroup