Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 bilgilerini okumak üzere bir Python uygulaması ayarlarsınız. Şunları yapmayı öğreneceksiniz:
- Anahtar kasası oluştur
- Gizli bir bilgiyi Key Vault'ta depolama
- Azure Linux sanal makinesi oluşturma
- Sanal makine için yönetilen kimliği etkinleştirme
- Konsol uygulamasının Key Vault verilerini okuması için gerekli izinleri verme
- Key Vault'tan bir gizli almak
Başlamadan önce Key Vault temel kavramları okuyun.
Azure aboneliğiniz yoksa free hesabı oluşturun.
Önkoşullar
Windows, Mac ve Linux için:
- Git
- Bu öğretici, Azure CLI yerel olarak çalıştırmanızı gerektirir. Azure CLI son sürümünü yüklemiş olmanız gerekir. Sürümü bulmak için
az --versionkomutunu çalıştırın. CLI'yı yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.
Azure oturum açma
Azure CLI kullanarak Azure oturum açmak için şunu girin:
az login
Bir kaynak grubu ve anahtar kasası oluşturun
Bu hızlı başlangıç kılavuzunda önceden oluşturulmuş bir Azure anahtar kasası kullanılır. Bu hızlı başlangıçlarda yer alan adımları izleyerek bir anahtar kasası oluşturabilirsiniz:
Alternatif olarak, bu Azure CLI veya Azure PowerShell komutlarını çalıştırabilirsiniz.
Önemli
Her anahtar kasasının benzersiz bir adı olmalıdır. Aşağıdaki örneklerde <vault-name>'yi anahtar kasanızın adıyla değiştirin.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Anahtar kasanızı gizli diziyle doldurma
Şimdi mySecret adlı ve Success! değerine sahip bir gizli anahtar oluşturalım. Gizli bir bilgi, bir parola, SQL bağlantı dizesi veya hem güvenli hem de uygulamanızın kullanımına açık tutmanız gereken diğer bilgiler olabilir.
Yeni oluşturduğunuz anahtar kasanıza bir gizli eklemek için aşağıdaki komutu kullanın:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Sanal makine oluşturun
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 <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Çıktıdaki publicIpAddress değerini not edin.
VM'ye kimlik atayın
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 "<resource-group>"
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
Role-Based Access Control (RBAC) aracılığıyla anahtar kasanıza izinler almak için Azure CLI komutunu az role assignment create kullanarak "Kullanıcı Asıl Adı"na (UPN) bir rol atayın.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
, <upn>ve <subscription-id> değerlerini gerçek değerlerinizle değiştirin<vault-name>. Eğer farklı bir kaynak grubu adı kullandıysanız, "myResourceGroup" yerine bunu koyun. UPN'niz genellikle bir e-posta adresi biçiminde olur (ör. username@domain.com).
VM'de oturum açma
Sanal makinede oturum açmak için, Linux çalıştıran Azure sanal makinesine bağlanma ve oturum açma veya Windows çalıştıran Azure sanal makinesine bağlanma ve oturum açma yönergelerini izleyin.
Linux VM'sinde oturum açmak için, <public-ip-address> adımında verilen ile ssh komutunu kullanabilirsiniz:
ssh azureuser@<public-ip-address>
VM'ye Python kitaplıkları yükleme
Sanal makinede, Python betiğimizde kullanacağımız iki Python kitaplığı yükleyin: azure-keyvault-secrets ve azure-identity.
Örneğin bir Linux VM'sinde şunları 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 <vault-name>'yi anahtar kasanızın adıyla değiştirin.
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}'")
Örnek Python uygulamasını çalıştırma
Son olarak sample.py çalıştırın. Her şey yolunda gittiyse, gizli anahtarınızın değerini döndürmelidir.
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Kaynakları temizle
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"