Öğretici: Python'da sanal makineyle Azure Key Vault kullanma

Azure Key Vault, anahtarları, gizli dizileri ve API anahtarları ve veritabanı bağlantı dizeleri gibi sertifikaları korumanıza yardımcı olur.

Bu öğreticide, Azure kaynakları için yönetilen kimlikleri kullanarak Azure Key Vault'dan bilgi okumak üzere bir Python uygulaması ayarlarsınız. Aşağıdakileri nasıl yapacağınızı öğrenirsiniz:

  • Anahtar kasası oluşturma
  • Gizli diziyi Key Vault'de depolama
  • Azure Linux sanal makinesi oluşturma
  • Sanal makine için yönetilen kimliği etkinleştirme
  • Konsol uygulamasının Key Vault verileri okuması için gerekli izinleri verme
  • Key Vault'dan gizli dizi alma

Başlamadan önce temel kavramları Key Vault okuyun.

Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun.

Önkoşullar

Windows, Mac ve Linux için:

  • Git
  • Bu öğretici, Azure CLI'yi yerel olarak çalıştırmanızı gerektirir. Azure CLI sürüm 2.0.4 veya üzeri yüklü olmalıdır. Sürümü bulmak için az --version komutunu çalıştırın. CLI’yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI 2.0’ı yükleme.

Azure'da oturum açma

Azure CLI'yi kullanarak Azure'da oturum açmak için, şunları girin:

az login

Kaynak grubu ve anahtar kasası oluşturma

Bu hızlı başlangıçta önceden oluşturulmuş bir Azure anahtar kasası kullanılır. Azure CLI hızlı başlangıç, Azure PowerShell hızlı başlangıç veya Azure portal hızlı başlangıç adımlarını izleyerek bir anahtar kasası oluşturabilirsiniz.

Alternatif olarak, aşağıdaki Azure CLI veya Azure PowerShell komutlarını da çalıştırabilirsiniz.

Önemli

Her anahtar kasasının benzersiz bir adı olmalıdır. Aşağıdaki örneklerde unique-keyvault-name> değerini anahtar kasanızın adıyla değiştirin<.

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

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup"

Anahtar kasanızı gizli diziyle doldurma

Şimdi başarı! değeriyle mySecret adlı bir gizli dizi oluşturalım. Gizli dizi bir parola, SQL bağlantı dizesi veya hem güvenli hem de uygulamanızın kullanımına açık tutmak için ihtiyacınız olan diğer bilgiler olabilir.

Yeni oluşturduğunuz anahtar kasanıza gizli dizi eklemek için aşağıdaki komutu kullanın:

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

Sanal makine oluşturma

Aşağıdaki yöntemlerden birini kullanarak myVM adlı bir VM oluşturun:

Linux Windows
Azure CLI Azure CLI
PowerShell PowerShell
Azure portalı Azure portal

Azure CLI kullanarak Linux VM oluşturmak için az vm create komutunu kullanın. Aşağıdaki örnek azureuser adlı bir kullanıcı hesabı ekler. --generate-ssh-keys parametresi otomatik olarak bir SSH anahtarı oluşturmak ve bunu varsayılan anahtar konumuna (~/.ssh) yerleştirmek için kullanılır.

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

Çıkıştaki değerini publicIpAddress not edin.

VM'ye kimlik atama

Azure CLI az vm identity assign komutunu kullanarak sanal makine için sistem tarafından atanan bir kimlik oluşturun:

az vm identity assign --name "myVM" --resource-group "myResourceGroup"

Aşağıdaki kodda görüntülenen sistem tarafından atanan kimliği not edin. Yukarıdaki komutun çıktısı şöyle olacaktır:

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

VM kimliğine izin atama

Şimdi aşağıdaki komutu çalıştırarak önceden oluşturulmuş kimlik izinlerini anahtar kasanıza atayabilirsiniz:

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

VM'de oturum açma

Sanal makinede oturum açmak için Linux çalıştıran bir Azure sanal makinesine bağlanma ve oturum açma veya Windows çalıştıran bir Azure sanalmakinesine bağlanma ve oturum açma başlığı altındaki yönergeleri izleyin.

Linux VM'sinde oturum açmak için sanal makine oluşturma adımında verilen publicIpAddress> ile <ssh komutunu kullanabilirsiniz:

ssh azureuser@<PublicIpAddress>

VM'ye Python kitaplıkları yükleme

Sanal makinede, Python betiğimizde kullanacağımız iki Python kitaplığını yükleyin: azure-keyvault-secrets ve azure.identity.

Örneğin, bir Linux VM'de bunları kullanarak pip3yükleyebilirsiniz:

pip3 install azure-keyvault-secrets

pip3 install azure.identity

Örnek Python betiğini oluşturma ve düzenleme

Sanal makinede sample.py adlı bir Python dosyası oluşturun. Dosyayı aşağıdaki kodu içerecek şekilde düzenleyin ve your-unique-keyvault-name> değerini anahtar kasanızın adıyla değiştirin<:

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}'")

Örnek Python uygulamasını çalıştırma

Son olarak , sample.py çalıştırın. Her şey yolunda gittiyse, gizli dizinizin değerini döndürmelidir:

python3 sample.py

The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'

Kaynakları temizleme

Artık gerekli olmadığında sanal makineyi ve anahtar kasanızı silin. Ait oldukları kaynak grubunu silerek hızlı bir şekilde yapabilirsiniz:

az group delete -g myResourceGroup

Sonraki adımlar

Azure Key Vault REST API