Aracılığıyla paylaş


Service Fabric yönetilen kümesine uygulama gizli dizileri dağıtma

Gizli diziler depolama bağlantı dizesi, parolalar veya düz metin olarak işlenmemesi gereken diğer değerler gibi hassas bilgiler olabilir. Azure Key Vault kullanarak Service Fabric yönetilen kümelerinin anahtarlarını ve gizli dizilerini yönetmenizi ve bu makaleden yararlanmanızı öneririz. Ancak, bir uygulamada gizli dizilerin kullanılması, uygulamaların her yerde barındırılan bir kümeye dağıtılması için bulut platformunda bağımsızdır.

Hizmet yapılandırma ayarlarını yönetmenin önerilen yolu, hizmet yapılandırma paketleridir. Yapılandırma paketleri, sistem durumu doğrulama ve otomatik geri alma ile yönetilen sıralı yükseltmeler aracılığıyla sürümlenir ve güncelleştirilebilir. Bu, genel hizmet kesintisi olasılığını azalttığı için genel yapılandırmaya tercih edilir. Şifrelenmiş gizli diziler özel durum değildir. Service Fabric, sertifika şifreleme kullanarak bir yapılandırma paketi Settings.xml dosyasındaki değerleri şifrelemeye ve şifresini çözmeye yönelik yerleşik özelliklere sahiptir.

Aşağıdaki diyagramda bir Service Fabric uygulamasında gizli dizi yönetimi için temel akış gösterilmektedir:

gizli dizi yönetimine genel bakış

Bu akışta dört ana adım vardır:

  1. Veri şifreleme sertifikası alın.
  2. Sertifikayı kümenize yükleyin.
  3. Bir uygulamayı sertifikayla dağıtırken gizli dizi değerlerini şifreleyin ve bir hizmetin Settings.xml yapılandırma dosyasına ekleyin.
  4. Aynı şifreleme sertifikasıyla şifresini çözerek şifrelenmiş değerleri Settings.xml dışında okuyun.

Azure Key Vault burada sertifikalar için güvenli bir depolama konumu olarak ve Azure'daki Service Fabric yönetilen küme düğümlerine yüklenen sertifikaları alma yolu olarak kullanılır.

Uygulama gizli dizilerini uygulama hakkında bir örnek için bkz . Uygulama gizli dizilerini yönetme.

Alternatif olarak KeyVaultReference'ı da destekliyoruz. Service Fabric KeyVaultReference desteği, Key Vault'ta depolanan gizli dizinin URL'sine başvurarak uygulamalarınıza gizli dizi dağıtmayı kolaylaştırır

Veri şifreleme sertifikası oluşturma

Kendi anahtar kasanızı oluşturmak ve sertifikaları ayarlamak için Azure CLI, PowerShell, Portal ve daha fazlasını kullanarak Azure Key Vault yönergelerini izleyin.

Not

İşlem kaynağı sağlayıcısının sertifika almasına ve küme düğümlerine yüklemesine izin vermek için şablon dağıtımı için anahtar kasası etkinleştirilmelidir.

Sertifikayı kümenize yükleme

Bu sertifikanın kümedeki her düğüme yüklenmesi gerekir ve Service Fabric yönetilen kümeleri bunu kolaylaştırır. Yönetilen küme hizmeti, düğümlere özel kök CA yükleme gibi sık sık değişmeyecek gizli dizileri yüklemeye yardımcı olmak için düğümlere sürüme özgü gizli diziler gönderebilir. Çoğu üretim iş yükü için KeyVault uzantısını kullanmanızı öneririz. Key Vault VM uzantısı, Azure anahtar kasasında depolanan sertifikaların statik bir sürümle karşıt olarak otomatik olarak yenilenmesini sağlar.

Yönetilen kümeler için ikisi Azure Key Vault'tan ve diğeri de düğümlerdeki yerel mağaza adı için karar vereceğiniz üç değere ihtiyacınız vardır.

Parametreler:

  • Source Vault: Bu,
    • Örneğin: /subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1
  • Certificate URL: Bu tam Key Vault gizli dizi tanımlayıcısıdır ve büyük/küçük harfe duyarlı değildir ve sabittir
  • Certificate Store: Bu, sertifikanın yerleştirileceği düğümlerde yerel sertifika deposudur
    • düğümlerde sertifika deposu adı, örneğin: "MY"

Service Fabric yönetilen kümeleri düğümlerinize sürüme özgü gizli diziler eklemek için iki yöntemi destekler.

  1. İlk küme oluşturma sırasında portal yalnızca yukarıdaki değerleri bu alana ekleyin:

portal gizli dizi girişi

  1. Oluşturma sırasında veya her zaman Azure Resource Manager
{
  "apiVersion": "2021-05-01",
  "type": "Microsoft.ServiceFabric/managedclusters/nodetypes",
  "properties": {
    "vmSecrets": [
      {
        "sourceVault": {
          "id": "/subscriptions/{subscriptionid}/resourceGroups/myrg1/providers/Microsoft.KeyVault/vaults/mykeyvault1"
        },
        "vaultCertificates": [
          {
            "certificateStore": "MY",
            "certificateUrl": "https://mykeyvault1.vault.azure.net/certificates/{certificatename}/{secret-version}"
          }
        ]
      }
    ]
  }
}