Azure İşlevleri'de erişim anahtarlarıyla çalışma

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:

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:

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.

  1. Azure portalına giriş yapın, ardından Function App'i arayın ve seçin.

  2. Çalışmak istediğiniz işlev uygulamasını seçin.

  3. 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:

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.

  1. Azure portalına giriş yapın, ardından Function App'i arayın ve seçin.

  2. Çalışmak istediğiniz işlev uygulamasını seçin.

  3. 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.

  4. 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:

Azure Resource Manager API'lerini çağırmayı öğrenmek için bkz . Azure REST API başvurusu.