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ı yönetmenize olanak tanıyarak gelişmiş veri koruması sağlar. Yönetilen anahtar şifrelemesi kullanıldığında, Uygulama Yapılandırması içindeki tüm hassas bilgiler kullanıcı tarafından sağlanan bir Azure Key Vault anahtarıyla şifrelenir. Bu, şifreleme anahtarını isteğe bağlı olarak döndürme olanağı sağlar. Ayrıca, Azure Uygulama Yapılandırması'nın hassas bilgilere erişimini, Uygulama Yapılandırması örneğinin anahtara erişimini iptal ederek sonlandırma yeteneği sağlar.

Genel bakış

Azure Uygulama Yapılandırması, Microsoft tarafından sağlanan 256 bit AES şifreleme anahtarını kullanarak dinlenme halindeki hassas bilgileri şifreler. Her Uygulama Yapılandırması örneği, 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. Müşteri tarafından yönetilen anahtar özelliği etkinleştirildiğinde, Uygulama Yapılandırması Microsoft Entra Kimliği ile kimlik doğrulaması yapmak için Uygulama Yapılandırması örneğine atanmış bir yönetilen kimlik kullanır. Yönetilen kimlik daha sonra Azure Key Vault'ı çağırır ve Uygulama Yapılandırma örneği şifreleme anahtarını sarar. Sarmalanan şifreleme anahtarı daha sonra depolanır ve sarmalanmamış şifreleme anahtarı bir saat boyunca Uygulama Yapılandırması içinde önbelleğe alınır. Uygulama Yapılandırması, saatte bir Uygulama Yapılandırması örneğinin şifreleme anahtarının açılmış sürümünü yeniler. Bu işlem normal çalışma koşullarında kullanılabilirlik sağlar.

Önemli

Uygulama Yapılandırması örneğine atanan kimliğin artık örneğin şifreleme anahtarını açma yetkisi yoksa veya yönetilen anahtar kalıcı olarak silinirse veya kullanımdaki yönetilen anahtar sürümünün süresi dolarsa, Uygulama Yapılandırması örneğinde depolanan hassas bilgilerin şifresini çözmek artık mümkün olmayacaktır. Azure Key Vault'un geçici silme işlevini kullanarak şifreleme anahtarınızı yanlışlıkla silme olasılığını azaltabilirsiniz. Yönetilen anahtar şifrelemesini yapılandırırken anahtar sürümünü belirtmeyerek ve anahtar kasasında anahtar otomatik döndürme ayarlayarak, altta yatan yönetilen anahtarın süresinin dolma olasılığını azaltmış olursunuz.

Gereksinimler

Azure Uygulaması 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:

  • Standart veya Premium katman Azure Uygulaması Yapılandırma örneği.
  • Geçici silme ve temizleme koruması özellikleri etkinleştirilmiş bir Azure Key Vault.
  • Anahtar Kasası içinde bir RSA veya RSA-HSM anahtarı.
    • Anahtarın süresi dolmamalı, etkinleştirilmeli ve hem sarmalama hem de açma özellikleri etkinleştirilmelidir.

Bu kaynaklar yapılandırıldıktan sonra, Azure Uygulaması Yapılandırmasının Key Vault anahtarını kullanabilmesi için aşağıdaki adımları kullanın:

  1. Azure Uygulaması Yapılandırması örneğine yönetilen kimlik atayın.
  2. Anahtar Kasası anahtarına erişebilmek için kimliğe izin verin.
    • Azure RBAC'nin etkinleştirildiği Key Vault'lar için, kimliğe hedef Key Vault'ta Key Vault Crypto Service Encryption User rolünü atayın.
    • Key Vault'un erişim ilkesi yetkilendirmesini kullanması için, hedef Key Vault'un erişim ilkesinde kimlik GET, WRAPve UNWRAP izinlerini verin.

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

  1. Standart veya Premium katmanında bir Uygulama Yapılandırma deposu yoksa oluşturun.

  2. Azure CLI'yı kullanarak temizleme koruması etkinleştirilmiş bir Azure Key Vault oluşturun. Geçici silme varsayılan olarak etkindir. Hem hem vault-name de resource-group-name kullanıcı tarafından sağlanır ve benzersiz olmalıdır. contoso-vault ve contoso-resource-group bu örneklerde kullanırız.

    az keyvault create --name contoso-vault --resource-group contoso-resource-group --enable-purge-protection
    
  3. Bir Key Vault anahtarı oluşturun. Bu anahtar için benzersiz key-name bir anahtar sağlayın ve 2. adımda oluşturulan Key Vault'un (contoso-vault) adını değiştirin. Tercih RSARSA-HSM mi yoksa şifreleme mi istediğinizi belirtin (RSA-HSM yalnızca Premium katmanında kullanılabilir).

    az keyvault key create --name key-name --kty {RSA or RSA-HSM} --vault-name contoso-vault
    

    Bu komutun çıktısı, oluşturulan anahtarın anahtar kimliğini (kid) gösterir. Bu alıştırmanın devamında kullanılacak anahtar kimliğini not edin. Anahtar kimliği şu biçimdedir: https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}. Anahtar kimliği üç önemli bileşene sahiptir:

    1. Key Vault URI'sı: https://{my key vault}.vault.azure.net
    2. Key Vault anahtar adı: {key-name}
    3. Key Vault anahtar sürümü: {key-version}
  4. Önceki adımlarda kullanılan Uygulama Yapılandırması örneğinizin ve kaynak grubunuzun adını değiştirerek Azure CLI kullanarak sistem tarafından atanan yönetilen kimlik oluşturun. Yönetilen kimlik, yönetilen anahtara erişmek için kullanılır. Uygulama Yapılandırması örneğinin adını göstermek için kullanırızcontoso-app-config:

    az appconfig identity assign --name contoso-app-config --resource-group contoso-resource-group --identities [system]
    

    Bu komutun çıktısı, sistem tarafından atanan kimliğin asıl kimliğini ("principalId") ve kiracı kimliğini ("tenantId") içerir. Bu kimlikler, yönetilen anahtara kimlik erişimi vermek için kullanılır.

    {
        "principalId": {Principal Id},
        "tenantId": {Tenant Id},
        "type": "SystemAssigned",
        "userAssignedIdentities": null
    }
    

    Not

    Kullanıcı tarafından atanan yönetilen kimlik oluşturmak için bu öğreticiyi izleyin.

  5. Azure Uygulaması Yapılandırma örneğinin yönetilen kimliğinin anahtar doğrulama, şifreleme ve şifre çözme işlemlerini gerçekleştirmek için anahtara erişmesi gerekir. Erişmesi gereken belirli eylem kümesi şunlardır: GET, WRAPve UNWRAP anahtarlar için. Bu izinler, Azure RBAC etkinleştirilmiş Anahtar Kasaları için Key Vault Crypto Service Encryption User rolü atanarak verilebilir. Erişim ilkesi yetkilendirmesi kullanan Anahtar Kasaları için, yukarıda belirtilen anahtar izinleri için ilkeyi ayarlayın. Erişim vermek için, Uygulama Yapılandırma örneğinin yönetilen kimliğinin temel kimliği gereklidir. Aşağıda gösterilen değeri önceki contoso-principalId adımda elde edilen asıl kimlikle değiştirin. Komut satırını kullanarak yönetilen anahtara izin verin:

    Azure RBAC'nin etkinleştirildiği Key Vault'lar için aşağıdaki komutu kullanın.

    az role assignment create --assignee contoso-principalId --role "Key Vault Crypto Service Encryption User" --scope key-vault-resource-id
    
  6. artık Azure Uygulaması Yapılandırma örneği yönetilen anahtara erişebildiği için Azure CLI kullanarak hizmette müşteri tarafından yönetilen anahtar özelliğini etkinleştirebiliriz. Anahtar oluşturma adımları sırasında kaydedilen aşağıdaki özellikleri hatırlayın: key namekey vault URI.

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name key-name --encryption-key-vault key-vault-Uri
    

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

    Not

    Müşteri tarafından yönetilen anahtara erişmek için kullanıcı tarafından atanan yönetilen kimlik kullanırken, komutuna --identity-client-id <client ID of your user assigned identity> ekleyerek istemci kimliğini açıkça belirtebilirsiniz.

Azure Uygulaması Yapılandırma örneğiniz artık Azure 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

  1. Geçerli müşteri tarafından yönetilen anahtarın geçerli ve çalışır durumda olduğundan emin olun. Uygulama Yapılandırması'nın, Microsoft tarafından yönetilen anahtarlara geri dönmeden önce mevcut verilerin şifresini geçerli anahtarla çözmesi gerekir. Geçerli anahtarın süresi dolduysa veya erişimi iptal edildiyse, önce bu anahtara erişimi geri yüklemeniz gerekir.

  2. Uygulama Yapılandırması örneğinizi güncelleştirmek ve müşteri tarafından yönetilen anahtar yapılandırmasını kaldırmak için Azure CLI'yi kullanın. contoso-resource-group ve contoso-app-config ayarlarınız için uygun değerlerle değiştirin.

    az appconfig update -g contoso-resource-group -n contoso-app-config --encryption-key-name ""
    

    Bu komut, uygulama yapılandırma örneğinizden müşteri tarafından yönetilen anahtar yapılandırmasını kaldırır.

  3. Uygulama Yapılandırması örneğinizin özelliklerini denetleyerek müşteri tarafından yönetilen anahtar yapılandırmasının kaldırıldığını doğrulayın.

    az appconfig show -g contoso-resource-group -n contoso-app-config --query "encryption"
    

    Çıkış, encryption.keyVaultProperties özelliğinin nullolarak ayarlandığını göstermelidir.

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

Not

Müşteri tarafından yönetilen anahtar şifrelemesini devre dışı bırakmak, Uygulama Yapılandırma örneğinizi Microsoft tarafından yönetilen anahtarları kullanacak şekilde geri alır. Bu değişikliğin kuruluşunuzun güvenlik ilkeleri ve uyumluluk gereksinimleriyle uyumlu olduğundan emin olun.

Erişim İptali

Kullanıcılar Azure Uygulaması Yapılandırma örneğinde müşteri tarafından yönetilen anahtar özelliğini etkinleştirdiğinde, hizmetin hassas bilgilerine erişme becerisini denetler. Yönetilen anahtar, kök şifreleme anahtarı görevi görür. Kullanıcılar, anahtar kasası erişim ilkesini değiştirerek Uygulama Yapılandırma örneğinin yönetilen anahtara erişimini iptal edebilir. Bu erişim iptal edildiğinde Uygulama Yapılandırması bir saat içinde kullanıcı verilerinin şifresini çözme özelliğini kaybeder. Bu noktada, Uygulama Yapılandırması örneği tüm erişim girişimlerini yasaklar. Bu durum, hizmet yönetilen anahtara bir kez daha erişim vererek kurtarılabilir. bir saat içinde Uygulama Yapılandırması kullanıcı verilerinin şifresini çözebilir ve normal koşullarda çalışabilir.

Not

Tüm Azure Uygulaması Yapılandırma verileri 24 saate kadar yalıtılmış bir yedeklemede depolanır. Bu, çözülmüş şifreleme anahtarını içerir. Bu veriler hizmet veya hizmet ekibi için hemen erişilebilir değildir. Acil geri yükleme durumunda, Azure Uygulaması Yapılandırması yönetilen anahtar verilerinden kendisini yeniden iptal eder.

Anahtar Döndürme

Bir Uygulama Yapılandırması örneğinde müşteri tarafından yönetilen anahtar yapılandırıldığında, süresi dolmadığından emin olmak için yönetilen anahtarı düzenli aralıklarla döndürmek gerekir. Başarılı bir anahtar döndürme için geçerli anahtarın geçerli ve çalışır durumda olması gerektiğini unutmayın. Geçerli anahtarın süresi zaten dolduysa veya Uygulama Yapılandırması'nın bu anahtara erişimi iptal edildiyse, Uygulama Yapılandırması örneği verilerin şifresini çözemez ve döndürmeyi imkansız hale getirir. Anahtar kasası anahtarı otomatik döndürme, şifreleme anahtarlarını el ile döndürme gereksinimini ortadan kaldırıp anahtarın en son sürümünün geçerli kaldığından emin olmak için yapılandırılabilir. Anahtar kasasındaki anahtarın otomatik olarak döndürülmesine bağlıyken, App Configuration örneğinizin yönetilen anahtar ayarlarının belirli bir anahtar sürümüne başvurmadığından emin olmanız gerekir. Sürümün atlanması, otomatik döndürme gerçekleştirildiğinde Uygulama Yapılandırması'nın her zaman anahtar kasası anahtarının en son sürümüne geçmesine olanak tanır. Yönetilen anahtarın döndürülememesi bir güvenlik sorunu olarak kabul edilebilir, ancak döndürme eksikliği de Uygulama Yapılandırması örneğine erişim kaybına neden olabilir. Bunun nedeni, kullanımdaki yönetilen anahtar sürümünün süresinin dolması durumunda Uygulama Yapılandırması'nın verilerin şifresini çözemeyeceğidir.

Özetlemek gerekirse, aşağıdaki en iyi yöntemler teşvik edilir:

Sürümlenmiş ve sürümsüz anahtarlar karşılaştırması

Müşteri tarafından yönetilen anahtar şifrelemesini ayarlamak için Key Vault'a bir anahtar tanımlayıcısının aktarılması gerekir. Anahtar kasası anahtar tanımlayıcısı bir sürüm içerebilir veya içermeyebilir. Önerimiz, otomatik döndürmeyi etkinleştirmek için müşteri tarafından yönetilen anahtar şifrelemesini yapılandırırken sürümün atlanmasıdır. El ile döndürme işleminin başarısız olması söz konusu anahtar sürümünün süresi dolarsa Uygulama Yapılandırması örneğine erişim kaybına neden olacağı için, sürüme alınan anahtarın kullanılması dikkatli bir şekilde değerlendirilmelidir.

  • Sürümsüz anahtar tanımlayıcı örneği: https://{my key vault}.vault.azure.net/keys/{key-name}
  • Sürümlenmiş anahtar tanımlayıcı örneği (önerilmez): https://{my key vault}.vault.azure.net/keys/{key-name}/{key-version}

Sonraki Adımlar

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