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 İşlevleri access anahtarları, fonksiyon uç noktalarına erişimi yetkileyen paylaşılan sırlar olarak görev yapar. Bu makalede İşlevler'in desteklediği erişim anahtarı türleri ve erişim anahtarlarıyla çalışma açıklanmaktadır.
Erişim anahtarları istenmeyen erişime karşı bir miktar koruma sağlarken, üretimde HTTP uç noktalarını güvence altına almak için başka seçenekleri de göz önünde bulundurun. Örneğin, paylaşılan sırları halka açık bir uygulamada dağıtmayın. Eğer bir açık istemci fonksiyonunuzu çağırırsa, şu veya diğer güvenlik mekanizmalarını uygulamayı düşünün:
- 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ğıtın
Erişim anahtarları, HTTP tetiklenen fonksiyonlarda HTTP yetkilendirmesinin temelini oluşturur. Daha fazla bilgi için bkz . Yetkilendirme düzeyi.
Erişim anahtarı türleri
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. |
| Ev Sahibi |
default veya kullanıcı tanımlı |
function |
bir işlev uygulamasındaki tüm işlev uç noktalarına erişime izin verir. |
| Master | _master |
admin |
Ayrıca bir işlev uygulamasındaki çalışma zamanı REST API'lerine yönetim erişimi sağlayan özel konak anahtarı. Ana anahtar, fonksiyon uygulamanızda yükseltilmiş izinler verdiği için, bu anahtarı üçüncü taraflarla paylaşmayın veya yerel istemci uygulamalarında dağıtmayın. |
| 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şenlerin çağırdığı uzantıya özgü fonksiyon uç noktaları için tasarlanmıştır. Örneğin, Event Grid tetikleyicisi, tetikleme uç noktasını çağırırken aboneliğin bir sistem anahtarı kullanmasını gerektirir. Dayanıklı İşlevler ayrıca Dayanıklı Görev uzantısı API'lerini çağırmak için sistem anahtarlarını kullanır. Yalnızca belirli uzantılar sistem anahtarları oluşturabilir. 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 tuşun referans olarak bir adı vardır. Fonksiyon uygulaması ve fonksiyon seviyelerinin her birinin varsayılan olarak adlandırılan bir anahtarı defaultvardır. İşlev tuşları konak anahtarlara göre önceliklidir. İki tuş aynı isme sahip olduğunda, her zaman fonksiyon tuşu kullanılır.
Aşağıdaki tabloda, çeşitli erişim anahtarlarının kullanım amaçları karşılaştırılmaktadır.
| Eylem | Kapsam | Anahtar türü |
|---|---|---|
| İşlev yürütme | Belirli işlev | İşlev |
| İşlev yürütme | Herhangi bir işlev | İşlev veya sunucu |
admin Uç noktayı çağır |
İşlev uygulaması | Usta |
| Dayanıklı Görev uzantısı API'lerini çağırma | İşlev uygulaması* | Sistem |
| Dahili bir eklentiye özel web kancası çağırın | İşlev uygulaması* | Sistem |
*Uzantı tarafından belirlenen kapsam.
Erişim anahtarı gereksinimleri
İş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 Fonksiyonlar ile kullanabiliyorsanız, bunun yerine varsayılan erişim anahtarı oluşturma sürecini kullanın.
İşlevler tarafından oluşturulan erişim anahtarları, erişim anahtarının türünü ve Azure İşlevleri tarafından oluşturulan özel imza ve sağlama toplamı değerlerini içerir. Anahtardaki bu ek bileşenler, güvenlik taraması ve diğer otomatik süreçler sırasında bu tür sırların kaynağını belirlemeyi kolaylaştırır.
Fonksiyonların anahtarlarınızı üretmesine izin vermek için, value anahtarı kullanabileceğiniz API'lere vermeyin.
Erişim anahtarı depolama
Azure'daki fonksiyon uygulamanız anahtarları saklar ve dinlenme halinde şifreler. Varsayılan olarak, ayar AzureWebJobsStorage anahtarları sağlanan hesabda bir Blob depolama konteynerinde saklar. Bu varsayılan davranışı geçersiz kılmak için ayarı AzureWebJobsSecretStorageType kullanın ve anahtarları şu alternatif konumlardan birinde saklayın:
| Konum | Değer | Açıklama |
|---|---|---|
| İkinci bir depolama hesabı | blob |
Anahtarları Blob depolamasında, Functions çalışma zamanında kullanılan hesaptan 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 |
Anahtarları anahtar kasasında AzureWebJobsSecretStorageKeyVaultUrisaklar. |
| Dosya sistemi | files |
Anahtarlar, İşlevler v1.x'te varsayılan olan yerel dosya sisteminde kalıcıdır. Dosya sistemi depolaması önerilmez. |
| Kubernetes Sırları | kubernetes |
Anahtarları kaynak setinde depolar AzureWebJobsKubernetesSecretName. 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.
Değişmez sırlar desteklenmez. |
| Azure Container Apps gizli anahtarlar | containerapps |
Anahtarlar, Container Apps için iç gizli dizi yönetim sistemi olan Azure Container Apps gizli dizi deposunda depolanır. Yalnızca işlev uygulamanız Azure Container Apps'e dağıtıldığında desteklenir. Bilgi için, Container Apps gizli deposunu Yapılandırma sayfasına bakınız. |
Anahtar depolama için Key Vault kullandığınızda, ihtiyacınız olan uygulama ayarları uygulamanın Key Vault'a nasıl kimlik doğrulama yaptığına bağlıdır: sistem tarafından atanan yönetilen kimlik, kullanıcı tarafından atanan yönetilen kimlik veya uygulama kaydı.
| Ayar adı | Sistem tarafından atanan | Kullanıcı tarafından atanan | Uygulama kaydı |
|---|---|---|---|
AzureWebJobsSecretStorageKeyVaultUri |
Yes | Yes | Yes |
AzureWebJobsSecretStorageKeyVaultClientId |
No | Yes | Yes |
AzureWebJobsSecretStorageKeyVaultClientSecret |
No | No | Yes |
AzureWebJobsSecretStorageKeyVaultTenantId |
No | No | Yes |
Önemli
B secrets'' tr-TR: Gizli bilgiler, AzureWebJobsSecretStorageKeyVaultUri ayarı ile tek tek işlev uygulamalarıyla sınırlı değildir. Birden çok işlev uygulaması aynı Key Vault'u kullanacak şekilde yapılandırılmışsa, bunlar aynı sırları paylaşır, büyük olasılıkla anahtar çakışmalarına veya üzerine yazmalara yol açar. İstenmeyen davranışı önlemek için her işlev uygulaması için ayrı bir Key Vault örneği kullanmanızı öneririz.
Erişim anahtarlarıyla çağrı uç noktaları
HTTP tetiklenen fonksiyonları, fonksiyon adını içeren bir URL kullanarak çağırabilirsiniz. Bir fonksiyonun yetkilendirme seviyesini başka anonymousbir değere ayarladığınızda, isteğinizde ayrıca bir erişim anahtarı da sağlamalısınız. Erişim anahtarını sorgu dizisini veya istek başlığını (x-functions-key) kullanarak URL'ye ?code= ekleyebilirsiniz. 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 _master ana anahtarı (x-functions-key) sağlamanız gerekir. Site özelliğini functionsRuntimeAdminIsolationEnabled ayarlayarak yönetici uç noktalarını devre dışı bırakabilirsiniz.
İş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ı
- Host Anahtar Yuvaları Listesi
Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.
Uyarı
Fonksiyon uygulamanızı Azure Container Apps'e dağıttığınızda ve , AzureWebJobsSecretStorageType=ContainerAppskullandığınızda, fonksiyon anahtarlarını almak için Container Apps'e özgü yöntemleri kullanmalısınız. Daha fazla bilgi için, Container Apps dokümantasyonundaki Erişim anahtarlarını Yönet bölümüne bakınız.
Bu yöntemleri kullanarak REST API'lerini kullanmadan erişim anahtarlarını alın.
Azure portalına giriş yapın, ardından Function App'i arayın ve seçin.
Çalışmak istediğiniz işlev uygulamasını seçin.
Soldaki menüde İşlevler'i genişletin ve uygulama anahtarları'nı seçin.
Uygulama anahtarları sayfası görüntülenir. Bu sayfada, uygulamadaki herhangi bir fonksiyona erişmek için kullanabileceğiniz host anahtarları gösteriliyor. 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.
Tip
Ayrıca Azure İşlevleri Core Tools komutunu func azure functionapp list-functions kullanarak fonksiyonlarınız için erişim anahtarlarını da alabilirsiniz.--show-keys Daha fazla bilgi için bkz. Azure İşlevleri Core Tools referansı.
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 Sırrını Oluşturma veya Güncelleştirme
- Function Secret Slot Oluşturma veya Güncelleme
- Ana bilgisayar gizli anahtarını oluşturma veya güncelleme
- Sunucu Gizli Bölme Yuvası Oluşturma veya Güncelleme
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ına giriş yapın, ardından Function App'i arayın ve seçin.
Çalışmak istediğiniz işlev uygulamasını seçin.
Soldaki menüde İşlevler'i genişletin ve uygulama anahtarları'nı seçin.
Uygulama anahtarları sayfası görüntülenir. Bu sayfada, uygulamadaki herhangi bir fonksiyona erişmek için kullanabileceğiniz host anahtarları gösteriliyor. 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 tuşun yanında Yenile anahtar değerini seçin, ardından Yenile ve kaydet.
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:
- Fonksiyon Sırrını Sil
- İşlev Gizli Yuvasını Sil
- Ana Bilgisayar Gizli Anahtarını Sil
- Host Gizli Yuvasını Sil
Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.