Aracılığıyla paylaş


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:

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 anonymousbir 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:

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.

  1. Azure portalında oturum açın, ardından İşlev Uygulaması'nı arayın ve seçin.

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

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

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ında oturum açın, ardından İşlev Uygulaması'nı arayın ve seçin.

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

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

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

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