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 mempelajari cara:

  • Membuat 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
  • Mengambil rahasia dari Key Vault

Sebelum Anda memulai, baca konsep dasar Key Vault.

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.

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

Membuat grup sumber daya dan brankas kunci

Mulai cepat ini menggunakan Azure key vault yang telah 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 cukup menjalankan perintah Azure CLI atau Azure PowerShell di bawah ini.

Penting

Setiap brankas kunci 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"

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 komputer virtual

Buat komputer virtual disebut myVM menggunakan salah satu metode berikut:

Linux Windows
Azure CLI Azure CLI
PowerShell PowerShell
Portal Microsoft 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

Sekarang Anda dapat menetapkan izin identitas yang dibuat sebelumnya ke brankas kunci dengan menjalankan perintah berikut:

az keyvault set-policy --name "<your-unique-keyvault-name>" --object-id "<systemAssignedIdentity>" --secret-permissions get list

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 tersebut berada:

az group delete -g myResourceGroup

Langkah berikutnya

API REST Azure Key Vault