Azure Application Gateway'da sık karşılaşılan anahtar kasası hatalarını giderme

Özet

Bu makalede, Azure Application Gateway'daki yaygın anahtar kasası hatalarını giderme ve sertifika yönetimini kesintiye uğratabilecek ve HTTPS bağlantılarının güvenliğini sağleyebilecek yanlış yapılandırmaları çözme adımları açıklanmaktadır.

Application Gateway, TLS sertifikalarını Azure Key Vault'ta güvenli bir şekilde depolamanızı sağlar. Bir anahtar kasası kaynağı kullandığınızda, ağ geçidinin her zaman bağlı olan anahtar kasasına erişimi olması önemlidir. Application Gateway'iniz sertifikayı getiremezse ilişkili HTTPS dinleyicilerini devre dışı bırakır. Daha fazla bilgi için bkz. Devre dışı bırakılmış dinleyicileri anlama.

Tavsiye

Sürüm belirtmeyen bir gizli tanımlayıcı kullanın. Bu tanımlayıcıyı kullanarak Azure Application Gateway, Azure Key Vault'ta daha yeni bir sürüm varsa sertifikayı otomatik olarak döndürür. Sürümü olmayan gizli dizi Tekdüzen Kaynak Tanımlayıcısı'nın (URI) bir örneği: https://myvault.vault.azure.net/secrets/mysecret/.

Azure Danışmanı hata kodları

Aşağıdaki bölümlerde karşılaşabileceğiniz çeşitli hatalar açıklanmaktadır. Ağ geçidinizde bu sorunlardan herhangi birinin olup olmadığını denetlemek için hesabınızın Azure Danışmanı adresini ziyaret edin. Sorunu çözmek için bu sorun giderme makalesini kullanın. Anahtar kasasıyla ilgili bir sorun tespit edildiğinde haberdar olmak için Azure Danışmanı uyarılarını ağ geçidiniz için yapılandırın.

Uyarı

Application Gateway dört saatte bir anahtar kasası tanılaması için günlükler oluşturur. Yapılandırmayı düzelttikkten sonra tanılama hata göstermeye devam ederse günlüklerin yenilenmesini beklemeniz gerekebilir.

Hata kodu - "UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault"

Description

İlişkili kullanıcı tarafından atanan yönetilen kimlik gerekli izne sahip değil.

Çözüm

Kullanıcı tarafından atanan yönetilen kimliğe gizli bilgilere erişim izni vermek için anahtar kasanızın erişim ilkelerini yapılandırın. Bunu aşağıdaki iki yoldan biriyle yapabilirsiniz:

Kasa erişim ilkesi

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Erişim ilkeleri'ni seçin.
  3. İzin modeli için Kasa erişim ilkesi'ni seçin.
  4. Secret Management Operations bölümünde, Get iznini seçin.
  5. Kaydetseçeneğini seçin.

Yönetilen kimliğe Erişim izni vermek için kullanılan Key Vault erişim ilkesi ayarlarının ekran görüntüsü.

Daha fazla bilgi için bkz. Azure portalını kullanarak Key Vault erişim ilkesi atama.

Azure rol tabanlı erişim denetimi (RBAC)

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Erişim ilkeleri'ni seçin.
  3. Permission modeli için Azure rol tabanlı erişim denetimi öğesini seçin.
  4. İzinleri yapılandırmak için Erişim Denetimi 'ne (IAM) gidin.
  5. Aşağıdaki değerleri seçerek yönetilen kimliğiniz için rol ataması ekleyin: a. Rolü: Key Vault Gizli Anahtarlar Kullanıcısı b. Şuna erişim atayın: Yönetilen kimlik c. Üyeler: Uygulama ağ geçidinizle ilişkilendirdiğiniz kullanıcı tarafından atanan yönetilen kimliği seçin.
  6. Gözden geçir + ata'yı seçin.

Daha fazla bilgi için bkz. Key Vault'ta Azure rol tabanlı erişim denetimi.

Uyarı

Azure rol tabanlı erişim denetimini kullandığınızda yeni anahtar kasası tabanlı sertifika eklemeye yönelik portal desteği şu anda kullanılamıyor. Bunu bir Azure Kaynak Yönetimi (ARM) şablonu, Azure CLI veya Azure PowerShell kullanarak gerçekleştirebilirsiniz. Daha fazla bilgi edinmek için bkz. Key Vault Azure rol tabanlı erişim denetimi izin modeli.

Hata kodu - "SecretDisabled"

Description

İlişkili sertifika Azure Key Vault devre dışı bırakıldı.

Çözüm

Application Gateway'in kullandığı sertifika sürümünü etkinleştirin. Bunu yapmak için şu adımları uygulayın:

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Sertifikalar'ı seçin.
  3. İstediğiniz sertifika adını seçin ve ardından devre dışı bırakılmış sürümü seçin.
  4. Yönetim sayfasında, bu sertifika sürümünü etkinleştirmek için anahtarı kullanın.

Devre dışı bırakılmış bir gizli diziyi yeniden etkinleştirmek için kullanılan Key Vault sertifika sürümü geçiş düğmesinin ekran görüntüsü.

Hata kodu - "SecretDeletedFromKeyVault"

Description

İlişkili sertifika Key Vault’tan silinir.

Çözüm

Silinen bir sertifikayı kurtarmak için şu adımları izleyin:

  1. Azure portalında bağlı anahtar kasasına gidin.
  2. Sertifikalar bölmesini açın.
  3. Silinen sertifikayı kurtarmak için Yönetilen silinen sertifikalar sekmesini kullanın.

Sertifika nesnesini kalıcı olarak silerseniz, yeni bir sertifika oluşturun ve Application Gateway'i yeni sertifika ayrıntılarıyla güncelleştirin. Azure CLI veya Azure PowerShell aracılığıyla yapılandırdığınızda, sürüm bilgisi içermeyen bir gizli dizi tanımlayıcı URI'si kullanın. Bu seçenek, örneklerin varsa sertifikanın yenilenen bir sürümünü almasına olanak tanır.

Silinen bir Key Vault sertifikasını kurtarmak için kullanılan Yönetilen silinen sertifikalar sekmesinin ekran görüntüsü.

Hata kodu - "UserAssignedManagedIdentityNotFound"

Description

kullanıcı tarafından atanan ilişkili yönetilen kimlik silinir.

Çözüm

Yeni bir yönetilen kimlik oluşturun ve bunu anahtar kasasıyla kullanın. Bunu yapmak için şu adımları izleyin:

  1. Daha önce kullandığınız adla ve aynı kaynak grubu altında yönetilen kimliği yeniden oluşturun. Adlandırma ayrıntıları için kaynak Etkinlik Günlükleri'ne bakın.
  2. İstediğiniz anahtar kasası kaynağına gidin ve bu yeni yönetilen kimliğe gerekli izni vermek için erişim ilkelerini ayarlayın. Daha fazla bilgi için bkz. Hata kodu: UserAssignedIdentityDoesNotHaveGetPermissionOnKeyVault.

Hata kodu - "KeyVaultHasRestrictedAccess"

Description

Key Vault kısıtlı bir ağ ayarına sahiptir.

Çözüm

Kısıtlı erişim için Key Vault güvenlik duvarını etkinleştirdiğinizde bu hatayla karşılaşırsınız. Application Gateway'i kısıtlı bir Key Vault ağında yapılandırın. Bunu yapmak için şu adımları izleyin:

  1. Key Vault'da Ağ'ı seçin.
  2. Güvenlik duvarları ve sanal ağlar sekmesini ve ardından Özel uç nokta ve seçili ağlar'ı seçin.
  3. Application Gateway'inizin sanal ağını ve alt ağını eklemek için Azure Sanal Ağ kullanın.
  4. Microsoft.KeyVault onay kutusunu seçin.
  5. Evet’i seçin. Bu eylem, güvenilen hizmetlerin Key Vault güvenlik duvarını atlamasına olanak tanır.

Kısıtlı ağ erişimini yapılandırmak için kullanılan Key Vault ağ ayarlarının ekran görüntüsü.

Hata kodu - "KeyVaultSoftDeleted"

Description

İlişkili anahtar kasası geçici silinmiş durumda.

Çözüm

Silinen anahtar kasası kaynağını bulun. Bunu yapmak için şu adımları izleyin:

  1. Azure portalında key vault arayın.
  2. Hizmetler bölümünde Anahtar kasaları'nı seçin.

Azure portalında Key Vault hizmetini arama işleminin ekran görüntüsü.

  1. Yönetilen silinen kasalar seçin.
  2. Silinen anahtar kasası kaynağını bulun ve geri yükleyin.

Silinmiş bir anahtar kasasını kurtarma seçeneğinin bulunduğu Yönetilen silinmiş kasaların ekran görüntüsü.

Hata kodu - "CustomerKeyVaultSubscriptionDisabled"

Description

Key Vault aboneliği devre dışı bırakıldı.

Çözüm

Çeşitli nedenler Azure aboneliğinizi devre dışı bırakmasına neden olabilir. Bu sorunu çözmek için gerekli eylemi yapmak için bkz. Devre dışı bırakılmış bir Azure aboneliğini yeniden etkinleştirme.

Application Gateway hata kodları

Hata kodu - "ApplicationGatewayCertificateDataOrKeyVaultSecretIdMustBeSpecified / ApplicationGatewaySslCertificateDataMustBeSpecified"

Description

Bir dinleyici sertifikasını güncelleştirmeye çalıştığınızda bu hatayla karşılaşırsınız. Bu hata oluştuğunda, sertifikayı güncelleştirme değişikliği atılır ve dinleyici daha önce tanımlanmış yapılandırmayla trafiği işlemeye devam eder.

Çözüm

Bu sorunu çözmek için sertifikayı karşıya yüklemeyi yeniden deneyin. Örneğin, Application Gateway'e yüklenen veya Azure Key Vault aracılığıyla başvuruda bulunan sertifikaları güncelleştirmek için aşağıdaki PowerShell komutlarını kullanın.

Doğrudan Application Gateway'e yüklenen sertifikayı güncelleştirin.

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$password = ConvertTo-SecureString -String "<password>" -Force -AsPlainText

Set-AzApplicationGatewaySSLCertificate -Name "<oldcertname>" -ApplicationGateway $appgw -CertificateFile "<newcertPath>" -Password $password

Set-AzApplicationGateway -ApplicationGateway $appgw 

Azure Key Vault'dan başvurulan sertifikayı güncelleştirin.

$appgw = Get-AzApplicationGateway -ResourceGroupName "<ResourceGroup>" -Name "<AppGatewayName>"

$secret = Get-AzKeyVaultSecret -VaultName "<KeyVaultName>" -Name "<CertificateName>" 
$secretId = $secret.Id.Replace($secret.Version, "") 
$cert = Set-AzApplicationGatewaySslCertificate -ApplicationGateway $AppGW -Name "<CertificateName>" -KeyVaultSecretId $secretId 

Set-AzApplicationGateway -ApplicationGateway $appgw 

References