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 şifreleme anahtarlarını, gizli dizileri ve sertifikaları koruyan bir Azure hizmetidir. API anahtarları gibi hassas bilgiler için merkezi, güvenli ve yüksek oranda kullanılabilir bir depo sağlar. API anahtarlarını doğrudan uygulamanızın kaynak koduna eklemenin güvenli olmayan uygulamasından kaçınmanın bir yöntemi, uygulamanızı Azure Key Vault'ta depolanan API anahtarlarıyla güvenli bir şekilde etkileşim kuracak şekilde yapılandırmaktır.
Bu makalede Key Vault örneği oluşturmayı, bu anahtar kasasına bir API anahtarını gizli dizi olarak eklemeyi ve ardından en iyi yöntemleri kullanarak anahtar kasasını yapılandırmayı öğreneceksiniz. Bu en iyi yöntemler Azure rol tabanlı erişim denetimi (Azure RBAC) kullanarak erişimi kısıtlamayı, izlemeyi etkinleştirmeyi ve ağ erişimini kısıtlamayı içerir.
Azure Key Vault örneği oluşturma ve güvenliğini sağlama
Azure Key Vault şifreleme anahtarlarını, gizli dizileri ve sertifikaları güvenli bir şekilde depolamanıza olanak tanır. Farklı ortamlar (geliştirme, test, üretim) ve uygulamalar için ayrı anahtar kasaları kurmalısınız.
Kaynak grubu ve anahtar kasası örneği oluşturun
Anahtar kasası örneği oluşturmak için Azure CLI veya Azure Cloud Shell'den aşağıdaki komutu kullanabilirsiniz:
az group createKaynak grubu oluşturmak için komutunu kullanın:az group create --name "myResourceGroup" --location "EastUS"İsterseniz "EastUS" değerini size daha yakın bir konuma değiştirebilirsiniz.
az keyvault createkullanarak anahtar kasasını oluşturun.az keyvault create --name "<vault-name>" --resource-group "myResourceGroup" --enable-rbac-authorization true --enable-purge-protection true<vault-name>ifadesini tüm Azure'da benzersiz bir adla değiştirin. Genellikle kişisel veya şirket adınızı diğer numaralar ve tanımlayıcılarla birlikte kullanırsınız.
Azure Key Vault'a bir sır olarak API anahtarı ekleme
Azure Key Vault örneğini oluşturduktan sonra, bu Azure Key Vault örneğine bir API anahtarını gizli dizi olarak ekleyebilirsiniz.
Aşağıda, keyvault'a MyApiKey adlı bir gizli dizi eklemek için Azure CLI az keyvault secret set komutu kullanılır ve gizli dizi 180 gün sonra sona erecek şekilde ayarlanır:
az keyvault secret set \
--vault-name "<vault-name>" \
--name "MyApiKey" \
--value "<secret-value>"
--expires "$(date -u -d '+180 days' +'%Y-%m-%dT%H:%M:%SZ')"
API anahtarlarınızı düzenli aralıklarla döndürmeyi hedeflemeniz gerekir. Kuruluşunuzun güvenlik gereksinimlerine bağlı olarak, anahtarları 180 günde bir veya daha az sıklıkta döndürmeyi seçebilirsiniz. Süresi dolan API anahtar gizli dizileri hakkında bildirim alma yöntemi olarak "SecretNearExpiry" olayı için event Grid aboneliği yapılandırabilirsiniz.
Azure RBAC kullanarak Key Vault'a erişimi kısıtlama
Azure Key Vault örneğine erişimi yalnızca uygulamanın kimliğinin Azure Key Vault'a erişimi olacak şekilde kısıtlayabilirsiniz.
Bunu yapmak için Azure CLI az role assignment create komutunu kullanarak Azure rol tabanlı erişim denetimi (Azure RBAC) rolünü yapılandırın:
az role assignment create --role "Key Vault Secrets User" \
--assignee <object-id-of-app-or-user> \
--scope /subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name>
Key Vault günlüğünü ve uyarılarını etkinleştirme
Potansiyel olarak şüpheli etkinlikleri algılama yöntemi olarak Key Vault örneğinizde uyarıları ve günlüğe kaydetmeyi etkinleştirmeniz gerekir.
Azure Key Vault Günlük Kaydını ve Uyarıları etkinleştirmek için Azure CLI az monitor diagnostic-settings create komutunu kullanın.
az monitor diagnostic-settings create \
--name myDiagnosticSettings \
--resource <key-vault-resource-id> \
--logs '[{"category": "AuditEvent","enabled": true}]' \
--workspace <log-analytics-workspace-id>
Bu komut adlı myDiagnosticSettingsbir tanılama ayarı oluşturur, bunu belirtilen Azure Key Vault için yapılandırır, güvenlik ve erişimle ilgili olayları izleyen ve günlükleri izleme, analiz ve uyarı için belirtilen Log Analytics çalışma alanına gönderen günlük kategorisini etkinleştirir AuditEvent . Bu, erişim düzenlerini izlemenize, yetkisiz erişim girişimlerini algılamanıza ve kritik güvenlik olayları için uyarılar yapılandırmanıza olanak tanır (örneğin, birisi doğru izinler olmadan gizli diziye erişmeye çalışır).
Azure Key Vault gizli dizilerine yetkisiz erişim girişimleri için belirtilen Log Analytics çalışma alanında günlükleri izlemek ve eşleşen yetkisiz erişim girişimi algılanırsa bir uyarı tetiklemek için Azure CLI az monitor scheduled-query create komutunu çalıştırabilirsiniz:
az monitor scheduled-query create \
--name "Suspicious Access Alert" \
--resource-group <resource-group> \
--scopes <log-analytics-workspace-resource-id> \
--condition "AzureDiagnostics | where ResourceType == 'VAULTS' | where OperationName == 'SecretGet' | where ResultSignature == 'Unauthorized'"
Key Vault'a ağ erişimini kısıtlama
Kasanın yalnızca bilinen ağ konumlarından gelen istekleri kabul etmesi için Azure Key Vault'a ağ erişimini kısıtlamanız gerekir. Bunu yapmak için kullanabileceğiniz iki genel yöntem vardır:
- Azure Özel Bağlantı. Bu, sanal ağınızda özel bir uç nokta oluşturarak uygulamanızın genel İnternet'ten geçmeden Azure Key Vault'a bağlanmasına olanak tanır. Trafik ağınızda kaldığından bu seçenek en güvenli seçenektir, ancak özel bir uç nokta oluşturma ve DNS'yi yapılandırmayı gerektirir.
- Güvenlik Duvarı Kuralları. Ağlar altında bulunan Azure Key Vault güvenlik duvarı ayarlarını izin verilen IP aralıklarının listesiyle yapılandırabilirsiniz. Mevcut sanal ağlara erişime izin vermek için de bu yöntemi kullanabilirsiniz, ancak bunun için seçilen alt ağda Microsoft.KeyVault için bir hizmet uç noktasını etkinleştirmeniz gerekir.
Azure CLI az network private-endpoint create komutunu kullanarak özel uç nokta oluşturabilirsiniz :
az network private-endpoint create \
--name myPrivateEndpoint \
--resource-group <resource-group> \
--vnet-name myVNet \
--subnet mySubnet \
--private-connection-resource-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<vault-name> \
--group-id vault \
--connection-name myConnection
You can create firewall rules on the Azure Key Vault instance using the Azure CLI [az keyvault network-rule add](/cli/azure/keyvault/network-rule#az-keyvault-network-rule-add) command, substituting the appropriate key vault names, resource groups, subnet, and subnet mask information:
```azurecli
az keyvault network-rule add \
--name <vault-name> \
--resource-group <resource-group> \
--ip-address <trusted-ip-address>/32
Azure Key Vault tüm iletişimler için HTTPS uygular. Bu, API anahtarlarınızın ve diğer hassas verilerinizin aktarım sırasında şifrelenmesini sağlayarak dinleme ve ortadaki adam saldırılarına karşı koruma sağlar.
Python kullanarak Azure Key Vault ile etkileşim kurma
Python kullanarak Azure Key Vault ile etkileşim kurmak için Microsoft Entra Id için Azure kimlik kitaplığını ve Azure Key Vault gizli dizi kitaplığını yükleyin:
pip install azure-identity
pip install azure-keyvault-secrets
Gizli bilgileri programlı bir şekilde yönetmek için Azure Identity ve Azure Key Vault Gizli istemci kitaplığını kullanabilirsiniz.
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<vault-name>"
KVUri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "<secret-name>"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)
retrieved_secret = client.get_secret(secret_name)
# Now you can use the API key:
api_key = retrieved_secret.value
print(f"The API key is: {api_key}")
Bu örnek kodda:
- DefaultAzureCredential: Bu sınıf çeşitli yöntemler (ortam değişkenleri, yönetilen kimlikler vb.) kullanarak kimlik doğrulamayı dener ve bunu farklı Azure ortamları için uygun hale getirir.
- SecretClient: Bu sınıf, Key Vault'taki gizli bilgilerle çalışmak için yöntemler sunar.
- get_secret(): Key Vault'tan gizli bilgiyi alır.