Azure İşlevleri'de erişim anahtarlarıyla çalışma
Azure İşlevleri, işlev uç noktalarınıza erişmenizi zorlaştırmak için gizli dizi anahtarlarını kullanmanıza olanak tanır. Bu makalede, İşlevler tarafından desteklenen çeşitli erişim anahtarları ve erişim anahtarlarıyla çalışma açıklanmaktadır.
Erişim anahtarları istenmeyen erişime karşı bazı azaltmalar sağlarken, üretimdeki HTTP uç noktalarının güvenliğini sağlamak için diğer seçenekleri göz önünde bulundurmanız gerekir. Örneğin, ortak bir uygulamada paylaşılan gizli dizileri dağıtmak iyi bir uygulama değildir. İşleviniz bir genel istemciden çağrılırsa, şu veya diğer güvenlik mekanizmalarını uygulamayı düşünmelisiniz:
- App Service Kimlik Doğrulamasını/Yetkilendirmesini Etkinleştirme
- İsteklerin kimliğini doğrulamak için Azure API Management'ı (APIM) kullanma
- İşlev uygulamanızı sanal ağa dağıtma
- İşlev uygulamanızı yalıtarak dağıtma
Erişim anahtarları, HTTP ile tetiklenen işlevlerde HTTP yetkilendirmesinin temelini sağlar. Daha fazla bilgi için bkz . Yetkilendirme düzeyi.
Anahtarları anlama
Erişim anahtarının kapsamı ve desteklediği eylemler, erişim anahtarının türüne bağlıdır.
Anahtar türü | Anahtar adı | HTTP kimlik doğrulama düzeyi | Açıklama |
---|---|---|---|
İşlev | default veya kullanıcı tanımlı |
function |
Yalnızca belirli bir işlev uç noktasına erişime izin verir. |
ANABİLGİSAYAR | default veya kullanıcı tanımlı |
function |
bir işlev uygulamasındaki tüm işlev uç noktalarına erişime izin verir. |
Ana | _master |
admin |
Ayrıca bir işlev uygulamasındaki çalışma zamanı REST API'lerine yönetim erişimi sağlayan özel konak anahtarı. Bu anahtar iptal edilemiyor. Ana anahtar işlev uygulamanızda yükseltilmiş izinler verdiğinden, bu anahtarı üçüncü taraflarla paylaşmamanız veya yerel istemci uygulamalarında dağıtmamanız gerekir. |
Sistem | Uzantıya bağlıdır | yok | Belirli uzantılar, web kancası uç noktalarına erişmek için sistem tarafından yönetilen bir anahtar gerektirebilir. Sistem anahtarları, dahili bileşenler tarafından çağrılan uzantıya özgü işlev uç noktaları için tasarlanmıştır. Örneğin, Event Grid tetikleyicisi , tetikleyici uç noktasını çağırırken aboneliğin bir sistem anahtarı kullanmasını gerektirir. Dayanıklı İşlevler çağırmak için sistem anahtarlarını da kullanırDayanıklı Görev uzantısı API'leri. Sistem anahtarları yalnızca belirli uzantılar tarafından oluşturulabilir ve değerlerini açıkça ayarlayamazsınız. Diğer anahtarlar gibi portaldan veya anahtar API'lerini kullanarak anahtar için yeni bir değer oluşturabilirsiniz. |
Her anahtar başvuru için adlandırılır ve işlev ve konak düzeyinde bir varsayılan anahtar (adlandırılmış default
) vardır. İşlev tuşları konak anahtarlara göre önceliklidir. aynı adla iki anahtar tanımlandığında, işlev anahtarı her zaman kullanılır.
Aşağıdaki tabloda, çeşitli erişim anahtarları için kullanılanlar karşılaştırır:
Eylem | Kapsam | Anahtar türü |
---|---|---|
İşlev yürütme | Belirli işlev | İşlev |
İşlev yürütme | Herhangi bir işlev | İşlev veya konak |
admin Uç noktayı çağırma |
İşlev uygulaması | Yalnızca ana şablon |
Dayanıklı Görev uzantısı API'lerini çağırma | İşlev uygulaması* | Sistem |
Uzantıya özgü web kancasını çağırma (iç) | İşlev uygulaması* | sistem |
*Uzantı tarafından belirlenen kapsam.
Önemli gereksinimler
İşlevler'de erişim anahtarları, URL güvenli base-64 dizeleri olarak kodlanmış rastgele 32 baytlık diziler oluşturulur. Kendi erişim anahtarlarınızı oluşturup İşlevler ile kullanabilirsiniz ancak bunun yerine İşlevler'in sizin için tüm erişim anahtarlarınızı oluşturmasına izin vermenizi kesinlikle öneririz.
İşlevler tarafından oluşturulan erişim anahtarları, erişim anahtarının türünü ve Azure İşlevleri tarafından oluşturulduğunu gösteren özel imza ve sağlama toplamı değerlerini içerir. Bu ek bileşenlerin anahtarın kendisinde bulunması, güvenlik taraması ve diğer otomatik işlemler sırasında bulunan bu tür gizli dizilerin kaynağını belirlemeyi çok daha kolay hale getirir.
İşlevler'in anahtarlarınızı sizin yerinize oluşturmasına izin vermek için anahtar oluşturmak için kullanabileceğiniz API'lerin hiçbirine anahtar value
sağlamayın.
Anahtar depolamayı yönetme
Anahtarlar Azure'da işlev uygulamanızın bir parçası olarak depolanır ve beklemede şifrelenir. Varsayılan olarak, anahtarlar ayar tarafından sağlanan hesaptaki bir Blob depolama kapsayıcısında AzureWebJobsStorage
depolanır. Bu varsayılan davranışı geçersiz kılmak ve bunun yerine anahtarları şu alternatif konumlardan birinde depolamak için ayarını kullanabilirsiniz AzureWebJobsSecretStorageType
:
Konum | Değer | Açıklama |
---|---|---|
İkinci bir depolama hesabı | blob |
Anahtarları Blob depolamada, İşlevler çalışma zamanı tarafından kullanılandan farklı bir depolama hesabında depolar. Kullanılan belirli hesap ve kapsayıcı, ayarda ayarlanan bir paylaşılan erişim imzası (SAS) URL'si AzureWebJobsSecretStorageSas tarafından tanımlanır. SAS URL'si değiştiğinde AzureWebJobsSecretStorageSas ayarı korumanız gerekir. |
Azure Key Vault | keyvault |
anahtar kasası anahtarları AzureWebJobsSecretStorageKeyVaultUri depolamak için kullanılır. |
Dosya sistemi | files |
Anahtarlar, İşlevler v1.x'te varsayılan olan yerel dosya sisteminde kalıcıdır. Dosya sistemi depolaması önerilmez. |
Kubernetes Gizli Dizileri | kubernetes |
AzureWebJobsKubernetesSecretName içindeki kaynak kümesi, anahtarları depolamak için kullanılır. Yalnızca işlev uygulamanız Kubernetes'e dağıtıldığında desteklenir. Azure İşlevleri Temel Araçları, uygulamanızı kubernetes kümesine dağıtmak için kullandığınızda değerleri otomatik olarak oluşturur. |
Anahtar depolama için Key Vault kullanırken, ihtiyacınız olan uygulama ayarları sistem tarafından atanan veya kullanıcı tarafından atanan yönetilen kimlik türüne bağlıdır.
Ayar adı | Sistem tarafından atanan | Kullanıcı tarafından atanan | Uygulama kaydı |
---|---|---|---|
AzureWebJobsSecretStorageKeyVaultUri | ✓ | ✓ | ✓ |
AzureWebJobsSecretStorageKeyVaultClientId | X | ✓ | ✓ |
AzureWebJobsSecretStorageKeyVaultClientSecret | X | X | ✓ |
AzureWebJobsSecretStorageKeyVaultTenantId | X | X | ✓ |
Erişim anahtarlarını kullanma
HTTP ile tetiklenen işlevler genellikle şu biçimde bir URL kullanılarak çağrılabilir: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>
. Belirli bir işlevin yetkilendirme düzeyi dışında anonymous
bir değer ayarlandığında, isteğinizde bir erişim anahtarı da sağlamanız gerekir. Erişim anahtarı, sorgu dizesi kullanılarak ?code=
URL'de veya istek üst bilgisinde (x-functions-key
) sağlanabilir. Daha fazla bilgi için bkz . Erişim anahtarı yetkilendirmesi.
Çalışma zamanı REST API'lerine erişmek için (altında/admin/
), istek üst bilgisinde x-functions-key
ana anahtarı (_master
) sağlamanız gerekir. Site özelliğini kullanarak functionsRuntimeAdminIsolationEnabled
yönetici uç noktalarını kaldırabilirsiniz.
İşlev erişim anahtarlarınızı alma
Şu Azure Resource Manager API'lerini kullanarak işlev ve konak anahtarlarını program aracılığıyla alabilirsiniz:
- İşlev Tuşlarını Listele
- Ana Bilgisayar Anahtarlarını Listele
- İşlev Tuşlarını Listele Yuvası
- Ana Bilgisayar Anahtarları Yuvalarını Listele.
Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.
REST API'lerini kullanmak zorunda kalmadan erişim anahtarlarını almak için bu yöntemleri kullanabilirsiniz.
Azure portalında oturum açın, ardından İşlev Uygulaması'nı arayın ve seçin.
Çalışmak istediğiniz işlev uygulamasını seçin.
Sol bölmede İşlevler'i genişletin ve uygulama anahtarları'nı seçin.
Uygulama anahtarları sayfası görüntülenir. Bu sayfada konak anahtarları görüntülenir ve bu anahtarlar uygulamadaki herhangi bir işleve erişmek için kullanılabilir. Sistem anahtarı da görüntülenir ve bu da herkese tüm işlev uygulaması API'lerine yönetici düzeyinde erişim sağlar.
Ayrıca, belirli bir işlevin anahtarını kullanarak da en az ayrıcalık uygulayabilirsiniz. HTTP ile tetiklenen belirli bir işlevin İşlev tuşları sekmesinden işleve özgü anahtarları alabilirsiniz.
Erişim anahtarlarını yenileme veya oluşturma
Erişim anahtarı değerlerinizi yenilediğinizde veya oluşturduğunuzda, güncelleştirilmiş anahtar değerlerini işlevinizi çağıran tüm istemcilere el ile yeniden dağıtmanız gerekir.
İşlev ve konak anahtarlarını program aracılığıyla yenileyebilir veya şu Azure Resource Manager API'lerini kullanarak yenilerini oluşturabilirsiniz:
- İşlev Gizli Dizisini Oluşturma veya Güncelleştirme
- İşlev gizli dizi yuvalarını oluşturma veya güncelleştirme
- Ana bilgisayar gizli dizisini oluşturma veya güncelleştirme
- Konak Gizli Dizi Yuvası Oluşturma veya Güncelleştirme
Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.
REST API'lerine el ile çağrı oluşturmak zorunda kalmadan erişim anahtarlarını almak için bu yöntemleri kullanabilirsiniz.
Azure portalında oturum açın, ardından İşlev Uygulaması'nı arayın ve seçin.
Çalışmak istediğiniz işlev uygulamasını seçin.
Sol bölmede İşlevler'i genişletin ve uygulama anahtarları'nı seçin.
Uygulama anahtarları sayfası görüntülenir. Bu sayfada konak anahtarları görüntülenir ve bu anahtarlar uygulamadaki herhangi bir işleve erişmek için kullanılabilir. Sistem anahtarı da görüntülenir ve bu da herkese tüm işlev uygulaması API'lerine yönetici düzeyinde erişim sağlar.
Yenilemek istediğiniz anahtarın yanındaki Anahtar değerini yenile'yi ve ardından Yenile ve kaydet'i seçin.
Ayrıca, HTTP ile tetiklenen belirli bir işlevin İşlev tuşları sekmesinde bir işlev anahtarını yenileyebilirsiniz.
Erişim anahtarlarını silme
Şu Azure Resource Manager API'lerini kullanarak işlev ve konak anahtarlarını program aracılığıyla silebilirsiniz:
- İşlev Gizli Dizilerini Sil
- İşlev Gizli Dizi Yuvalarını Sil
- Konak Gizli Dizilerini Sil
- Konak Gizli Dizi Yuvalarını Sil
Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.