Aracılığıyla paylaş


Uygulama Yapılandırması verilerinizi şifrelemek için müşteri tarafından yönetilen anahtarları kullanma

Azure Uygulama Yapılandırması dinlenme halindeki hassas bilgileri şifreler. Müşteri tarafından yönetilen anahtarların kullanılması, şifreleme anahtarlarınız üzerinde daha fazla denetim sağlayarak gelişmiş veri koruması sağlar. Yönetilen anahtar şifrelemesi kullandığınızda, Uygulama Yapılandırması'ndaki tüm hassas bilgiler sağladığınız bir Azure Key Vault anahtarıyla şifrelenir. Sonuç olarak, şifreleme anahtarını isteğe bağlı olarak döndürebilirsiniz. Ayrıca, mağazanın anahtara erişimini iptal ederek Uygulama Yapılandırma mağazanızın hassas bilgilere erişimini iptal edebilirsiniz.

Genel bakış

Uygulama Yapılandırması, Microsoft tarafından sağlanan 256 bit Gelişmiş Şifreleme Standardı (AES) şifreleme anahtarını kullanarak bekleyen hassas bilgileri şifreler. Her Uygulama Yapılandırma deposu, hizmet tarafından yönetilen ve hassas bilgileri şifrelemek için kullanılan kendi şifreleme anahtarına sahiptir. Hassas bilgiler, anahtar-değer çiftlerinde bulunan değerleri içerir.

Uygulama Yapılandırması'nda müşteri tarafından yönetilen bir anahtar kullandığınızda aşağıdaki olaylar gerçekleşir:

  • Uygulama Yapılandırması, Microsoft Entra Id ile kimlik doğrulaması yapmak için Uygulama Yapılandırma deposuna atanmış bir yönetilen kimlik kullanır.
  • Yönetilen kimlik Key Vault'ı çağırır ve Uygulama Yapılandırma deposunun şifreleme anahtarını sarmalar.
  • Sarmalanan şifreleme anahtarı depolanır.
  • Sarmalanmamış şifreleme anahtarı, Uygulama Yapılandırması içinde bir saat boyunca önbelleğe alınır.
  • Her saat, Uygulama Yapılandırması, Uygulama Yapılandırma deposunun şifreleme anahtarının çözülmüş sürümünü günceller.

Bu işlem normal çalışma koşullarında kullanılabilirlik sağlar.

Önemli

Aşağıdaki koşullardan herhangi biri karşılandığında, Uygulama Yapılandırma deposunda depolanan hassas bilgilerin şifresi çözülemez:

  • Uygulama Yapılandırma deposuna atanan kimlik artık deponun şifreleme anahtarını açma yetkisine sahip değildir.
  • Yönetilen anahtar kalıcı olarak silinir.
  • Kullanımda olan yönetilen anahtar sürümünün süresi dolar.

Şifreleme anahtarınızı yanlışlıkla silme olasılığını azaltmak için Key Vault'taki geçici silme işlevini kullanabilirsiniz. Altta yatan yönetilen anahtarın süresinin dolma olasılığını azaltmak için, yönetilen anahtar şifrelemesini yapılandırırken ve Key Vault'ta otomatik anahtar rotasyonunu ayarlarken anahtar sürümünü atlayabilirsiniz. Daha fazla bilgi için bu makalenin devamında yer alan Anahtar döndürme bölümüne bakın.

Gereksinimler

Uygulama Yapılandırması için müşteri tarafından yönetilen anahtar özelliğini başarıyla etkinleştirmek için aşağıdaki bileşenler gereklidir. Bu makalede, bu bileşenlerin nasıl ayarlanacağı gösterilmektedir.

  • Standart katman veya Premium katmanlı Uygulama Yapılandırma deposu.
  • Key Vault'un yumuşak silme ve temizleme koruması özelliklerinin etkinleştirildiği bir örneği.
  • Anahtar kasasında aşağıdaki gereksinimleri karşılayan bir anahtar:
    • Rivest-Shamir-Adleman (RSA) şifrelemesi veya bir donanım güvenlik modülü ile RSA şifrelemesi (RSA-HSM) kullanır.
    • Süresi dolmamış.
    • Etkinleştirildi.
    • Sarmalama ve açma özellikleri etkindir.

Bu makalede bu kaynakları nasıl yapılandırabileceğiniz gösterildikten sonra, Uygulama Yapılandırma mağazanızın Key Vault anahtarını kullanabilmesi için aşağıdaki adımlarda size yol gösterilir:

  1. Uygulama Yapılandırma deposuna yönetilen kimlik atayın.
  2. Key Vault anahtarına erişebilmesi için kimliğe izin verin:
    • Azure rol tabanlı erişim kontrolü (Azure RBAC) kullanan anahtar kasaları için, kimliği hedef anahtar kasasında Anahtar Kasası Kripto Hizmeti Şifreleme Kullanıcısı rolünde atayın.
    • Erişim ilkesi yetkilendirmesi kullanan anahtar kasaları için, kimliğe hedef anahtar kasasının GETerişim ilkesinde , WRAPve UNWRAP izinlerini verin.

Müşteri tarafından yönetilen anahtar şifrelemesini etkinleştirme

Müşteri tarafından yönetilen anahtar şifrelemesini kullanmak için aşağıdaki bölümlerdeki adımları izleyin.

Kaynaklar oluştur

  1. Eğer Standart veya Premium katmanında bir Uygulama Yapılandırma deponuz yoksa, bir tane oluşturun. Yönergeler için bkz . Hızlı Başlangıç: Azure Uygulama Yapılandırma deposu oluşturma.

  2. Temizleme koruması etkinleştirilmiş bir Key Vault örneği oluşturmak için aşağıdaki Azure CLI komutunu çalıştırın. Geçici silme varsayılan olarak etkindir. ve <vault-name> değerlerini kendi benzersiz değerlerinizle değiştirin<resource-group-name>.

    az keyvault create --name <vault-name> --resource-group <resource-group-name> --enable-purge-protection
    

    Bu komutun çıktısı, id anahtar kasasının kaynak ID'sini listeler. Aşağıdaki biçime sahip değerini not edin:

    /subscriptions/<subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<vault-name>

  3. Azure CLI'yi kullanarak bir anahtar oluşturmanız gereken erişimi anahtar kasanıza kendinize atayın. Kullandığınız komut, anahtar kasanızın kullandığı yetkilendirme sistemine bağlıdır. İki model mevcuttur:

    • Azure RBAC modeli
    • Erişim ilkesi modeli

    Her iki modelde de komutunu çalıştırmak için kullanıcı nesne kimliğiniz gerekir. Aşağıdaki yöntemlerden birini kullanarak kullanıcı nesne kimliğinizi bulabilirsiniz:

    • Azure CLI'da az ad user show --id <user-principal-name> komutunu, kullanıcı yetki adınız (UPN) olan <user-principal-name> ile kullanın.

    • Azure portalını kullanın:

      1. Microsoft Entra Id'yi ve ardındanKullanıcıları> seçin.
      2. Arama kutusuna adınızı girin ve sonuçlarda kullanıcı adınızı seçin.
      3. Nesne Kimliği değerini kopyalayın.

    Anahtar kasanızın yetkilendirme sistemine uygun komutu çalıştırarak kendinize erişim atayın:

    Yer tutucuları aşağıdaki değerlerle değiştirin:

    • için <user-object-ID>, az önce bulduğunuz nesne kimliğini kullanın.
    • <role> için anahtar oluşturmak amacıyla ihtiyacınız olan erişimi sağlayan Key Vault Şifreleme Yetkilisi rolü gibi bir rol kullanın. Rolü tırnak işaretleri içerisine koyun.
    • <vault-resource-ID> için, önceki adımda yer alan anahtar kasası kaynak kimliğini kullanın.
    az role assignment create --assignee <user-object-ID> --role <role> --scope <vault-resource-ID>
    
  4. Aşağıdaki komutu çalıştırarak bir Key Vault anahtarı oluşturun. Yer tutucuları aşağıdaki değerlerle değiştirin:

    • <key-name> için kendi benzersiz değerinizi kullanın.
    • için <key-type>:
      • RSA şifrelemesi için kullanın RSA .
      • RSA-HSM şifreleme için kullanın RSA-HSM . RSA-HSM şifreleme yalnızca Premium katmanında kullanılabilir.
    • <vault-name> için 2. adımdaki anahtar kasasının adını kullanın.
    az keyvault key create --name <key-name> --kty <key-type> --vault-name <vault-name>
    

    Bu komutun çıktısı, kidoluşturulan anahtarın anahtar kimliğini listeler. Aşağıdaki biçime sahip değerini not edin:

    https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>

    Anahtar kimliği aşağıdaki bileşenleri içerir:

    • Anahtar kasası URI'si: https://<vault-name>.vault.azure.net
    • Anahtar kasası anahtar adı: <key-name>
    • Anahtar kasası sürümü: <key-version>
  5. Aşağıdaki seçeneklerden birini kullanarak Uygulama Yapılandırma deponuz için yönetilen kimlik oluşturun:

    • Kullanıcı tarafından atanan yönetilen kimlik oluşturmak için Kullanıcı tarafından atanan kimlik ekleme bölümünde verilen adımları izleyin. Kimliğin clientId ve principalId özelliklerinin değerlerine dikkat edin.

    • Sistem tarafından atanan yönetilen kimlik oluşturmak için aşağıdaki Azure CLI komutunu kullanın. Yer tutucuları aşağıdaki değerlerle değiştirin:

      • için <App-Configuration-store-name>, 1. adımdaki Uygulama Yapılandırma deposunun adını kullanın.
      • <resource-group-name> için, Uygulama Yapılandırma mağazanızı içeren kaynak grubunun adını kullanın.
    az appconfig identity assign --name <App-Configuration-store-name> --resource-group <resource-group-name> --identities [system]
    

    Bu komutun çıktısı, principalIdsistem tarafından atanan kimliğin asıl kimliğini, ve kiracı kimliğini tenantIdiçerir. özelliğinin principalID değerini not edin.

    {
        "principalId": <principal-ID>,
        "tenantId": <tenant-ID>,
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    

Erişim verme ve anahtarı etkinleştirme

Uygulama Yapılandırma deponuzun yönetilen kimliğinin anahtar doğrulama, şifreleme ve şifre çözme işlemlerini gerçekleştirmek için anahtara erişmesi gerekir. Özellikle, yönetilen kimliğin anahtarlara GET, WRAP ve UNWRAP eylemlerine erişmesi gerekir.

  • Azure RBAC kullanan anahtar kasaları için, yönetilen kimliğe Anahtar Kasası Şifreleme Hizmeti Kullanıcısı rolünü atayarak bu izinleri verebilirsiniz.
  • Erişim ilkesi yetkilendirmesi kullanan anahtar kasaları için, bu anahtar izinlerine yönelik bir ilke ayarlayabilirsiniz.
  1. Anahtar kasanızın yetkilendirme sistemine uygun komutu kullanarak yönetilen anahtara yönetilen kimlik erişimi verin. Her iki sistem için <managed-identity-principal-ID>'yi önceki adımdaki asıl kimlikle değiştirin.

    değerini <key-vault-resource-id> 2. adımındaki anahtar kasasının kaynak kimliğiyle değiştirin.

    az role assignment create --assignee <managed-identity-principal-ID> --role "Key Vault Crypto Service Encryption User" --scope <key-vault-resource-id>
    
  2. Aşağıdaki Azure CLI komutlarından birini çalıştırarak hizmette müşteri tarafından yönetilen anahtar özelliğini etkinleştirin. Yer tutucuları aşağıdaki değerlerle değiştirin:

    • <resource-group-name> için, Uygulama Yapılandırma mağazanızı içeren kaynak grubunun adını kullanın.
    • <App-Configuration-store-name> için, uygulama yapılandırma deponuzun adını kullanın.
    • <key-name> ve <key-vault-URI> için, Kaynak oluşturma'nın 4. adımındaki değerleri kullanın.

    Varsayılan olarak, komut anahtar kasasıyla kimlik doğrulaması yapmak için sistem tarafından atanan yönetilen kimliği kullanır.

    • Müşteri tarafından yönetilen anahtara erişmek için sistem tarafından atanan bir yönetilen kimlik kullanıyorsanız aşağıdaki komutu çalıştırın:

      az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI>
      
    • Müşteri tarafından yönetilen anahtara erişmek için kullanıcı tarafından atanan bir yönetilen kimlik kullanırsanız, istemci kimliğini açıkça belirten aşağıdaki komutu çalıştırın. <user-assigned-managed-identity-client-ID> değerini clientId'un 5. adımındaki değeriyle değiştirin.

      az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name <key-name> --encryption-key-vault <key-vault-URI> --identity-client-id <user-assigned-managed-identity-client-ID>
      

Uygulama Yapılandırma deponuz artık Key Vault'ta depolanan müşteri tarafından yönetilen bir anahtarı kullanacak şekilde yapılandırıldı.

Müşteri tarafından yönetilen anahtar şifrelemesini devre dışı bırakma

Müşteri tarafından yönetilen anahtar şifrelemesini devre dışı bırakırsanız, Uygulama Yapılandırma deponuz Microsoft tarafından yönetilen anahtarları kullanmaya geri döner. Ancak Uygulama Yapılandırması, Microsoft tarafından yönetilen anahtarlara dönmeden önce mevcut tüm verilerin şifresini çözmek için geçerli anahtarı kullanır. Geçerli anahtarın süresi dolduysa veya erişim iptal edilirse, önce bu anahtara erişimi geri yüklemeniz gerekir.

Not

Uygulama Yapılandırma deponuzu şifreleme için müşteri tarafından yönetilen anahtar yerine Microsoft tarafından yönetilen bir anahtar kullanacak şekilde yapılandırmadan önce, bu değişikliğin kuruluşunuzun güvenlik ilkeleri ve uyumluluk gereksinimleriyle uyumlu olduğundan emin olun.

  1. Geçerli müşteri tarafından yönetilen anahtarın geçerli ve çalışır durumda olduğundan emin olun.

  2. Müşteri tarafından yönetilen anahtar yapılandırmasını kaldırarak Uygulama Yapılandırma deponuzu güncelleştirmek için aşağıdaki Azure CLI komutunu kullanın. ve <resource-group-name> değerlerini ortamınızdaki değerlerle değiştirin<App-Configuration-store-name>.

    az appconfig update -g <resource-group-name> -n <App-Configuration-store-name> --encryption-key-name ""
    
  3. Müşteri tarafından yönetilen anahtar yapılandırmasının devre dışı bırakıldığını doğrulamak için Uygulama Yapılandırma deponuzun özelliklerini denetleyin.

    az appconfig show -g <resource-group-name> -n <App-Configuration-store-name> --query "encryption"
    

    Bu komutun çıkışında encryption.keyVaultProperties özelliği değeri nullolmalıdır.

Uygulama Yapılandırma deponuz artık şifreleme için Microsoft tarafından yönetilen anahtarları kullanacak şekilde yapılandırıldı.

Erişim iptali

Uygulama Yapılandırma deponuzda müşteri tarafından yönetilen anahtar özelliğini etkinleştirdiğinizde, hizmetin hassas bilgilerinize erişme becerisini denetleyebilirsiniz. Yönetilen anahtar, kök şifreleme anahtarı görevi görür.

Anahtar kasası erişim politikanızı değiştirerek Uygulama Yapılandırma mağazasının yönetilen anahtarınıza erişimini iptal edebilirsiniz. Bu erişimi iptal ettiğinizde, Uygulama Yapılandırması bir saat içinde kullanıcı verilerinin şifresini çözme özelliğini kaybeder. Bu noktada, Uygulama Yapılandırma deposu tüm erişim girişimlerini yasaklar.

Bu durum, Uygulama Yapılandırma hizmetine yönetilen anahtara yeniden erişim verilerek kurtarılabilir. Uygulama Yapılandırması bir saat içinde kullanıcı verilerinin şifresini çözebilir ve normal koşullarda çalışabilir.

Not

Tüm Uygulama Yapılandırması verileri 24 saate kadar yalıtılmış bir yedeklemede depolanır. Bu veriler, çözülmemiş şifreleme anahtarını içerir. Bu veriler hizmet veya hizmet ekibi için hemen erişilebilir değildir. Acil geri yükleme sırasında, Uygulama Yapılandırması kendini yönetilen anahtar bilgilerinden tekrar geri çeker.

Anahtar döndürme

Uygulama Yapılandırma deposunda müşteri tarafından yönetilen bir anahtar yapılandırdığınızda, süresi dolmaması için yönetilen anahtarı düzenli aralıklarla döndürmeniz gerekir. Başarılı bir anahtar döndürme için geçerli anahtarın geçerli ve çalışır durumda olması gerekir. Geçerli anahtarın süresi dolduysa veya Uygulama Yapılandırması erişimi iptal edilmişse, Uygulama Yapılandırma deposu verilerin şifresini çözemez ve döndürme başarısız olur.

Otomatik döndürme

Müşteri tarafından yönetilen anahtarınız için Key Vault'ta otomatik döndürmeyi yapılandırmak en iyi yöntemdir. Anahtarları döndürmek güvenliği sık sık artırır. Otomatik döndürmeyi kullandığınızda, döndürme eksikliği nedeniyle erişimi kaybetmekten kaçınırsınız. Ayrıca şifreleme anahtarlarını el ile döndürme gereksinimini ortadan kaldırırsınız.

Sürümsüz anahtarlar

Müşteri tarafından yönetilen anahtarlı şifrelemede otomatik rotasyon için başka bir en iyi uygulama, anahtar kasası anahtarının sürümünü atlamaktır. Belirli bir anahtar sürümünü yapılandırmadığınızda, Uygulama Yapılandırması otomatik olarak döndürüldüğünde anahtarın en son sürümüne geçebilir. Sonuç olarak, Uygulama Yapılandırma deponuz şu anda kullanımda olan bir yönetilen anahtar sürümünün süresi dolduğunda erişimi kaybetmeyi önler.

Müşteri tarafından yönetilen anahtar şifrelemesini ayarladığınızda, anahtar kasanızdaki bir anahtarın tanımlayıcısını sağlarsınız. Anahtar kasası anahtar tanımlayıcısı aşağıdaki biçimlere sahip olabilir:

  • Sürümsüz anahtar tanımlayıcısı: https://<vault-name>.vault.azure.net/keys/<key-name>
  • Sürüm numaralı anahtar tanımlayıcısı (önerilmez): https://<vault-name>.vault.azure.net/keys/<key-name>/<key-version>

Sürüm içermeyen bir anahtarı yapılandırmak için, sürümü içermeyen tanımlayıcı biçimini kullanın.

Sonraki adım

Bu makalede, Uygulama Yapılandırma deponuzu şifreleme için müşteri tarafından yönetilen bir anahtar kullanacak şekilde yapılandırmıştınız. Uygulama hizmetinizi Azure tarafından yönetilen kimliklerle tümleştirme hakkında daha fazla bilgi edinmek için sonraki adıma geçin.